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

       

Использование пользовательских функций


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

Testresult = inOut (pA, pB, pC, testVector)

Само собой разумеется, что каждый из четырех аргументов является вектором и задан в мировых координатах. Первые три вектора представляют точки на плоскости, которая делит 3D пространство, а последний представляет точку, которую мы проверяем на расположение относительно нашей плоскости. Важно понимать, что неприемлемо просто найти три точки на плоскости и затем произвольно назначить их для pA, pB, и pC. Почему? Потому что порядок следования pA, pB, и pC определяет, какая сторона плоскости "внутри", а какая "снаружи". Взгляните на этот рисунок:

На нем я назначил точки pA, pB, и pC так, что они расположены в направлении против часовой стрелки. Когда я вызову inOut и пройдусь по точкам в направлении против часовой стрелки, "внутри" будет там, где вы видите это на диаграмме -- если же поменять наоборот порядок прохождения значений для pA, pB, и pC, то "внутри" будет определено как противоположная сторона плоскости.

Эта пользовательская функция настроена, чтобы возвращать три разных символа : #onPlane, #inside, или #outside в зависимости от положения точки. Скорее всего вы захотите пользоваться возвращаемым этой функцией значением в конструкции case или нескольких операторах case с целью определения дальнейших действий на основании полученной информации.



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