75 уроков по Photoshop на русском языке


Director : Векторная математика это не козни дьявола

.program { FONT-SIZE: 10pt; FONT-FAMILY: Courier New }

Автор Paul Catanese

Итак, вы уже программируете 3D в Director с пару месяцев и все идет сравнительно неплохо. Но Вас точит червячок сомнения: для чего, черт возьми, вы пользуетесь функциями dot product (скалярное произведение) и cross product (векторное произведение)? Вы уже прочитали статьи из файла помощи с дюжину раз и можете в два часа ночи цитировать спросонку "скалярное произведение возвращает косинус угла между двумя нормализованными векторами" по типу некоей мантры; но при этом Вы по-прежнему чувствуете, что далеки от понимания.

В этой статье я собираюсь показать Вам методику, которая покажет пользу от процессов применения векторов, нормалей, нормализации, скалярного произведения, векторного произведения и вычитания векторов. В частности, я покажу Вам пользовательскую функцию, написанную с целью определения положения заданной в 3D точки относительно плоскости - на ней, перед ней или за ней. Давайте начнем с рассмотрения этой методики в действии на примере следующего клипа Shockwave: 

В этом примере вы можете пользоваться своей мышью как для таскания коробки по 3D пространству, так и для вращения плоскости во всех направлениях. Просто щелкните и потяните для ощущения интерфейса. Рассматривая плоскость вблизи, можно заметить несколько примитивов, которые я прицепил к плоскости: зеленый конус, который представляет собой стрелку направления нормали к плоскости и три красных сферы, представляющих собой три точки на поверхности плоскости. Когда коробка находится со стороны плоскости, где конус смотрит вперед, коробка окрашивается в синий цвет, когда в противоположном полупространстве - коробка имеет желтый цвет.

В следующем примере, несмотря на небольшие размеры плоскости, я применил ее для представления бесконечно широкой плоскости, которая делит 3D пространство на две раздельные области, или на полупространства. Зачастую такие полупространства поименованы как "внутри" и "снаружи". По этой причине, рассматриваемая нами методика часто именуется как inside/outside тестер. Это исключительно сильный инструмент, которым располагает приложение, для оптимизации производительности и автономного контроля объектов во многих других областях 3D программирования.



Содержание раздела