0
我知道功能sph2cart
,但我覺得我必須錯誤地使用它。在微積分課本,我看到了這以下的球形公式:我需要幫助在MATLAB中以直角座標繪製球面方程
ρ = 1 + 1/5*sin(6θ)*sin(5Φ)
產生的東西,看起來像這樣:
我想重現這在圖形圖像,所以我寫的下面的代碼
[q,t] = meshgrid(linspace(0,pi,100),linspace(0,2*pi,100));
rho = 1+1/5*sin(6*t)*sin(5*q);
[x,y,z] = sph2cart(t,q,rho);
surf(x,y,z)
axis square, axis equal
而且我得到了下圖:
爲什麼會發生這種情況?爲什麼我沒有得到我的鈣教科書顯示的顛簸球體?
不知道爲什麼?你的代碼「預放大」了100倍的半徑軸基本常數值(一個100而不是1),與變量部分相比,組成球面座標系統中的「sperical surface」{Radius,Theta,Phi} ---它似乎並不僅僅因爲事故Dave而發生:o)[+1]這樣的評論。可以嘗試添加一個用於這種預放大值的UI滑塊(使「常量」成爲用戶可修改的變量),以便在實時GUI中查看實時效果。 – user3666197
你說得很對:-)在進一步的考慮中,我意識到OP代碼中的錯誤是計算的rho值超出範圍,我注意到了矩陣乘法。更新我的回答以反映這一點。 –