MATLAB Answers

xyz座標のベクトル​​データ(散布データ​)​から3次元メッシ​ュプ​ロットや表面積​の出し方

31 views (last 30 days)
和大 坂田
和大 坂田 on 20 Dec 2020
Answered: Kenta on 27 Dec 2020
Excelやテキストファイルにx, y,z のデータがそれぞれベクトルデータ(散布データ)として定義されています。
このデータを使用して3次元メッシュプロットを描き表面積のを求める方法を教えてください。
  1 Comment
源樹 上林
源樹 上林 on 22 Dec 2020
delaunay と polyarea あたりで、がんばればできる…ような気がする。

Sign in to comment.

Answers (1)

Kenta
Kenta on 27 Dec 2020
clear;clc;close all
ptCloud = pcread('teapot.ply');
pcshow(ptCloud);
ptCloud=pcdownsample(ptCloud,"random",0.1);
P=double(ptCloud.Location);
% k = boundary(P);
% trisurf(k,P(:,1),P(:,2),P(:,3),'Facecolor','red','FaceAlpha',0.1)
DT = delaunayTriangulation(P(:,1),P(:,2),P(:,3));
tetramesh(DT,'FaceAlpha',0.3);
[K,v] = convexHull(DT);
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3))
こんにちは、源樹 上林さまのおっしゃるように、delauney三角形を作成すれば、それらしいものはできます。
試したことはないのですが、以下のようなツールもあるようです。いろいろと試してみていい感じのメッシュができたら面積計算を試みてはどうでしょうか
http://iso2mesh.sourceforge.net/cgi-bin/index.cgi?Doc/Installation

Tags

Community Treasure Hunt

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

Start Hunting!