Есть ли у кого-нибудь код для рисования гладкого пирога на холсте в Delphi?Delphi рисует гладкий пирог
Все, что я мог найти в Интернете, - это примеры гладких линий, но это не очень помогает мне ... Также я рассмотрел Gr32, но для чего мне нужно, это добавляет довольно большой размер для моего приложения. мне просто нужно нарисовать заполненный пирог на холсте, который не выглядит так ужасно, как это делает с я использую Delphi XE, поэтому не FireMonkey по умолчанию
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
...
пирог слева получается следующая вашей рекомендации @johan, используя следующий код:
procedure TForm1.Button4Click(Sender: TObject);
var
Center:TPoint;
Radius:integer;
Bmp: TBitmap;
MF: TMetaFile;
MetafileCanvas: TMetafileCanvas;
begin
MF := TMetaFile.Create;
MF.Width := 150;
MF.Height := 150;
MetafileCanvas := TMetafileCanvas.Create(MF, 0);
MetafileCanvas.Pen.Color := clRed;
MetafileCanvas.Brush.Color := clRed;
MetafileCanvas.Brush.Style := bsSolid;
MetafileCanvas.Pie(0,0,150, 150, 150,50, 150,50);
MetafileCanvas.Free;
Bmp := Gdip.DrawAntiAliased(MF);
Image2.Picture.Assign(Bmp);
Bmp.Free;
MF.Free;
end;
Благодаря
К сожалению, это не то, что мне было нужно. Пирог, нарисованный на холсте, квадратный ... не гладкий. Мне нужна функция рисования, которая будет иметь гладкие края. Пожалуйста, ознакомьтесь с изображением, которое я добавил к вопросу – user1137313
То, что вы называете гладким, остальной мир называет сглаженным. Именно это и дает мой ответ. .Net делает это, используя GDI +, что, опять же, является тем, что обеспечивает связанный код в ответе. – Johan
Хорошо, тогда почему изображение выше показывает пирог, нарисованный вашим кодом, который не сглаживается? Кажется, что сглаженный рисунок сделан ПОСЛЕ того, как вырисовывается пирог ... Я просто изменил стиль Brush на твердый в вашем коде и изменил размер, а пирог похож на тот, что находится слева (на изображении выше), когда он должен выглядеть так, как в правом – user1137313