Finding 8 points on an ellipse

5 次查看(过去 30 天)
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 个评论
Tom
Tom 2021-9-20
Yes the area is equal. Sorry for not making it clear in advance.
Image Analyst
Image Analyst 2021-9-20
Can you attach your data with the paperclip icon?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2021-9-20
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.

更多回答(1 个)

KSSV
KSSV 2021-9-20
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.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by