How I use a parabola in the xy-plane as base curve for the cylinder?

3 vues (au cours des 30 derniers jours)
Besim Helic
Besim Helic le 22 Avr 2015
Commenté : Roger Stafford le 23 Avr 2015
Hi to everyone, I'm really new how to this site so to MatLab, too.
So here is my problem: Here is the code to create a cylinder where my base in the xy-plane one ellipse is:
m = 20; n = 50; u = linspace(0, 1, m); v = linspace(0, 2*pi, n); [U, V] = meshgrid(u,v);
a = 3; b = 5;
X = cos(V)*a + U*0; Y = sin(V)*b + U*0; Z = V*0 + U*10;
s = surf(X, Y, Z);
How can I now edit/modify my code to use parabola or hyperbola as base curve?
Thanks.

Réponse acceptée

Roger Stafford
Roger Stafford le 22 Avr 2015
For a hyperbola, x^2/a^2-y^2/b^2 = 1, replace the two lines for X and Y by:
X = a*cosh(V);
Y = b*sinh(V);
For a parabola, y = a*x^2, use:
X = V-pi;
Y = a*X.^2;
  2 commentaires
Besim Helic
Besim Helic le 23 Avr 2015
Thank you very much, this works perfect for parabola (!), but not for hyperbola too. The result is than only one line in xy-plane.
Roger Stafford
Roger Stafford le 23 Avr 2015
To get a better hyperbola also change v:
v = linspace(-1,1,n);
This shows only one of its two branches. To get the other branch write
X = -a*cosh(V);
Y = -b*sinh(V);

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by