Graphics 图形-将三维点转换为二维投影的方程式

Graphics 图形-将三维点转换为二维投影的方程式,graphics,3d,2d,Graphics,3d,2d,我是一名图形新手,但我正在使用HTML5画布、javascript和一些形状和图像。 如果我在点C.x、C.y、C.z和点P.x、P.y、P.z上有一个相机,那么最简单的方法是什么将该点转换为2d点,这样我就可以在该点以正确的比例渲染图像,这样我的透视图就正确了?我要的是方程式,不是图书馆 谢谢 它被称为透视投影,您寻求的公式就是这里的矩阵乘法: 一个相机和一个点是不够的,你还需要一个相机的方向(例如,一个方向向量或一个要观察的点)。即使在这种情况下,仍然有一些打开的参数,如FOV。@eznm

我是一名图形新手,但我正在使用HTML5画布、javascript和一些形状和图像。 如果我在点C.x、C.y、C.z和点P.x、P.y、P.z上有一个相机,那么最简单的方法是什么将该点转换为2d点,这样我就可以在该点以正确的比例渲染图像,这样我的透视图就正确了?我要的是方程式,不是图书馆


谢谢

它被称为透视投影,您寻求的公式就是这里的矩阵乘法:


一个相机和一个点是不够的,你还需要一个相机的方向(例如,一个方向向量或一个要观察的点)。即使在这种情况下,仍然有一些打开的参数,如FOV。@eznme-太好了,谢谢。我假设使用javascript时,我需要使用公式。dx=cos0y(sin0z…实际上是指dx=cos0y*(sin0z…也就是说,点的意思是乘以?@John Norris:是的,正常乘法(在这种情况下不是向量/标量/点/叉积)。他们在写
b_x=…
的地方的正下方省略了点,在“图表”的“x”下面也意味着正常的乘法运算;我可以看出这种不一致性是多么令人困惑(对我来说确实如此)@John Norris:哇,它已经开始工作了?非常快。令人印象深刻。@eznme-好吧,所有这些都是你给我指出的正确的方程!加上一个简单的对象数组和一个鼠标移动事件,poc看起来很好。再次感谢。@eznme-虽然我有一个基本的“世界”在工作,但我想要在它周围导航的能力,我正在努力工作一方面,我不理解相机方向所起的作用。如果我希望我的世界有一个x,y,z“原点”,并且我总是希望我的相机“指向”那个原点,我应该将0x,0y和0z设置为什么?谢谢。