Функции векторного редактора
От: niva  
Дата: 15.11.03 06:33
Оценка:
Пишется векторный редактор. Создаются векторные примитивы такие как линия, прямоугольник, эллипс, дуга. Нужно реализовать поворот для них. Для линии и прямоугольника вроде все просто. Поворачиваем каждую точку и выводим линию тем же методом что и неповернутую то есть LineTo и MoveTo, а прямоугольник методом Polygon. А вот как быть с дугой и эллипсом? Ведь если рисовать их когда они не повернуты то все просто делается методами канвы Arc и Ellipse. После поворота это не пройдет. Под NT есть функция SetWorldTransform но программу нужно будет использовать и под 95-ыми. Может кто сталкивался с подобным? Спасибо.
Re: Функции векторного редактора
От: Ozone Россия  
Дата: 17.11.03 05:45
Оценка:
Здравствуйте, niva, Вы писали:

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


Эллипс и дугу лучше рисовать точками в параметрическом виде, а поворачивать нужно не сам эллипс, а оси координат.
Re: Функции векторного редактора
От: PECTAPT Россия  
Дата: 17.11.03 09:06
Оценка:
Здравствуйте, niva, Вы писали:

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


Для эллипса см. http://codeguru.com/gdi/ellipse.shtml
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.