| MATLAB Function Reference | ![]() |
表示
TRI = delaunay(x,y) TRI = delaunay(x,y,'sorted')
定義
データ点の集合が与えられたとき、Delaunay 三角形分割 は、各データ点を近傍のデータ点に繋いだ線の集合です。Delaunay 三角形分割は、Voronoi 線図に関連しています。Delaunay 三角形に外接する円の中心は、ちょうど、Voronoi 多角形の頂点に対応します。

詳細
TRI = delaunay(x,y)
は、三角形の外接円にデータ点が含まれていないような三角形の集合を出力します。m 行 3 列の行列TRIの各行は、1つの三角形を定義し、ベクトルx と yのインデックスを含んでいます。
共線データによる劣化を避けるために、delaunay は、あるランダムなゴミをデータに付加します。デフォルトのゴミの標準偏差
4*sqrt(eps)は、データ内の数桁の精度を維持するように選択されます。
tri = delaunay(x,y,fuzz)
は、fuzz標準偏差に指定した値を使います。fuzzの値により正しい三角形分割を行わない可能性があります。これと違う立場で、共線やそれに近いデータを避けるため、ユーザのデータを前処理する必要があります。
TRI = delaunay(x,y,'sorted')
は、点 x と y が、最初に y 、つぎに、x でソートされ、重複する点は、省略すると仮定します。
注意
Delaunay 三角形分割は、griddata (散在しているデータの内挿)、 convhull, voronoi (voronoi 線図を計算)と共に使われ、散在したデータ点に対して三角グリッドを作成するために有効なものです。
関数 dsearch と tsearch は、三角形を囲む、または、最近傍点を見つけるために三角形分割を探索します。
注意
delaunay は、qhull [1]をベースにしています。 qhullに対する詳細は、
http://www.geom.umn.edu/software/qhull/を参照してください。コピーライトの情報については、
http://www.geom.umn.edu/software/download/COPYING.htmlを参照してください。
|
例題
つぎのコードは、ランダムに生成した点に対する Delaunay 三角形分割をプロットしています。
rand('state',0);
x = rand(1,10);
y = rand(1,10);
TRI = delaunay(x,y);
subplot(1,2,1),...
trimesh(TRI,x,y,zeros(size(x))); view(2),...
axis([0 1 0 1]); hold on;
plot(x,y,'o');
set(gca,'box','on');
[vx, vy] = voronoi(x,y,TRI); subplot(1,2,2),... plot(x,y,'r+',vx,vy,'b-'),... axis([0 1 0 1])
![]()
参考
convhull, delaunay3, delaunayn, dsearch, griddata, trimesh, trisurf, tsearch, voronoi, voronoin
参考文献
National Science and Technology Research Center for Computation and Visualization of Geometric Structures (The Geometry Center), University of Minnesota. 1993.
| del2 | delaunay3 | ![]() |