![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать дугу? [D5, WinME]
Shaman2002 © (2002-11-05 18:41:00)Люди подскажите как нарисовать дугу по трем точкам в PaintBox.
Точнее говоря полэлипса под углом к оси ОХ. Известны координаты трех вершин.
Буду очень признателен за помощь.
ZEE (2002-11-06 09:13:00) [1]На счет "полэлипса" - не знаю, но вообще кривые (по трем точкам) я рисую так:
var aPts:array[0..4]of TPoint;
...
aPts[0]:=Point(x1,y1);
aPts[1]:=Point(x1,y1);
aPts[2]:=Point(x2,y2);
aPts[3]:=Point(x3,y3);
aPts[4]:=Point(x3,y3);
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.FillRect(Rect(0,0,0,0));
// сам не знаю как эта штука влияет на прорисовку,
// но почему-то без нее не работает
Image1.Canvas.Brush.Style:=bsClear;
PolyBezier(Image1.Canvas.Handle,aPts,4);
...
Может конечно не совсем правильно, но кто умеет лучше - пусть кинет в меня правильным кодом :)
MBo (2002-11-06 06:25:00) [2]Дугу окружности по трем точкам нарисовать можно, а вот для эллипса трех точек недостаточно - нужно либо 4 точки, либо еще какой-то параметр эллипса, например, эксцентриситет или (что проще) отношение большой и малой полуосей