Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS光线跟踪器对象无限长_Javascript_Raytracing_Renderer - Fatal编程技术网

Javascript JS光线跟踪器对象无限长

Javascript JS光线跟踪器对象无限长,javascript,raytracing,renderer,Javascript,Raytracing,Renderer,我在JS中编写了一个非常原始的光线跟踪器,它通过从每个像素中拍摄一条光线并检查它是否与立方体相交来只渲染一个立方体。如果它相交,则该像素设置为白色,如果不相交,则设置为黑色 但是,对象从正确的位置开始,但尺寸不正确。最好用图片来解释这一点: 我已经发布了代码,但是如果您运行它,它将需要很长时间,如果您想加快它的运行速度,然后减少 function main_v 我认为问题在于光线相交测试(intersect_b函数),但我一直无法找到问题所在。交叉口功能直接改编自一个问题是: 功能c2p\u

我在JS中编写了一个非常原始的光线跟踪器,它通过从每个像素中拍摄一条光线并检查它是否与立方体相交来只渲染一个立方体。如果它相交,则该像素设置为白色,如果不相交,则设置为黑色

但是,对象从正确的位置开始,但尺寸不正确。最好用图片来解释这一点:

我已经发布了代码,但是如果您运行它,它将需要很长时间,如果您想加快它的运行速度,然后减少

function main_v
我认为问题在于光线相交测试(intersect_b函数),但我一直无法找到问题所在。交叉口功能直接改编自

一个问题是:

功能c2p\u p(r){
返回r.type==vType.Cartesian{
r:Math.sqrt(r.x^2+r.y^2+r.z^2),
theta:Math.acos(r.z/Math.sqrt(r.x^2+r.y^2+r.z^2)),
φ:数学常数2(r.y/r.x),
类型:vType.Polar
}:r
}

在JavaScript中,
^
运算符是按位异或,而不是幂运算。只需写
r.x*r.x+r.y*r.y+r.z*r.z

仅供参考,当我单击按钮时,您的小提琴给出了
未捕获的参考错误:未定义main\u v