ImageEn, unit imageenview |
|
TImageEnView.AddSelCurve
Declaration
procedure AddSelCurve(EndX, EndY: Integer; RadiusMult: Double; PtCount: Integer = 50);
Description
Adds a series of points to form a curved selection from the
previous selection point to EndX, EndY.
RadiusMult is a multiplier to increase or decrease the radius of the curve. 1: Creates a curve of an exact half circle. >1 creates a shallower curve. <1 creates a bulging curve. Pass as negative to make sweep clockwise
If
SelectionBase is
iesbClientArea (default), all coordinates depend upon actual zoom and scrolling.
Otherwise, if
SelectionBase is
iesbBitmap all coordinates refer to bitmap pixels.
Use
EndSelect to terminate selection by code.
// Create a wavy lined selection
const
WAVE_HEIGHT = 0.4; // Wave selection is 40% height of image
CURVE_COUNT = 6; // Number of up and down curves
CURVE_MULT = 2.4; // How curved is the line? 1=half circle
var
waveHt, i: Integer;
waveWidth, curve, endX: Double;
begin
ImageEnView1.Deselect();
ImageEnView1.SelectionBase := iesbBitmap;
waveHt := Round( ImageEnView1.IEBitmap.Height * WAVE_HEIGHT );
waveWidth := ImageEnView1.IEBitmap.Width / CURVE_COUNT;
ImageEnView1.AddSelPoint( 0, 0 );
ImageEnView1.AddSelPoint( 0, waveHt );
curve := CURVE_MULT;
endX := 0;
for i := 1 to CURVE_COUNT do
begin
endX := endX + waveWidth;
ImageEnView1.AddSelCurve( Round( endX ), waveHt, curve );
curve := -1 * curve; // reverse direction of curve
end;
ImageEnView1.AddSelPoint( ImageEnView1.IEBitmap.Width, 0 );
ImageEnView1.EndSelect();
end;
See Also
◼AddSelBreak◼AddSelPoint◼DelLastSelPoint◼EndSelect◼PolySel◼PolySelPoints