軸がz軸と平行ではない円錐面のplot方法

3次元で頂点の座標,頂点と底面を結ぶ直線の傾き,底面の半径が分かっているときに円錐面をplotする方法はありますか?
頂点が原点,そして円錐の軸がz軸である場合はcylinder関数を用いて以下のように円錐が描けます.
ここから任意の点を頂点とし,軸を一定の角度に傾けて円錐を描くことは可能でしょうか?
%円錐の作成
[X,Y,Z] = cylinder([0:0.1:1],50);
Z = Z/sqrt(2);
%plot
surf(X,Y,Z)

 Risposta accettata

Shunichi Kusano
Shunichi Kusano il 16 Set 2020

0 voti

こんにちは
3次元の回転を使って頂点の座標を変換して、それを描画することができました。添付のスクリプトの使い方を下に示します。
%円錐の作成
[X,Y,Z] = cylinder([0:0.1:1],50);
Z = Z/sqrt(2);
%plot
f = surf(X,Y,Z);
axis equal
surf_rot_3d(f, 45, 30, [10 20 30]);
2番目の45はx->y軸方向の回転角(方位角)
3番目の30はz->x方向の俯角
4番目の[10 20 30]は頂点座標のxyz
です。角度はそれぞれdegreeで入れてください。実行すると元のプロットが上書きされて3次元回転したものになっているはずです。

1 Commento

dai
dai il 17 Set 2020
解決しました!回答の速さに感動です...
とても助かりました.ありがとうございます!

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2019a

Richiesto:

dai
il 16 Set 2020

Commentato:

dai
il 17 Set 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!