簡體   English   中英

Matlab中的3D繪圖錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM