MATLAB Answers

Finding 8 points on an ellipse

24 views (last 30 days)
Tom
Tom on 20 Sep 2021 at 9:07
Commented: Image Analyst on 20 Sep 2021 at 13:27
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 Comments
Image Analyst
Image Analyst on 20 Sep 2021 at 13:27
Can you attach your data with the paperclip icon?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 20 Sep 2021 at 12:35
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.

More Answers (1)

KSSV
KSSV on 20 Sep 2021 at 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.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!