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

       

Код


on inOut(pA, pB, pC, testVector)

global scene 

 -- определяем вектора между pC - pA
 -- и pB - pA.
 vectorA = pC - pA
 vectorB = pB - pA

 -- найдем разницу векторов, которую присвоим
 -- нормали плоскости
 myNormal = vectorA.cross (vectorB) 

 -- нормализуем результат
 myNormal.normalize () 

 -- определим вектор между testVector и любой
 -- точкой плоскости. В этом случае я выбрал 
 -- pA, так как мы знае что она на плоскости
 dVector = testVector - pA
 -- нормализуем dVector
 dvector.normalize ()

 -- найдем скалярное произведение нормали и dVector'a.
 -- так как эти два вектора были нормализованы
 -- результатом будет косинус угла между этими векторами
 testresult = mynormal.dot (dvector) 

 -- проверим находится ли точка на плоскости, 
 -- снизу или сверху плоскости.
 if testresult = 0 then
   return #onPlane
 else if testresult > 0 then
   return #inside
 else if testresult < 0 then
   return #outside
 end if

end 



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