How to Draw an ellipsoid between two 3d coordinates

4 visualizaciones (últimos 30 días)
yaacov yehuda-zada
yaacov yehuda-zada el 25 de Jul. de 2021
Comentada: darova el 27 de Jul. de 2021
Hi, I want to draw a 3d ellipsoid between two 3d coordinates x1,y1,z1 and x2,y2,z2. The ellipsoid need to be rotated so its top and buttom touch the coordinates. It should have height of r derived from square root and thickness of r/10.Any help please.so far I manage to draw the ellipsoid using ellipsoid() and draw it using surf in the center of axis. I dont know how to calculate and add the required angles to rotate it and the offset.Thanks.

Respuestas (2)

darova
darova el 26 de Jul. de 2021
Use rotate to rotate the ellipsoid
  2 comentarios
yaacov yehuda-zada
yaacov yehuda-zada el 27 de Jul. de 2021
How do I calculate the required angles for the rotation? I only have the points. Thanks.
darova
darova el 27 de Jul. de 2021
Use cart2sph
p1 = [1 2 1]; % first point
p2 = [2 5 1]; % second point
[az,el,r] = cart2sph(p2-p1); % find two angles and distance

Iniciar sesión para comentar.


Matt J
Matt J el 26 de Jul. de 2021
Editada: Matt J el 26 de Jul. de 2021
Another way would be to use the ellipsoidalFit.groundTruth method in this File Exchange submission.
P1=[x1,y1,z1]; P2=[x2,y2,z2];
center=(P1+P2)/2;
r=norm(P2-P1)/2;
ABC=[r, r/10 , r/10];
[az,el,~]=cart2sph(x2-x1,y2-y1,z2-z1);
plot( ellipsoidalFit.groundtruth([],center,ABC,[az,-el,0]*180/pi) );

Categorías

Más información sobre Computational Geometry en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by