Code samples for delaunayTriangulation (Automatically generated by the Every Method demo).
// Automated test of delaunayTriangulation - Typical Values
// TIEVisionMath.delaunayTriangulation - Points: 154, Triangles: 302
pts := ImageEnView1.IEBitmap.GetIEVisionImage().goodFeaturesToTrack( 150, 0.01, 20 );
... add the image corners to pts
tris := IEVisionLib().createMath().delaunayTriangulation( pts ); // 154 points -> 302 triangles
mesh := IEVisionLib().createVectorObjRef();
for i := 0 to tris.size() div 3 - 1 do
begin
tri := IEVisionLib().createVectorPoint();
for j := 0 to 2 do
begin
pt := pts.getPoint( tris.getInt32( i * 3 + j ));
tri.push_back( IEVisionPoint( Round( pt.x ), Round( pt.y )));
end;
mesh.push_back( tri );
end;
IEVisionLib().createDrawing().drawContours( ImageEnView1.IEBitmap.GetIEVisionImage(), mesh, IEVisionScalar( 0, 255, 0 ), -1, 1, 16 );
ImageEnView1.Update();

// Automated test of delaunayTriangulation - Alpha Channel - Typical Values
// TIEVisionMath.delaunayTriangulation - Points: 106, Triangles: 206
pts := ImageEnView1.IEBitmap.GetIEVisionImage().goodFeaturesToTrack( 150, 0.01, 20 );
... add the image corners to pts
tris := IEVisionLib().createMath().delaunayTriangulation( pts ); // 106 points -> 206 triangles
mesh := IEVisionLib().createVectorObjRef();
for i := 0 to tris.size() div 3 - 1 do
begin
tri := IEVisionLib().createVectorPoint();
for j := 0 to 2 do
begin
pt := pts.getPoint( tris.getInt32( i * 3 + j ));
tri.push_back( IEVisionPoint( Round( pt.x ), Round( pt.y )));
end;
mesh.push_back( tri );
end;
IEVisionLib().createDrawing().drawContours( ImageEnView1.IEBitmap.GetIEVisionImage(), mesh, IEVisionScalar( 0, 255, 0 ), -1, 1, 16 );
ImageEnView1.Update();

// Automated test of delaunayTriangulation - Random Values
// TIEVisionMath.delaunayTriangulation - Points: 28, Triangles: 50
pts := ImageEnView1.IEBitmap.GetIEVisionImage().goodFeaturesToTrack( 648, 0.01, 69 );
... add the image corners to pts
tris := IEVisionLib().createMath().delaunayTriangulation( pts ); // 28 points -> 50 triangles
mesh := IEVisionLib().createVectorObjRef();
for i := 0 to tris.size() div 3 - 1 do
begin
tri := IEVisionLib().createVectorPoint();
for j := 0 to 2 do
begin
pt := pts.getPoint( tris.getInt32( i * 3 + j ));
tri.push_back( IEVisionPoint( Round( pt.x ), Round( pt.y )));
end;
mesh.push_back( tri );
end;
IEVisionLib().createDrawing().drawContours( ImageEnView1.IEBitmap.GetIEVisionImage(), mesh, IEVisionScalar( 255, 0, 255 ), -1, 1, 8 );
ImageEnView1.Update();

// Automated test of delaunayTriangulation - Alpha Channel - Random Values
// TIEVisionMath.delaunayTriangulation - Points: 27, Triangles: 48
pts := ImageEnView1.IEBitmap.GetIEVisionImage().goodFeaturesToTrack( 648, 0.01, 69 );
... add the image corners to pts
tris := IEVisionLib().createMath().delaunayTriangulation( pts ); // 27 points -> 48 triangles
mesh := IEVisionLib().createVectorObjRef();
for i := 0 to tris.size() div 3 - 1 do
begin
tri := IEVisionLib().createVectorPoint();
for j := 0 to 2 do
begin
pt := pts.getPoint( tris.getInt32( i * 3 + j ));
tri.push_back( IEVisionPoint( Round( pt.x ), Round( pt.y )));
end;
mesh.push_back( tri );
end;
IEVisionLib().createDrawing().drawContours( ImageEnView1.IEBitmap.GetIEVisionImage(), mesh, IEVisionScalar( 255, 0, 255 ), -1, 1, 8 );
ImageEnView1.Update();
