how to draw a hyperboloid?
110 次查看(过去 30 天)
显示 更早的评论
Hai,
I need to draw a hyperboloid in matlab. How is it I could do it?
BSD
6 个评论
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?
采纳的回答
UJJWAL
2011-9-26
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 个评论
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 个)
Fangjun Jiang
2011-9-25
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)
0 个评论
Chaowei Chen
2011-9-25
[x,y]=meshgrid(-10:10);
r_sq=x.^2+y.^2;
z=sqrt(r_sq+1);
surf(x,y,z)
2 个评论
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
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)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!