|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
"Растягивание" координат
Всем доброго (утра, дня, вечера, ночи)!
Столкнулся со следующим вопросом: в программе использую файл *.dxf (открытый стандарт автокада), в файле заданы координаты примитивов из которых состоит чертеж, в процессе работы необходимо показать пользователю этот чертеж, для вывода использую OpenGL (в дальнейшем предполагается вывод 3D объектов, на данном этапе все двухмерное). Координаты примитивов, в большинстве, имеют положительный знак и соответственно выводятся в первый квадрант системы координат OpenGL (который от 0 до +1 по осям), вопрос: как можно вывести чертеж на всю систему координат, грубо говоря, "растянуть" из первого квадранта на всю остальную область рисования, желательно кусок кода - преобразования координат. Заранее спасибо за любую помощь. Для большей понятливости объяснений, добавляю картинку: |
#2
|
|||
|
|||
Обычное линейное преобразование поможет (в народе: аффинное преобразование):
Для вашего случая (с осями от 0 до 1) так: X = 2x - 1 Y = 2y - 1 X и Y - новые координаты точки; x и y - текущие. Это преобразование надо применить ко всем координатам, которые задают примитив. Преобразования растягивают примитивы и сдвигают. Не забывайте делать резервные копии |
#3
|
||||
|
||||
Да, слона то я и не приметил
san-46, спасибо вам большое за подсказку, буду применять. |