Intrinsic-127 Polyline

Top  Previous  Next

127: PolyLineHandle, Mode, @Points, Count);

 

This draws a series of lines on an image passing through all the points in the specified array.

 

Handle. Handle specifies the bitmap or the simulated screen.

 

Mode. Mode specifies how the lines are drawn:

 

Mode = 0: The intrinsic draws a closed polygon by drawing a line between each point in the Points array. To close the polygon, it also draws a line from the last point to the first point. You can specify that the polygon will be filled using the SetFill intrinsic.

 

Mode = 1: The intrinsic draws a line between each point in the Points array. No line is drawn between the last and first point in the array.

 

Mode = 2: Draws a Bezier Curve using the end points and control points specified by the Points parameter. The first curve is drawn from the first point to the fourth point using the second and third points as control points. Each subsequent curve in the sequence needs exactly three more points. The ending point of the previous curve is used as the starting point, the next two points in the sequence are control points, and the third point is the ending point.

 

Points. The points are specified by a one-dimensional integer array specified by the Points parameter. The X and Y values for each point are contained in pairs  of integers, such that Points(0) contains the first X value and Points(1) contains the first Y value. The number of points is specified by the Count value. The Count value should be the number of integers in the array divided by two.

 

Note: The pen position is not updated by this PolyLine routine.

 

(If you are working with the Console (handle=-1), controlling Screen Refresh can speed up this intrinsic. See the Console Refresh section for more information.)

 

Example: This routine draws pentagon whose interior is colored red and border is colored white:

 

int Points;

 

 

begin

Points:=[113, 283, 70, 156, 180, 70, 290, 156, 250, 283];

SetPen(-1,0,1,0,255,255,255);

SetFill(-1,2,255,0,0);

Polyline(-1,0,@Points(0),5);

end;