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 | ![]() |