Пожалуйста
| Код | var R:integer=255; alfa:integer=0; betta:integer=0; bmp1:TBitmap; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var ap: array [1..3] of TPoint; r: hRGN;
begin Image2.Canvas.Brush.Color := ClWhite; Image2.Canvas.FillRect(Canvas.ClipRect);
R:=255;//Длина катетов треугольника alfa:=0;//Угол поворота треугольника betta:=30;//угол между катетами
//задаем координаты углов ap [1] := Point (0, 0); ap [2] := Point (round(R*cos(alfa*pi/180)), round(R*sin(alfa*pi/180))); ap [3] := Point (round(R*cos((alfa+betta)*pi/180)), round(R*sin((alfa+betta)*pi/180)));
//создаем вспомогательный Bitmap bmp1:=TBitmap.Create; bmp1.Width := Image1.Width; bmp1.Height := Image1.Height; bmp1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Height),Image1.Picture.Bitmap.Canvas,Bounds(0, 0, Image1.Width, Height));
//создаем полигон треугольной формы r:=CreatePolygonRgn(ap, 3, WINDING); //копируем картинку внутри треугольника SelectClipRgn(Image2.Canvas.handle, r); Image2.Canvas.Draw(0, 0, Image1.Picture.Bitmap); DeleteObject(r);
Image2.canvas.Draw(0, 0, bmp1); end;
|
|