필터 지우기
필터 지우기

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

조회 수: 7 (최근 30일)
macaroni
macaroni 2017년 3월 15일
댓글: Jiro Doke 2017년 3월 17일
ある任意のxyz座標上の点が特定の値を保有し、それが複数存在したとき、それらの点の集合で形成される3次元曲面上に、それぞれの点が保有する値でのコンターの描画を行う方法を探しています。

채택된 답변

Jiro Doke
Jiro Doke 2017년 3월 15일
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)

추가 답변 (1개)

Tohru Kikawada
Tohru Kikawada 2017년 3월 15일
曲面上に等高線を表示するには contour3 がお使いいただけます。
下記の回答も参考になりそうです。
一方、任意のxyz座標上の特定の値というのはボリュームデータか点群を指していますでしょうか。
その際、それぞれの点が保有する値のコンターとはどういうことでしょうか。
点が保有する値の同値線を曲面に投影するという意味でしょうか。
何か参考になるイメージ図があるとより適切な回答ができそうです。
  댓글 수: 2
macaroni
macaroni 2017년 3월 16일
回答ありがとうございます。 イメージとしては、下の図のようなものをイメージしています。 円柱表面のそれぞれの座標が保有する値の大きさがカラーマップで表現されています。
下記のイメージでは、カラーマップとなっていますが、点が保有する値の同値線を曲面に投影するという認識で相違ないかと思います。
Jiro Doke
Jiro Doke 2017년 3월 17일
おそらく contourslice でできるかと思います。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Segmentation and Analysis에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by