Asked by Dimitris Arapidis
on 8 Sep 2013

I want to plot an Ellipse. I have the verticles for the major axis: d1(0,0.8736) d2(85.8024,1.2157) (The coordinates are taken from another part of code so the ellipse must be on the first quadrant of the x-y axis) I also want to be able to change the eccentricity of the ellipse.

Answer by Roger Stafford
on 8 Sep 2013

Edited by Cris LaPierre
on 5 Apr 2019

Accepted Answer

Let (x1,y1) and (x2,y2) be the coordinates of the two vertices of the ellipse's major axis, and let e be its eccentricity.

a = 1/2*sqrt((x2-x1)^2+(y2-y1)^2);

b = a*sqrt(1-e^2);

t = linspace(0,2*pi);

X = a*cos(t);

Y = b*sin(t);

w = atan2(y2-y1,x2-x1);

x = (x1+x2)/2 + X*cos(w) - Y*sin(w);

y = (y1+y2)/2 + X*sin(w) + Y*cos(w);

plot(x,y,'y-')

axis equal

Walter Roberson
on 26 Jul 2018

Kaleesh Bala
on 27 Jul 2018

ok fine let me put it in parametric type having two foci as x1 y1, x2 y2

determining r1,r2 to get the elliptical form? I think from r1 can get r2.

So how to determine r1.

xt = r1 * cos(t) + xc;

yt = r2 * sin(t) + yc;

Walter Roberson
on 27 Jul 2018

The foci are not enough information to determine the ellipse.

Sign in to comment.

Answer by Azzi Abdelmalek
on 8 Sep 2013

Edited by Azzi Abdelmalek
on 12 Jun 2015

a=5; % horizontal radius

b=10; % vertical radius

x0=0; % x0,y0 ellipse centre coordinates

y0=0;

t=-pi:0.01:pi;

x=x0+a*cos(t);

y=y0+b*sin(t);

plot(x,y)

Ivailo Ivanov
on 14 Jan 2016

It was very simple and comprehensible.

Cynthia Dickerson
on 27 Jun 2018

Thanks! This code worked for me perfectly. :)

Sandy M
on 27 Jul 2019

Hi, I do my ellipse graph

A=10;

B=7.5;

X=-10:.1:10;

Y=(7.5/10)*(1-x^2)^(1/2)

z=-(7.5/10)*(1-x^2)^(1/2)

Plot(x,y,x,z)

Its ok but i need it in cm units cause if i change properties of figure and paper to cm i get deference’s about 3 or 5 mm How can I justify the unit

Sign in to comment.

Answer by Kate
on 24 Feb 2014

Image Analyst
on 25 Feb 2014

Devi Satya Cheerla
on 12 Jun 2015

in the equation of ellipse X2/a2 + Y2/b2 = 1. knowing the points on ellipse, can find a and b. then enter the code below to mathematically compute y and to plot x,y.

code:

x=(0:.01:a); # x value is from 0 to 'a' and discrete with 0.01 scale#

i=1:(a*100+1); # i is to calculate y at every discrete value. it should be for 1 i.e first x value to the last x value.. as it does not have a zero, add 1#

clear y # to clear any previous y value#

for i=1:(a*100+1)

y(i)=(b^2*(1-(x(i)^2)/a^2))^.5; #from the ellipse equation y=sqrt(b2(1-(x2/a2))#

end

plot(x,y)

hold on

plot(x,-y)

hold on

plot(-x,y)

hold on

plot(-x,-y)

Sandy M
on 27 Jul 2019

hi why u product the nmber with 100?

and, if i want the graph with cm units, what i do? cause i change garaph and paper properties but i still defreces about 4 mm when i prented it

Sign in to comment.

Answer by Omar Maaroof
on 13 May 2019

you can use

Ellipse2d

Walter Roberson
on 13 May 2019

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## muhammad arfan (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/86615-how-to-plot-an-ellipse#comment_715864

Sign in to comment.