[英]Wrong 3D plot in Matlab
我正在嘗試在Matlab中創建3D繪圖,而我幾乎沒有經驗。 我真的想畫出這些方程描述的數字:
x = cos(u) sinh(t) / (cosh(t) - cos(u));
y = cos(u) sin(u) / (cosh(t) - cos(u));
z = sin(u);
其中u和t在-pi到pi之間變化。 這就是Paul Bourke所說的幽靈飛機 。
clc
clear
a = -pi:.01:pi;
b = -pi:.01:pi;
[U,T] = meshgrid(a,b);
X = (cos(U).*sinh(T))./(cosh(T)-cos(U));
Y = (cos(U).*sin(U))./(cosh(T)-cos(U));
Z = sin(U);
figure
surf(X,Y,Z)
有了代碼,我得到的東西......難以形容。 我如何繪制圖形?
你的代碼是正確的。 你只需要放大。
一些提示,使其更具可見性:
使用較少的精細網格,通過將a = ...
和b = ...
更改為: linspace(-pi,pi,40);
添加它,'FaceColor','none','EdgeColor','interp');
surf
命令只繪制線條和彩色線條。
添加此axis equal vis3d;
在surf
命令之后,軸將具有正確的縮放並且在旋轉時表現良好。
添加whitebg('black');
並grid off;
使背景變黑。
改為surf(X,Y,Z,-U,...);
並添加colormap('HSV');
如果你想要與原版相同的顏色。
set(gca,'xtick',[]); set(gca,'xticklabel',[]); set(gca,'yticklabel',[]); set(gca,'ytick',[]);
刪除軸刻度
您可能希望使用cameratoolbar
:將投影更改為透視投影 ,一直縮放,非常接近地移動相機,以獲得良好的透視扭曲。
瞧:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.