Форум: "Media";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизВопрос по векторному редактору Найти похожие ветки
← →
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 вся ветка
Форум: "Media";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c