MATLAB的surf
命令允許您將可選的X
和Y
數據傳遞給指定非笛卡爾x-y分量的數據。 (它們實質上改變了基本向量)。我希望將類似的論點傳遞給一個會畫出一條線的函數。在MATLAB中用非笛卡爾座標繪製一條線
如何繪製使用非笛卡爾座標系的直線?
如果我的術語稍微偏離,我很抱歉。這在技術上仍然可能是笛卡爾空間,但從x方向上的一個單位與y方向上的一個單位正交的意義上講,它不是平方。如果你能糾正我的術語,我會非常感激!
編輯:
下面更好地展示我的意思:
的命令:
datA=1:10;
datB=1:10;
X=cosd(8*datA)'*datB;
Y=datA'*log10(datB*3);
Z=ones(size(datA'))*cosd(datB);
XX=X./(1+Z);
YY=Y./(1+Z);
surf(XX,YY,eye(10)); view([0 0 1])
產生如下圖:
這裏,X和Y尺寸不正交也不等於I-隔開。 x中的一個單位可以對應x方向5釐米,但x中的下一個單位可以對應x方向2釐米+ y方向1釐米。 我希望複製這一功能,但畫一條線,而不是一個衝浪。例如,我在尋找其中的函數:
straightLine=[(1:10)' (1:10)'];
my_line(XX,YY,straightLine(:,1),straightLine(:,2))
會產生追溯到上衝浪圖中的紅色正方形的線。
我不知道我知道你的意思。 'plot'的座標,很像'surf',必須在笛卡兒座標系中給出。但是,您可以*參數化*您的數據,以獲得'x'和'y'作爲您自己的非笛卡爾座標的函數。我的意思是'phi = linspace(0,2 * pi,50); R = COS(PHI)^ 2。 X = R * cos(PHI); Y = R * SIN(PHI);積(X,Y)'。這應該是像「polar(theta,r)」那樣的東西。免責聲明:我意識到極座標系是局部正交的,但我希望你明白我的觀點。因此,只要您知道從您的自定義座標系到笛卡爾座標系的轉換,您應該沒問題 –
您是否可能在尋找[等軸投影](https://en.wikipedia.org/wiki/Isometric_projection)之類的東西? – beaker
@beaker,這可能工作,但我不是從3D投影到2D。 – chessofnerd