У меня есть этот код для пересечения плоского луча: http://pastebin.com/2VuPeZ5r Думаю, я правильно вычислил t , но мне нужно вернуть null, если пересечения нет. Как мне это проверить?
Спасибо
У меня есть этот код для пересечения плоского луча: http://pastebin.com/2VuPeZ5r Думаю, я правильно вычислил t , но мне нужно вернуть null, если пересечения нет. Как мне это проверить?
Спасибо
Что вы имеете в виду под "без пересечения"? Любой луч где-то пересекает плоскость, за исключением вырожденного случая, когда луч точно перпендикулярен нормали к плоскости. Чтобы обнаружить этот случай, проверьте наличие Vector3.Dot(Norm, ray.Dir) == 0
.
Если вы хотите узнать, находится ли пересечение перед началом луча или позади него, проверьте t > 0
.
t
движутся в направлении ray.Dir
; отрицательные значения t
удаляются от ray.Dir
.
- person Tavian Barnes; 20.11.2012