How to plot parametric equations with Scilab

A mathematical curve can be defined as a function y = f(x), where x is the coordinate of the horizontal axis and y is the value of the function in that x point. However, not all curves can be defined this way. Parametric equations or functions are a way of defining mathematical curve function of a third variable t called a parameter:

\[ \begin{split}
x &= f(t)\\
y &= g(t)
\end{split} \]

where:

t – parameter
f, g – functions of t
x, y – coordinates

Through parametric equations we can express the coordinates of the points that makes up a geometric object such as a curve or surface, in which case the equations are collectively called a parametric representation of the object.

Using Scilab, we can easily plot parametric equations/functions using the plot2d() function. For a better understanding we are going to plot the parametric functions of the:

  • circle
  • elipse
  • astroid
  • cycloid
  • cardioid
  • lemniscate of Bernoulli
  • nephroid
  • deltoid

Before diving into the parametric equations plot, we are going to define a custom Scilab function, named fPlot(). Since the formatting of the plot is going to be the same for all examples, it’s more efficient to use a custom function for the plot instructions. The function is going to be called for each parametric equation plot.

function fPlot(x,y)
    hf=gcf();
    hf.background=8;
    hf.children.font_size=3;
    plot2d(x,y,frameflag=4);
    ha=gca();
    ha.children.children.foreground=2;
    xgrid();
    xlabel("x","FontSize",3)
    ylabel("y","FontSize",3)
    title("x-engineer.org","FontSize",3)
endfunction

Circle

Circle with center a, b and radius r

Image: Circle with center a, b and radius r

A circle can be defined in an x-y Cartesian coordinate system, through the equation:

\[\left(x-a\right)^{2}+\left(y-b\right)^{2}-r^{2}=0\]

where:

a – the x-coordinate of the center
b – the y-coordinate of the center
r – the radius of the circle

The equation of the circle can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a + r \cdot cos(t)\\
y &= b + r \cdot sin(t)
\end{split} \]

where t is the parametric variable in the range 0 to .

Geometrically, the parameter t can be interpreted as the angle between the segment from (a, b) to (x, y) and the positive x-axis.

The definition of the circle parameters and equations is done with the Scilab instructions:

a=1;
b=2;
r=2;
t=linspace(0,2*%pi,100);
x=r*cos(t)+a;
y=r*sin(t)+b;
figure(1)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Circle (Scilab plot)

Image: Circle (Scilab plot)

Ellipse

Ellipse animation

Image: Ellipse animation

An ellipse can be defined in an x-y Cartesian coordinate system, through the equation:

\[\frac {x^{2}}{a^{2}}+\frac {y^{2}}{b^{2}}-1=0\]

where the parameters a and b are called the semi-major and semi-minor axes.

The equation of the ellipse can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a \cdot cos(t)\\
y &= b \cdot sin(t)
\end{split} \]

where t is the parametric variable in the range 0 to .

The definition of the ellipse parameters and equations is done with the Scilab instructions:

a=2;
b=1;
t=linspace(0,2*%pi,100);
x=a*cos(t);
y=b*sin(t);
figure(2)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Ellipse (Scilab plot)

Image: Ellipse (Scilab plot)

Astroid

Astroid animation

Image: Astroid animation

An astroid can be defined in an x-y Cartesian coordinate system, through the equation:

\[x^{\frac{2}{3}}+y^{\frac{2}{3}}-a^{\frac{2}{3}}=0\]

The equation of the astroid can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a \cdot \cos ^{3}(t)=\frac{a}{4} \cdot \left ( 3 \cdot \cos(t)+\cos(3 \cdot t) \right )\\
y &= a \cdot \sin ^{3}(t)=\frac{a}{4} \cdot \left ( 3 \cdot \sin(t)-\sin(3 \cdot t) \right )
\end{split} \]

where t is the parametric variable in the range 0 to 2π.

The definition of the astroid parameters and equations is done with the Scilab instructions:

a=2;
t=linspace(0,2*%pi,100);
x=a*cos(t).^3;
y=a*sin(t).^3;
figure(3)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Astroid (Scilab plot)

Image: Astroid (Scilab plot)

Cycloid

Cycloid animation

Image: Cycloid animation

A cycloid can be defined in an x-y Cartesian coordinate system, through the equation:

\[r \cdot \cos ^{-1} \left (1- \frac {y}{r} \right)-{\sqrt {y \cdot (2 \cdot r-y)}}-x=0\]

where r is the radius of the rolling circle.

The equation of the cycloid can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= r \cdot \left ( t-\sin(t) \right )\\
y &= r \cdot \left ( 1-\cos(t) \right )
\end{split} \]

where t is the parametric variable in the range 0 to 2π.

The definition of the cycloid parameters and equations is done with the Scilab instructions:

a=2;
t=linspace(0,4*%pi,100);
x=a*(t-sin(t));
y=a*(1-cos(t));
figure(4)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Cycloid (Scilab plot)

Image: Cycloid (Scilab plot)

Cardioid

Cardioid animation

Image: Cardioid animation

A cardioid can be defined in an x-y Cartesian coordinate system, through the equation:

\[(x^2+y^2)^2+4 \cdot a \cdot x \cdot (x^2+y^2)-4 \cdot a^2 \cdot y^2 = 0 \]

where a is the common radius of the two generating circles with midpoints (-a, 0) and (a, 0).

The equation of the cardioid can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a \cdot (2 \cdot \cos(t) – \cos(2 \cdot t))\\
y &= a \cdot (2 \cdot \sin(t) – \sin(2 \cdot t))
\end{split} \]

where t is the parametric variable in the range 0 to .

The definition of the cardioid parameters and equations is done with the Scilab instructions:

a=2;
t=linspace(0,2*%pi,100);
x=a*(2*cos(t)-cos(2*t));
y=a*(2*sin(t)-sin(2*t));
figure(5)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Cardioid (Scilab plot)

Image: Cardioid (Scilab plot)

Lemniscate of Bernoulli

Lemniscate of Bernoulli animation

Image: Lemniscate of Bernoulli animation

The lemniscate of Bernoulli can be defined in an x-y Cartesian coordinate system, through the equation:

\[(x^2 + y^2)^2 – 2 \cdot a^2 \cdot (x^2 – y^2) = 0\]

The equation of the lemniscate of Bernoulli can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a \cdot \sqrt{\cos(2 \cdot t)} \cdot \cos(t)\\
y &= a \cdot \sqrt{\cos(2 \cdot t)} \cdot \sin(t)
\end{split} \]

where t is the parametric variable in the range 0 to .

The definition of the lemniscate of Bernoulli parameters and equations is done with the Scilab instructions:

a=2;
t=linspace(0,2*%pi,100);
x=a*sqrt(cos(2*t)).*cos(t);
y=a*sqrt(cos(2*t)).*sin(t);
figure(6)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Lemniscate of Bernoulli (Scilab plot)

Image: Lemniscate of Bernoulli (Scilab plot)

Nephroid

Nephroid animation

Image: Nephroid animation

The nephroid can be defined in an x-y Cartesian coordinate system, through the equation:

\[(x^2 + y^2 – 4 \cdot a^2)^3 – 108 \cdot a^4 \cdot y^2 = 0\]

where a is the radius of the small circle and half the radius of the big circle.

The equation of the nephroid can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= a \cdot (3 \cdot \cos(t) – \cos(3 \cdot t))\\
y &= a \cdot (3 \cdot \sin(t) – \sin(3 \cdot t))
\end{split} \]

where t is the parametric variable in the range 0 to .

The definition of the nephroid parameters and equations is done with the Scilab instructions:

a=2;
t=linspace(0,2*%pi,100);
x=a*(3*cos(t)-cos(3*t));
y=a*(3*sin(t)-sin(3*t));
figure(7)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Nephroid (Scilab plot)

Image: Nephroid (Scilab plot)

Deltoid

Deltoid animation

Image: Deltoid animation

The deltoid can be defined in an x-y Cartesian coordinate system, through the equation:

\[(x^2+y^2)^2 + 18 \cdot a^2 \cdot (x^2+y^2)-27 \cdot a^4 – 8 \cdot a \cdot (x^3-3 \cdot x \cdot y^2)=0\]

where a is the radius of the rolling circle.

The equation of the deltoid can be written in parametric form, using the trigonometric functions sine and cosine:

\[ \begin{split}
x &= (b-a) \cdot \cos(t)+a \cdot \cos \left(\frac {b-a}{a} \cdot t\right)\\
y &= (b-a) \cdot \sin(t)-a \cdot \sin \left(\frac {b-a}{a} \cdot t\right)
\end{split} \]

where t is the parametric variable in the range 0 to and b is the radius of the circle within which the aforementioned circle is rolling. (In the animation above b = 3·a)

The definition of the deltoid parameters and equations is done with the Scilab instructions:

a=2;
b=6;
t=linspace(0,2*%pi,100);
x=(b-a)*cos(t)+a*cos(((b-a)/a)*t);
y=(b-a)*sin(t)-a*sin(((b-a)/a)*t);
figure(8)
fPlot(x,y)

Running the Scilab instructions above will output the following graphical window:

Deltoid (Scilab plot)

Image: Deltoid (Scilab plot)

We can also use FOR loops to plot the deltoid for different ratios between radius a and radius b. With the Scilab script below we are going to plot, on the same axes, the deltoid for the b/a ratio from 3 to 10.

a=2;
b=[3 4 5 6 7 8 9 10]*a;
t=linspace(0,2*%pi,100);
figure(9)
for i=1:length(b)
    x(i,:)=(b(i)-a)*cos(t)+a*cos(((b(i)-a)/a)*t);
    y(i,:)=(b(i)-a)*sin(t)-a*sin(((b(i)-a)/a)*t);
    fPlot(x(i,:),y(i,:))
end

Running the Scilab instructions above will output the following graphical window:

Deltoid FOR loop (Scilab plot)

Image: Deltoid FOR loop (Scilab plot)

Don’t forget to Like, Share and Subscribe!

Leave a Reply

Ad Blocker Detected

Dear user, Our website provides free and high quality content by displaying ads to our visitors. Please support us by disabling your Ad blocker for our site. Thank you!

Refresh