logo search
Otvety_KG

14)Связь преобразований объектов с преобразованиями координат:

Когда пользователь графической системы видит на экране перемещающийся

объект, то, как вы считаете, что на самом деле происходит — перемещаются

объекты или система координат в обратном направлении? Например, если в кино вы видите объекты, вращающиеся на экране по часовой стрелке, то может в ействительности это камера поворачивается против часовой стрелки?

Преобразование объектов и преобразование систем координат тесно связаны между собой. Движение объектов можно рассматривать как движение в обратном направлении соответствующей системы координат.

Такая относительность для объектов отображения и систем координат дает разработчикам компьютерных систем дополнительные возможности для мо­делирования и визуализации пространственных объектов. С каждым объек­том можно связывать как собственную локальную систему координат, так и единую для нескольких объектов. Это можно использовать, например, для моделирования подвижных объектов.

Обычно, того же самого эффекта можно добиться, если использовать различ­ные подходы. Однако в одних случаях удобнее использовать преобразование координат, а в других — преобразование объектов. Не последнюю роль иг­рает сложность обоснования какого-то способа, его понятность.

Рассмотрим пример комбинированного подхода. Пусть нам нужно получить i функцию расчета координат (X, Y) для поворота вокруг центра с координата­ми (х0,у0) (рис. 2.13).

Выше мы рассмотрели поворот относительно центра координат (0, 0). Для I решения нашей задачи введем новую систему координат (х',0',уг) с центром в точке (х0, уо):

Рассмотрим второй пример. Нашей задачей будет вывод формул параметри­ческого описания поверхности тора. Изобразим тор следующим образом (рис. 2.14).

Для произвольной точки Р, лежащей на поверхности тора, требуется выра­зить координаты (х, у, z) через константы, описывающие размеры фигуры, а также через некоторые параметры. Для поверхности в трехмерном простран­стве необходимо использовать два параметра. В качестве таковых выберем угловые величины: φ (широта) и ω (долгота).

Непосредственное определение координат точки Р представляется сложным, поэтому искомые координаты будем искать несколькими шагами преобразо­ваний. Рассмотрим окружность, лежащую в плоскости z0y, центр этой ок­ружности совпадает с центром координат. Координаты точки Р" с широтой φ составляют

где r— малый радиус тора.

Теперь перенесем окружность на расстояние R (большой радиус тора) по оси у в той же плоскости z0y. Получим точку Р Ее координаты:

Окружность, которой принадлежит точка Р', является геометрическим ме­стом точек тора с нулевой долготой и). Если точку Р' повернуть на угол а), то получим искомую точку Р поверхности тора с координатами

Эту задачу можно было бы решить, используя преобразование координат. Подобный случай мы рассмотрим ниже (пример studex8 в разделе програм­мирования). Однако, как представляется, более ясным здесь выглядит ис­пользование операций перемещения точки (из положения Р" в Р', а за­тем в Р).