История изменений
Исправление Norgat, (текущая версия) :
Т.е я так понимаю, центр системы координат лучше располагать в центре окна(виртуального) и от него вести все отсчёты и измерения?
Да, примерно так. Центр координат мировой системы ты фиксируешь и относительно него у тебя производятся все действия со сценой (набором линий и плоскостей). Это позволит довольно просто реализовать сохранение и загрузку сцен из файлов.
Второе, для отображение используется идея Viewport'а (http://ru.wikipedia.org/wiki/Порт_просмотра). Т.е. у тебя есть точка, в мировой системе координат в которой у тебя находится экран и через которую у тебя пользователь будет смотреть на сцену. Центр viewport'а - это центр экрана отображения (там добавится ещё небольшое смещение, но это уже детали реализации).
В результате, можно свести зум к отдалению точки viewport'а, скроллинг к сдвигу viewport'а. Это довольно просто и в бытность студентами такие вещи писали за пару дней. Намного сложнее решить задачи сортировки отображаемых объектов (если не делать, то могут возникать артефакты на картинке) и отсечение невидимых линий(если не делать, то даст просадку по производительности на большой сцене).
P.S. советую найти какой-нибудь курс компьютерной графики на интуите и пройтись по нему. Многие моменты должны проясниться.
Исходная версия Norgat, :
Т.е я так понимаю, центр системы координат лучше располагать в центре окна(виртуального) и от него вести все отсчёты и измерения?
Да, примерно так. Центр координат мировой системы ты фиксируешь и относительно него у тебя производятся все действия со сценой (набором линий и плоскостей). Это позволит довольно просто реализовать сохранение и загрузку сцен из файлов.
Второе, для отображение используется идея Viewport'а (http://ru.wikipedia.org/wiki/Порт_просмотра). Т.е. у тебя есть точка, в мировой системе координат в которой у тебя находится экран и через которую у тебя пользователь будет смотреть на сцену. Центр viewport'а - это центр экрана отображения (там добавится ещё небольшое смещение, но это уже детали реализации).
В результате, можно свести зум к отдалению точки viewport'а, скроллинг к сдвигу viewport'а. Это довольно просто и в бытность студентами такие вещи писали за пару дней. Намного сложнее решить задачи сортировки отображаемых объектов (если не делать, то могут возникать артефакты на картинке) и отсечение невидимых линий(если не делать, то даст просадку по производительности на большой сцене).