Finding 8 points on an ellipse
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tom
el 20 de Sept. de 2021
Comentada: Image Analyst
el 20 de Sept. de 2021
Dear experts,
I have created a 95% confidence ellipse using the following code around a dataset:
allX = score(:,1);
allY = score(:,2);
p = 95;
CIx = prctile(allX, [(100-p)/2, p+(100-p)/2]);
CIy = prctile(allY, [(100-p)/2, p+(100-p)/2]);
CIrng(1) = CIx(2)-CIx(1);
CIrng(2) = CIy(2)-CIy(1);
llc = [CIx(1),CIy(1)];
rectangle('Position',[llc,CIrng],'Curvature',[1,1], 'EdgeColor',"red");
Now I need to find 8 specific points on the ellipse. Points W - Z have to be the lowest, highest, most right and most left of the ellipse (as you can see here (those are normally not the problem, i think you don´t have to help me with these four points):
The points A-D are more of a problem for me. How can I find these? They are somehow the corners of the rectangle so the corners of the ellipse, but how do I find the coordinates of those?
Thanks in advance.
4 comentarios
Respuesta aceptada
Walter Roberson
el 20 de Sept. de 2021
When the ellipse is parameterized as then the area for the angle from 0 to θ is
And the total area of an ellipse of this form is . We want a sector that is half of the upper quadrant. The upper quadrant by itself would have an area of . So we want . Factoring out the and a 1/2 from both sides then we have and so . So and then . But tan pi/4 is 1, so
Checking with (say) a = 5, b = 2, then . Compute 1/2 * a * b * atan(5/2*tan(atan(2/5))) = 1/2 * 5 * 2 * atan(5/2 * 2/5) = 5 * atan(1) = 5 * pi/4 . And on the left side, 1/2 * pi/4 * 5 * 2 = 5 * pi/4 .
So the formula for theta turns out to be very simple: atan2(b,a)
Now you just have to transform CIrng into a, b parameters.
0 comentarios
Más respuestas (1)
KSSV
el 20 de Sept. de 2021
Find the major, minor axes of ellipse i.e. (a,b). Once these are known, the paraetric equation of ellipse are:
Take phi = 0:pi/4:2*pi ;
You have the points you want.
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing 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!