Bonjour tout le monde,
Je veux passer d'une courbe 2D (2 dimensions) à une courbe 3D en respectant bien sure une symétrie de révolution.
En effet, le programme suivant trace une coupe (courbe en bleu) d'une surface 3D (surface que je souhaite tracer) dans un plan (W,Z) avec Z représente le 3eme axe du repère cartésien (X,Y,Z) et W un axe donnée du plan (XY) et passant par l'origine. la droite en rouge présente l'axe de symétrie.
Donc ce que j'aimerai tracer, c'est une surface 3D obtenue en tournant la courbe bleue autour de la droite rouge et ensuite la représenter dans le repère (X,Y,Z). l'axe de symetrie de cette courbe 3D sera (dans le programme finale) une droite passant par l'origine et par un point (X0,Y0,Z0).
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 clear all close all MA=40; anglcentral=45; angl = 0:0.1:90; nn = 1; for ang = angl if ang < 2.5 F(nn) = MA; elseif (ang >= 2.5)&(ang <= 7) F(nn) = 33 - 25*log10(ang) ; elseif (ang > 7)&(ang <= 9.2) F(nn) = 12 ; elseif (ang > 9.2)&(ang <= 48) F(nn) = 36 - 25*log10(ang); else F(nn) = -6 ; end nn = nn + 1; end G=[fliplr(F) F(2:end)]; Gx=[-fliplr(angl) angl(2:end)]; abscis = Gx + anglcentral; ind1 = find(abscis==0); ind2 = find(abscis==90); G1 = abscis(ind1:ind2); G2 = G(ind1:ind2); % convertir aux coordonnées cartésiennes xM = G2.*sin(G1*pi/180); yM = G2.*cos(G1*pi/180); xM0 = G2.*sin(anglcentral*pi/180); yM0 = G2.*cos(anglcentral*pi/180); figure plot(xM,yM);hold on plot(xM0,yM0,'r'); grid xlabel('W'); ylabel('Z'); axis square
Je vous remercie d'avance pour toute réponse qui pourra m'aider à résoudre ce problème.
Partager