3次元の曲面上にコン​ターを描画する方法を​探しています

5 views (last 30 days)
macaroni
macaroni on 15 Mar 2017
Commented: jiro on 17 Mar 2017
ある任意のxyz座標上の点が特定の値を保有し、それが複数存在したとき、それらの点の集合で形成される3次元曲面上に、それぞれの点が保有する値でのコンターの描画を行う方法を探しています。

Accepted Answer

jiro
jiro on 15 Mar 2017
contourslice で可能かと思います。ドキュメントの2つ目の例(球面に沿った等高線スライス)を参照してみてください。
もう一つサンプルです。
xy = -2.5 + 5*gallery('uniformdata',[200 2],0);
x = xy(:,1);
y = xy(:,2);
z = x.*exp(-x.^2-y.^2);
v = peaks(x,y); % 適当に x,y,z 点の値を定義
scatter3(x,y,z,[],v)
% contourslice が必要としている点の集合データからボリュームデータに変換
[X,Y,Z] = meshgrid(-2.5:.1:2.5,-2.5:.1:2.5,-0.4:.01:.4);
V = griddata(x,y,z,v,X,Y,Z);
% 同じく等高線を描く表面も表面データに変換
[xq,yq] = meshgrid(-2.5:.1:2.5,-2.5:.1:2.5);
zq = griddata(x,y,z,xq,yq);
% 可視化
figure
contourslice(X,Y,Z,V,xq,yq,zq,10) % 10本の等高線
grid on
view(3)

More Answers (1)

Tohru Kikawada
Tohru Kikawada on 15 Mar 2017
曲面上に等高線を表示するには contour3 がお使いいただけます。
下記の回答も参考になりそうです。
一方、任意のxyz座標上の特定の値というのはボリュームデータか点群を指していますでしょうか。
その際、それぞれの点が保有する値のコンターとはどういうことでしょうか。
点が保有する値の同値線を曲面に投影するという意味でしょうか。
何か参考になるイメージ図があるとより適切な回答ができそうです。
  2 Comments
jiro
jiro on 17 Mar 2017
おそらく contourslice でできるかと思います。

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!