Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.07.2008, 22:40
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
Вопрос "Растягивание" координат

Всем доброго (утра, дня, вечера, ночи)!
Столкнулся со следующим вопросом: в программе использую файл *.dxf (открытый стандарт автокада), в файле заданы координаты примитивов из которых состоит чертеж, в процессе работы необходимо показать пользователю этот чертеж, для вывода использую OpenGL (в дальнейшем предполагается вывод 3D объектов, на данном этапе все двухмерное). Координаты примитивов, в большинстве, имеют положительный знак и соответственно выводятся в первый квадрант системы координат OpenGL (который от 0 до +1 по осям), вопрос: как можно вывести чертеж на всю систему координат, грубо говоря, "растянуть" из первого квадранта на всю остальную область рисования, желательно кусок кода - преобразования координат. Заранее спасибо за любую помощь.

Для большей понятливости объяснений, добавляю картинку:
Ответить с цитированием
  #2  
Старый 17.07.2008, 00:31
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Обычное линейное преобразование поможет (в народе: аффинное преобразование):
Для вашего случая (с осями от 0 до 1) так:
X = 2x - 1
Y = 2y - 1
X и Y - новые координаты точки; x и y - текущие.
Это преобразование надо применить ко всем координатам, которые задают примитив.
Преобразования растягивают примитивы и сдвигают.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #3  
Старый 17.07.2008, 09:11
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Да, слона то я и не приметил
san-46, спасибо вам большое за подсказку, буду применять.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter