how to find the end of major and minor axis of an ellipsoid
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dear,
I have this information of an ellipse
a=29.2139; b=17.7345; xC= 43.9666; yC=42.9211; angle=29.7207;
can any one tell me why the end of the major and minor axis are not in the right place. I tried to rotate them using matrix H, but still it gives me wrong places. can any one help please.
Many thanks,
Nadia,
1 comentario
Respuestas (3)
Image Analyst
el 10 de Mzo. de 2017
Looks like you forgot to apply your rotation matrix to the "g" coordinates.
2 comentarios
Roger Stafford
el 13 de Mzo. de 2017
I think you need
axis equal
so that scaling is the same for both axes.
1 comentario
Roger Stafford
el 21 de Abr. de 2017
Editada: Walter Roberson
el 21 de Abr. de 2017
I will make some assumptions about the ellipse you describe:
- The ‘a’ and ‘b’ values are the lengths of the ellipse’s semi-major and semi-minor axes, respectively.
- xC and yC are the cartesian coordinates of the ellipse’s center.
- The ‘angle’ is the angle in degrees, measured counterclockwise, from the x-axis to the ellipse major axis.
The ellipse axes’ four ends will then be:
Major axis, upper right: x1 = xC+a*cosd(angle)
y1 = yC+a*sind(angle)
lower left: x2 = xC-a*cosd(angle)
y2 = yC-a*sind(angle)
Minor axis, upper left: x3 = xC-b*sind(angle)
y3 = yC+b*cosd(angle)
lower right: x4 = xC+b*sind(angle)
y4 = yC-b*cosd(angle)
You can make a plot of the ellipse as:
t = linspace(-180,180,1000);
x = xC+a*cosd(t)*cosd(angle)-b*sind(t)*sind(angle);
y = yC+a*cosd(t)*sind(angle)+b*sind(t)*cosd(angle);
plot(x,y,’y-‘,[x1,x2],[y1,y2],’r*’,[x3,x4],[y3,y4],’g*’)
axis equal
Note: It is not a good practice to use 'angle' for the name of your variable, since that is a reserved name for one of matlab's functions.
0 comentarios
Ver también
Categorías
Más información sobre Motion Modeling and Coordinate Systems en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!