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

5

我是一个图形学新手,正在使用HTML5 Canvas、JavaScript和一些形状和图像进行实验。

如果我有一个在点C.x,C.y,C.z处的相机,以及一个在点P.x,P.y,P.z处的点,那么将该点转换为2D点的最简单方法是什么,以便我可以在该点处渲染一张图像,并使用正确的缩放使得我的透视是正确的?我需要方程式,而不是库。

谢谢!


一个相机和一个点是不够的,你还需要一个相机的方向(例如一个方向向量或者一个要看的点)。即使在这种情况下,仍然有一些开放参数,比如FOV。 - schnaader
1个回答

3

@eznme - 太好了,谢谢。我想使用JavaScript需要使用方程式。dx=cos0y.(sin0z...实际上是指dx=cos0y*(sin0z...吗?也就是说,点号表示乘法吗? - Journeyman
@John Norris:是的,通常的乘法(不是向量/标量/点积/叉积)。在他们写“b_x =...”的地方,他们省略了点,在下面的段落“Diagram”中,“x”也表示普通乘法。我可以看出这种不一致会让人困惑(对我来说确实如此)。 - Bernd Elkemann
@John Norris:哇,已经搞定了吗?速度非常快,令人印象深刻。 - Bernd Elkemann
@eznme - 嗯,全靠你指引我正确的方程式!再加上一个带有xyz和mousemove事件的简单对象数组,这个 poc 看起来很不错。再次感谢。 - Journeyman
@John Norris:这张图片只是单个顶点发生的可视化效果,要编写程序,您可以通过将模型视图矩阵乘以顶点投影矩阵之前对模型进行平移和缩放来实现。 - Bernd Elkemann
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接