Hai,
I need to draw a hyperboloid in matlab. How is it I could do it?
BSD

6 件のコメント

Fangjun Jiang
Fangjun Jiang 2011 年 9 月 25 日
If you run membrane, is the figure that comes out close to what you want?
bsd
bsd 2011 年 9 月 25 日
what is membrane?
Fangjun Jiang
Fangjun Jiang 2011 年 9 月 25 日
Run membrane in Command Window to see.
bsd
bsd 2011 年 9 月 25 日
no, it not a hyperboloid.
Fangjun Jiang
Fangjun Jiang 2011 年 9 月 25 日
Then you need to explain what is hyperboloid and what you want to do. I can search for hyperboloid and it gives me lots of hits. For your benefit, barely mention hyperboloid in your question is not sufficient, right?
bsd
bsd 2011 年 9 月 25 日
hyperboloid is a three dimensional representation of a hyperbola. Just like sphere, as sphere is a three dimensional and circle is two dimensional.
BSD

サインインしてコメントする。

 採用された回答

UJJWAL
UJJWAL 2011 年 9 月 26 日

5 投票

Hi BSD,
I hope the following code will help. Reply back :-
clc;
clear all;
[X,Y,Z] = meshgrid(-10:0.5:10,-10:0.5:10,-10:0.5:10);
a=1;
b=1;
c=1;
V = X.^2/a^2 + Y.^2/b^2 - Z.^2/c^2;
p=patch(isosurface(X,Y,Z,V,1)); % This is the key step. It involves getting the part of the volume corresponding to the surface defined by the equation
set(p,'FaceColor','red','EdgeColor','none');
daspect([1 1 1])
view(3);
camlight
Hope This helps..
Happy To Help
UJJWAL

2 件のコメント

bsd
bsd 2011 年 9 月 28 日
It gives both the upper and lower portion. But I need only the upper portion of the hyperboloid. How to do that? Looking for your reply.
BSD
UJJWAL
UJJWAL 2011 年 9 月 28 日
Hi BSD,
That is very easy as you just have to change the range of the x,y and z points you use in meshgrid
For getting the upper portion you just need to set z from 0:0.5:10
so in the above code just replace the meshgrid line with the following :-
[X,Y,Z] = meshgrid(-10:0.5:10,-10:0.5:10,0:0.5:10);
Hope This Helps
HAPPY TO HELP
UJJWAL

サインインしてコメントする。

その他の回答 (3 件)

HAGOS EMAN
HAGOS EMAN 2019 年 6 月 18 日

1 投票

Thanking you all! Very helpful!
Fangjun Jiang
Fangjun Jiang 2011 年 9 月 25 日

0 投票

As long as you have the mathematical equation describing that hyperboloid, you should be able to generate some data and then draw it.
Take a unit sphere for example, the equation is x^2+y^2+z^2=1; If you carefully set the mesh grid for x and y, then you can calculate the corresponding value for z. Then you can use surf() to plot it.
MATLAB has the sphere() function. Here I am using it to generate the data first and then plot it. Running sphere alone can plot it too.
[x,y,z]=sphere;
surf(x,y,z)
Chaowei Chen
Chaowei Chen 2011 年 9 月 25 日

0 投票

[x,y]=meshgrid(-10:10);
r_sq=x.^2+y.^2;
z=sqrt(r_sq+1);
surf(x,y,z)

2 件のコメント

Bud Kelly
Bud Kelly 2018 年 3 月 30 日
This is very clever. Thank you, I will keep it for reference. I had thought that you needed to purchase Symbolic Math Toolbox to plot 3D explicit functions, but now I am encouraged. Thanks.
Benjamin Backus
Benjamin Backus 2020 年 7 月 22 日
That doesn't look like an ellipsoid to me. The 3rd line should rather be:
z=sqrt(200 - r_sq);
in order to have an ellipsoid of equation x^2 + y^2 + z^2 = 200 (200 because x and y have magnitude 10)

サインインしてコメントする。

カテゴリ

タグ

質問済み:

bsd
2011 年 9 月 25 日

コメント済み:

2020 年 7 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by