Основы художественного конструирования

Уроки в системе "Вектор"


Урок. 5. Перспектива и перспективные преобразования

Задача. Формализовать на языке VBS  перспективные преобразования, с тем чтобы:
1) эту формализацию можно было спользовать на уровне базовых МК,
2) определить, какие приемы  можно реализовать через меню системы.

Введение. В системе "Вектор" есть возможность построения перспективного моделирования вида всей сцены так, как это происходит в реальности. Автоматически (с указанием галочки в состоянии "Вид - Система Координат" и регулированием расстояния до экрана и сдвигом вперед/назад всей сцены) получаются фронтальные, горизонтальные, фронтальные и аксонометрические перспективные проекции (см. рисунки ниже).

 
Рис. 1. Примеры построения перспективных проекций в систем "Арт-Вектор"

Художник чаще руководствуется  не общим перспективным видом, а тем эффектом, которые возникает от  перспективных сокращений. При этом сцену он выстраивает по-своему: для одних предметов центр перспективы находится в одной месте, для других - в другом; для одних - это прямая перспектива, для других - обратная; для одних явно выраженная, для других - менее выраженная. Такой подход для плоских изображений реализован в CorelDraw. Для пространственных объектов задача решается на приемах начертательной геометрии: пересечения прямой с плоскостью, двух плоскостей, трех плоскостей.
Ракурсные (перспективные) преобразование объекта к одной, двум, трем точкам схода, лежащих соответственное на координатных осях мировой системы координат, реализованы в системе "Арт-Вектор" для тел: параллелепипед, пирамида, 8-ми угольник и для объктов, состоящих из полилиний.

 
На рис. слева, вверху параллелепипед преобразован к двум точкам схода. Справа комната ориентирована к трем точкам схода. Стены у комнаты заданы параллелепипедами.
  
Возможен экспорт  ракурсных объектов, заданных полилиниями,  в CorelDraw и дальнейшее их там оформление. Например выполнение домашних заданий № 2 и 3.
 
 
Рис. 2. Примеры построения перспективных проекций к двум точкам схода


Одна из композиции в системе "Арт-Вектор" - это разброс фигур/группы к точке схода. В диалоге в панели управления  задаются следующие параметры:
- Точка схода (три ее координаты), (по умочанию находится в центре экрана)
- По х шаг ____2___  число раз  ___5___
- По y шаг ____10___  число раз  ___2___
- По z в глубь   число раз  _____5____
- Перспективный масштаб  _____0.777___

Перспективный разброс возможен к любому объекту и группе
 

 Внизу дана МК в которой показано, как это сделано программно.



В панели "Преобразование сцены" есть возможность в динамике выполнять наплыв сцены. В меню нужно во первых установить галочку, что у вас перспективная проекция, а затем правой кнопкой мыши щелкнуть по полю со словами "Начало МСК" или "Центр МСК", где установить скорость - 50 см/сек, и затем,  опять активизировав центр (щелкнуть по полю "Центр МСК" - после чего появятся оси), нажимая на Ctrl или SHift будем производить наплыв или откат композиции. Кроме галочки у "Перспективной проекции", должна быть включена и "Автоотрисовка".


МК Перспективный разброс фигур к точке схода
' фигура/группа перед МК задается или импортируется
MoveToGroup 0, 1, "group" ' group - имя группы
n77 = LastNmb
Set A = p(0,0,-10)  ' точка схода
Set p1 = p(-7,-5,0) ' исходное положение точки (фигуры)
Set p11 = p(-7,-5,0)'
Ms=0.777  ' перспективный масштаб
nz=5 ' число раз вглубь

sx=4 ' шаг по x
nx=5 ' число раз по x

sy=10 ' шаг по y
ny=2' число раз по y
M=1
For ki = 1 To ny Step 1
      t=0
 M=1
 For v = 1 To nx Step 1
 t=0
 M=1
       For i = 1 To nz Step 1
           CurrObjNmb = n77
   dubl
   Set K = PointOtr(p1, A, t)
   obj.scale= M
        obj.origin(0) =  K.x
        obj.origin(1) =  K.y
        obj.origin(2) =  K.z
   obj.SetH
   t=t+Ms*(1-t)/(nz-1)
   M=M*Ms ' масштабирование
  Next
 p1.x=p1.x+sx
 Next
P1.x=p11.x
p1.y=p1.y+sy
Next
n2 = LastNmb+1 ' по какой отр. помещать в группу
MoveToGroup 1, n2, "group" ' group - имя группы