ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

barycentricToCartesian

クラス: triangulation

点の座標を重心座標から直交座標に変換

構文

PC = barycentricToCartesian(TR,ti,B)

説明

PC = barycentricToCartesian(TR,ti,B) は、B の点の直交座標を返します。各行 (B(j,:)) には、三角形または四面体 (ti(j)) に対する点の重心座標が含まれます。点 (PC(j,:)) は、直交座標で表現される j 番目の点です。

入力引数

TR

三角形分割表現。triangulation または delaunayTriangulation を参照してください。

ti

三角形または四面体の ID。列ベクトルとして指定されます。

B

重心座標。行列として指定されます。各行 (B(j,:)) には、三角形または四面体 (ti(j)) に対する点の重心座標が含まれます。

出力引数

PC

直交座標。行列として返されます。点 (PC(j,:)) は、直交座標で表現される j 番目の点です。

定義

三角形または四面体の ID

行列 TR.ConnectivityList の行番号。この ID を使って、特定の三角形または四面体を参照します。

すべて展開する

直交座標に変換された重心座標

一連の点 P と三角形分割連結リスト T から三角形分割を作成します。

P = [ 2.5    8.0
      6.5    8.0
      2.5    5.0
      6.5    5.0
      1.0    6.5
      8.0    6.5];

T = [5  3  1;
     3  2  1;
     3  4  2;
     4  6  2];

TR = triangulation(T,P);

最初の三角形を指定します。

ti = 1;

三角形の 2 番目の点の重心座標を指定します。

B = [0 1 0];

点を直交座標に変換します。

PC = barycentricToCartesian(TR,ti,B)
PC =

    2.5000    5.0000

変形した三角形分割のマップされた内点

一連の点から Delaunay の三角形分割を作成します。

x = [0 4 8 12 0 4 8 12]';
y = [0 0 0 0 8 8 8 8]';
DT = delaunayTriangulation(x,y);

内点の直交座標を計算します。

cc = incenter(DT);

元の三角形分割と基準点をプロットします。

figure
subplot(1,2,1);
triplot(DT); 
hold on;
plot(cc(:,1),cc(:,2),'*r'); 
hold off;
axis equal;

DT の変形バージョンである新しい三角形分割を作成します。

ti = DT.ConnectivityList;
y = [0 0 0 0 16 16 16 16]';
TR = triangulation(ti,x,y);

DT の内点の重心座標を計算し、その座標を使って TR の類似点の直交座標を計算します。

b = cartesianToBarycentric(DT,[1:length(ti)]',cc);
xc = barycentricToCartesian(TR,[1:length(ti)]',b);

変形した三角形分割とマッピングした基準点の位置をプロットします。

subplot(1,2,2);
triplot(TR); 
hold on;
plot(xc(:,1),xc(:,2),'*r'); 
hold off;
axis equal;

参考

|

この情報は役に立ちましたか?