了解光线投射方法

时间:2016-12-23 14:05:57

标签: c trigonometry raycasting

为了我的学校,我正在学习如何用C语言进行光线投射。

基于这个教程,我找到了 http://permadi.com/1996/05/ray-casting-tutorial-7/,作者解释了他找到deltaX和deltaY的方法,以便在基于deltaX或deltaY的位置存在墙时进行检查。

然而,他通过角度α的正切获得deltaX和deltaY,并且它不能用于0,pi / 2,pi和3pi / 2。

如何使用此类解决方案?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

在0和pi处,由于光线是水平的,所以没有必要搜索水平交点。您需要明确检查该案例。

在pi / 2和3pi / 2时,切线是无穷大的,所以1 / tan()应该给你带浮点数学的零。它即使看起来很丑也会奏效。

对于垂直交叉点,将角度移动pi / 2并应用相同的推理。