Bonjour,
j'ai besoin que quelqu'un puisse m'aider a tracer une spirale carrée sur Matlab en coordonnée cartésienne et polaire.
Merci
Bonjour,
j'ai besoin que quelqu'un puisse m'aider a tracer une spirale carrée sur Matlab en coordonnée cartésienne et polaire.
Merci
Bonjour,
Avant d'être une question en Matlab, il faudrait déjà en avoir une bonne définition mathématique. Y as-tu réfléchi?
Comment se comporte mathématiquement une spirale carrée?
Justement j'ai pas trouvé la définition mathématique de la spirale carrée, j'ai essayé avec la spirale d’Archimède mais le problème c'est que le graphe n'est pas aligné avec les abscisse
Pourrais-tu nous montrer une image de la spirale que tu cherches à obtenir ?
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonjour,
Je cherche une equation qui peut me dessiner ce genre de spirale carré
J'ai essayé de la realiser avec cet algorithm mais le graphe est décalé
t=pi:pi/20:n*pi;
r=a*t;
x=r.*cos(t).*abs(cos(t));
y=r.*sin(t).*abs(sin(t));
X=(x.*cos(m))+(y.*sin(m));
Y=(-x.*sin(m))+(y.*cos(m));
plot(X,Y);
Merci !
Bonjour,
Un exemple (il doit y avoir plus simple) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 clear R10=[10 9 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1]; vx=[0 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0]; vy=[-1 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1]; x(1)=0;y(1)=0; for t=2:20 x(t)=x(t-1)+vx(t)*R10(t); y(t)=y(t-1)+vy(t)*R10(t); end figure line(x,y,'LineWidth',6) grid
Merci beaucoup Monsieur, j'avoue qu'elle est un peu compliqué mais elle fera l'affaire merci
Pas vraiment plus simple mais juste avec la boucle for-end en moins :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 clear R10 = [10 9 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1]; vx = [0 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0]; vy = [0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1 0 -1 0 1]; x = cumsum(vx.*R10); y = cumsum(vy.*R10); figure line(x,y,'LineWidth',6) grid
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Par contre si on traduit cette spirale en équation mathématique elle sera comment ?
Bonjour,
Bien vu Jerome avec cumsum
Ce type de spirale se définit par des tables de valeurs. L'exemple donné utilise la cinématique<;
Voici un autre exemple qui utilise la rotation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 clear % Mise en forme des tables k=1; N=10;% Nombre de branches -3 for n=0:N T1(k,:)=[n+1 n+1];T1(k+1,:)=[n+1 n+1];T1(k+2,:)=-T1(k,:);T1(k+3,:)=-T1(k,:); k=k+4; end k=1; for n=0:N T2(k,:)=[n n];T2(k+1,:)=[n n];T2(k+2,:)=-[n+1 n+1];T2(k+3,:)=-[n+1 n+1]; k=k+4; end k=2; TV1(1,:)=[0 1]; for n=1:N TV1(k,:)=[n n];TV1(k+1,:)=[n -n];TV1(k+2,:)=[-n -n];TV1(k+3,:)=[-n n+1]; k=k+4; end k=2; TV2(1,:)=[0 0]; for n=1:N TV2(k,:)=[-n n];TV2(k+1,:)=[-n -n];TV2(k+2,:)=[n -(n+1)];TV2(k+3,:)=[n n]; k=k+4; end figure hold on axis(10*[-1 1 -1 1]) axis square grid v=[0 1;0 0]; theta=0; C=[0 0;0 0]; R=rotcentre(v,theta,C); plot(R(1,:),R(2,:),'LineWidth',3) theta=pi/2; for n=1:N+2 v=[TV1(n,:);TV2(n,:)]; C=[T1(n,:);T2(n+1,:)]; R=rotcentre(v,theta,C); plot(R(1,:),R(2,:),'LineWidth',3) v=R; endAutres solution par segments :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function V=rotcentre(x,theta,C) % Rotation d'un vecteur d'angle theta et de centre C R=[cos(theta) -sin(theta);sin(theta) cos(theta)]; V=R*(x-C)+C;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 XHP=[0:-1:-11;1:12]'; YHP=[0:11;0:11]'; XHN=[0:-1:-11;0:11]'; YHN=[0:11;0:11]'; XVP=[1:12;1:12]'; XVN=-XVP; YVP=[0:11;-1:-1:-12]'; YVN=[1:12;-1:-1:-12]'; figure hold on for i=1:12 line(XHP(i,:),YHP(i,:),'LineWidth',2) line(XHN(i,:),-YHN(i,:),'LineWidth',2) line(XVP(i,:),YVP(i,:),'LineWidth',2) if i<12 line(XVN(i,:),YVN(i,:),'LineWidth',2) end end axis(20*[-1 1 -1 1]) grid
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager