Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как нарисовать дугу? [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 точки, либо еще какой-то параметр эллипса, например, эксцентриситет или (что проще) отношение большой и малой полуосей


Наверх

Титульная страница Поиск, карта сайта Написать письмо