Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Вопрос по векторному редактору   Найти похожие ветки 

 
niva   (2003-11-15 09:40) [0]

Пишется векторный редактор. Создаются векторные примитивы такие как линия, прямоугольник, эллипс, дуга. Нужно реализовать поворот для них. Для линии и прямоугольника вроде все просто. Поворачиваем каждую точку и выводим линию тем же методом что и неповернутую то есть LineTo и MoveTo, а прямоугольник методом Polygon. А вот как быть с дугой и эллипсом? Ведь если рисовать их когда они не повернуты то все просто делается методами канвы Arc и Ellipse. После поворота это не пройдет. Под NT есть функция SetWorldTransform но программу нужно будет использовать и под 95-ыми. Может кто сталкивался с подобным? Спасибо.


 
MBo ©   (2003-11-15 13:40) [1]

эллипсы и дуги рисуются в недрах Windows как кривые Безье - эллипс - 4 таких кривых, дуги - в зависимости от углового размера. Поэтому можно самому аппроксимировать дуги и эллипсы кривыми Безье, и проводить аффинное преобразование поворота над их контрольными точками.


 
LastLamer ©   (2003-11-16 04:15) [2]

У меня похожие трудности были :Р Здесь все зависит от того как представлены примитивы - по контрольным точкам либо коэффициентами уравнений. Вообще если поворот будет только относительно центра объекта, то проблем особых нет, а если относительно любой - после поворота координаты контрольных точек примитива должны пересчитываются. Дугу окружности можно хранмть по 3-м точкам, кривую безъе по 4-м (как минимум), а при выводе пересчитывать для передачи в функции канвы.


 
dgr   (2003-11-22 13:41) [3]

А как сделать ту же Line? чтобы ее можно было выделить мышкой на экране? Т.е., чтобы мой визуальный объект TmyLine отловил событие OnClick


 
Fenik ©   (2003-11-22 16:08) [4]

По координатам. Зная координаты начала и конца линии, можно узнать принадлежит ли точка клика этой линие или нет. Все просто.



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.065 c
1-1078689740
Митяй2
2004-03-07 23:02
2004.03.28
Приложение должно быть не только практичным, но и...


6-1073738740
yorik
2004-01-10 15:45
2004.03.28
ICQ Pager


1-1078822095
3asys
2004-03-09 11:48
2004.03.28
Создание компонента по имеющемуся имени класса


1-1078944197
Mishenka
2004-03-10 21:43
2004.03.28
Курсор мыши в StringGrid???


1-1079030891
Rim
2004-03-11 21:48
2004.03.28
Массив