点检查与方程式光线投射效率

时间:2018-04-18 23:59:02

标签: optimization raycasting

我有一个项目,我需要检测2D生物正在看的其他生物(如果有的话)。我已经实施了一个四叉树来协助这些方法。我有两个建议的方法:

  1. 点检查通过检查一条线上的几个点与少量生物。无论它首先找到的是
  2. 通过求解mx + b = sqrt(r ^ 2-(x-x1)^ 2)+ y1,通过检查某个范围内的任何生物是否与一条线相交而得到的等式。但为了这个工作,我必须:
    • 将视图转换为行
    • 获得四根并检查b ^ 2-4ac> = 0
    • 确保其他已见生物不在视图生物后面
    • 检查此后的生物组,以查看最接近的生物
    • 返回
  3. 我的最终问题是:考虑到所有因素以及为什么最终效果最好?

    注意:

    这个项目特别是Java,但我很好奇语言是否重要。 结果应该是每条射线,并用作神经网络的输入。

1 个答案:

答案 0 :(得分:1)

第二种方法可以转换为 quadtree-ray 交集查询。可以在here找到一个相当不错的JavaScript实现。对于光线相交的每个节点,执行前面概述的相同距离查询,并在找到第一个生物时立即返回。