How to draw filled polygons in RChart? |
How can I draw filled polygons in RChart? I need to draw polygons in the coordinate system of the chart which can be zoomed an panned.
Answer:
Primarily, RChart does not offer any polygons as drawing elements. However, you can use the event OnDataRendered to draw any number and complexity of polygons in an RChart. Following is a simple code snippet (the full program for Delphi 6 can be downloaded from here):
const
maxP = 10;
RealPG : array[1..MaxP, 1..2] of double = ((3,3), (4,3), (5,5), (6,2), (5,1),
(4,-2), (-2,-4), (-2,-1), (-1,2), (0,1));
..
..
..
(******************************************************************************)
procedure TForm1.RChart1DataRendered(Sender: TObject; var Canvas: TCanvas;
Top, Left: Integer);
(******************************************************************************)
var
Polygon : array[1..MaxP] of TPoint;
i : integer;
x,y : integer;
begin
for i:=1 to MaxP do
begin
RChart1.R2M(RealPG[i,1],RealPG[i,2], x, y);
Polygon[i].x := x-Left;
Polygon[i].y := y-Top;
end;
Canvas.Brush.Color := clYellow;
Canvas.Pen.Color := clBlack;
canvas.Polygon (Polygon);
end;