Перейти к содержанию
Fire Monkey от А до Я
  • 0

Странное отображение DrawPath


Geex

Вопрос

Привет, Всем!

 

 

 

Заметил странности отображения ломанных линий с помощью DrawPath. При острых углах ломанной она начинает выходить за координаты точек излома. Как на рисунке:

post-145-0-01705800-1399053313.png

 

Красным цветом построена линия с помощью DrawLine, зеленой с помощью DrawPath по одним и тем же координатам.

procedure TFMain.Button1Click(Sender: TObject);
var
Pa:TPathData;
p1,p2,p3,p4:TPointF;
begin
  p1:=PointF(10,10);
  p2:=PointF(200,20);
  p3:=PointF(10,30);
  p4:=PointF(400,40);

  Pa:=TPathData.Create;
  Pa.MoveTo(p1);
  Pa.LineTo(p2);
  Pa.LineTo(p3);
  Pa.LineTo(p4);

  PaintBox.Bitmap.Canvas.BeginScene;
  PaintBox.Bitmap.Canvas.Stroke.Color:=claGreen;
  PaintBox.Bitmap.Canvas.Stroke.Thickness:=1;//PenWidth;
  PaintBox.Bitmap.Canvas.DrawPath(Pa,1.0);
  PaintBox.Bitmap.Canvas.EndScene;
  Pa.Free;

  PaintBox.Bitmap.Canvas.BeginScene;
  PaintBox.Bitmap.Canvas.Stroke.Color:=claRed;
  PaintBox.Bitmap.Canvas.DrawLine(p1,p2,1.0);
  PaintBox.Bitmap.Canvas.DrawLine(p2,p3,1.0);
  PaintBox.Bitmap.Canvas.DrawLine(p3,p4,1.0);
  PaintBox.Bitmap.Canvas.DrawLine(p1,p2,1.0);
  PaintBox.Bitmap.Canvas.EndScene;
end;

Можно заметить что зеленая линия немножко выходит за красную. Этого можно избежать только если строить линию с разрывами.

Подозреваю что это связано с радиусом загиба кривой, вот только где его убрать?

Можно как-нибудь элегантно сделать чтобы кривая линия строилась точно по координатам с помощью DrawPath?

 

Ссылка на комментарий

Рекомендуемые сообщения

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...