给出三个点(Javascript)创建两个平行平面

时间:2017-01-23 04:39:27

标签: javascript math 3d raycasting

我试图创建一个高级raycaster。我如何编写一个基于3分创建两个grids (image here)的函数?我希望输出是两个数组,填充图像中显示的每个交集的{x:0,y:0,z:0}对象。希望这并不难理解。我想要的原因是我可以从屏幕上的每个像素投射光线。

1 个答案:

答案 0 :(得分:0)

设矢量c = CB,矢量a = AB。您可以将平面的第二个基矢量作为

d = c X a  (cross product)

获取单位基础向量

ua = Normalized(a) = a / Length(a)
ud = Normalized(d) 

并构建网格(单元格大小为ASize x DSize)指向

P[i,j] = B + ua * i * ASize + ud * j * DSize
   for the first plane

Q[i,j] = C + ua * i * ASize + ud * j * DSize
   for the second plane