dessine l'ellipse et l'ellipsoïde dans MATLAB
Comment puis-je dessiner une ellipse et d'un ellipsoïde à l'aide de MATLAB?
(x^2/a^2)+(y^2/b^2)=1
n=40;
a=0; b=2*pi;
c=0; d=2*pi;
for i=1:n
u=a+(b-a)*(i-1)/(n-1);
for j=1:m
v=a+(d-c)*(j-1)/(m-1);
x(i,j)=sin(u)*cos(v);
y(i,j)=sin(u)*sin(v);
z(i,j)=cos(u);
end
end
mesh(x,y,z);
Mais je veux que la forme?
source d'informationauteur ooi
Vous devez vous connecter pour publier un commentaire.
Ellipse de l'article sur Wikipedia avait un simple code JavaScript pour tracer des ellipses.
Il utilise la forme paramétrique:
où
J'ai traduit le code dans une fonction MATLAB:
calculateEllipse.m
et un exemple pour le tester:
J'ai adapté cette excellent ellipse de traçage script de MATLAB Central pour votre condition de equation_ellipse http://img121.imageshack.us/img121/5746/eqn1995.png
Remarque: le changement de N pour définir la résolution de votre ellipse
Voici une ellipse centrée à
(10,10)
aveca = 30
etb = 10
Ellipse http://img715.imageshack.us/img715/834/59078110.png
Les réponses de Jacob et Amro sont de très bons exemples pour le calcul et le traçage des points pour une ellipse. Je vais répondre à quelques astuces, vous pouvez tracer un ellipsoïde...
D'abord, MATLAB dispose d'une fonction intégrée ELLIPSOÏDE qui génère un ensemble de points de filet donné l'ellipsoïde centre et le demi-axe des longueurs. Le code suivant crée les matrices
x
y
etz
pour une ellipse centrée à l'origine avec le demi-axe des longueurs de 4, 2 et 1 pour les x, y et z les directions, respectivement:Vous pouvez ensuite utiliser la fonction MAILLE à la parcelle, en retournant une poignée pour le tracé de la surface de l'objet:
Si vous souhaitez faire pivoter le tracé de l'ellipsoïde, vous pouvez utiliser le Faites TOURNER fonction. La règle suivante s'applique une rotation de 45 degrés autour de l'axe y:
Vous pouvez ensuite ajuster la parcelle apparence pour obtenir la figure suivante:
Aussi, si vous souhaitez utiliser la rotation des points de l'intrigue pour la suite des calculs, vous pouvez les obtenir à partir du tracé de la surface de l'objet:
Créer deux vecteurs, l'un des abscisses des points de la circonférence de l'ellipsoïde, l'un des ordonnées. Faire ces vecteurs suffisamment longtemps pour satisfaire vos exigences en matière de précision. Tracer les deux vecteurs (x,y) paires rejoint. J'avais chute de la pour des boucles à partir de votre code beaucoup plus clair si vous utilisez vecteur de notation. Aussi, je voudrais formater votre question en utilisant le balisage de code pour rendre tout cela plus clair de votre auditoire.
Ellipse de l'article sur Wikipedia et de la matrice de Rotation.
Réécriture des fonctions:
rotation par
rotAngle
dans le sens antihoraire autour de(0,0)
Transformation des coordonnées de
(cx, cy)
et un exemple pour le tester:
La façon la plus simple pourrait être d'utiliser la fonction Matlab
Par exemple:
Cependant, c'est la solution la plus simple est bien d'avoir un rapide coup d'œil à la façon dont l'ellipse ressemble. Si vous voulez avoir une belle parcelle de regarder les autres solutions.
Je ne sais pas en quelle version de Matlab ceci a été ajouté, mais il est disponible au moins à partir de la version R2012b.