什么是3D宇宙中的Z?

时间:2012-09-10 22:48:12

标签: java 3d cube

我正在用Java创建一个3D渲染器,目前可以使用点和线渲染立方体的线框并旋转立方体,问题是,Z应该是什么?什么应该设置为Z?我猜这个立方体的大小应该设置为Z?

感谢您的时间!任何答案都将非常感激。

3 个答案:

答案 0 :(得分:5)

Z通常表示当前视口位于x-y平面内时的平面外方向。

您的3D世界有自己的坐标系。渲染时,您将从3D世界坐标转换为视口坐标。

答案 1 :(得分:2)

3D表示3“尺寸”。一维是“X”,另一维是“Y”,第三维是“Z”。没有一个特定的方向,尽管按常规方式分配方向很方便,例如“前进”,“左”和“上”。

X,Y和Z值均等于0的东西位于原点或空间的中心。您可以将其写为(0,0,0),其中参数的顺序为(x,y,z)。

位置(1,0,0)处的点或顶点是距离原点X方向的一个单位。因此,如果你从(0,0,0)移动到(1,0,0),你将完全在X方向上移动。

(0,1,0)是远离原点的Y方向上的一个单位。

(0,0,1)是Z方向远离原点的一个单位。

(1,1,0)是X方向上的一个单位和Y方向上的一个单位。因此,如果X表示“前进”,而Y表示“左”,则(1,1,0)表示原点的前后左侧。

因此,基本立方体可以由以下顶点定义:

(1,1,-1)
(1,-1,-1)
(-1,1,-1)
(-1,-1,-1)
(1,1,1)
(1,-1,1)
(-1,1,1)
(-1,-1,1)

答案 2 :(得分:2)

我想你可能会错过一些基本的学校数学/几何学。然而,实际上并不难理解。

想象一下平面,例如一张纸。

  • 第一个坐标轴将从左向右直行,我们将其称为X.因此X = 0表示您的点位于左边界。 X = 10可能意味着你的点位于右边界(实际上取决于你定义单位为1的大小;这可能是厘米,英寸等)。这已经足以描述一个维度中的某个点(从左到右)。

  • 现在,我们需要第二个轴。我们称之为Y.它从顶部边界(Y = 0)到底部(Y = 10)运行。现在你可以描述飞机上的任何一点,因为你有两个位置。例如,(0,0)将是左上角。 (10,10)将是右下角。 (5,0)将是顶部边界的中心点等。

  • 如果我们添加另一个维度会怎样?称之为Z.这将基本上是您在工作表上方的点的高度。例如,Z = 0可能意味着您的点位于画家的表格上,而Z = 10表示您的点位于纸张上方10厘米处。现在使用三个坐标来描述一个点:(5,5,0)是纸张的中心。 (5,5,5)是立方体的中心,位于纸上,填充高度为10厘米。

在3D编程时,您可以使用相同的术语。唯一真正的区别是,您正在使用所谓的投影/视图矩阵来确定如何在屏幕上显示此3D位置。最简单的转换可以是以下矩阵:

1 0 0
0 1 0

将其与3d坐标相乘,您将获得以下两个术语:

2d-x = 3d-x 2d-y = 3d-y

这导致您从直上方观察立方体(或者您正在尝试显示的任何内容),基本上再次忽略Z轴(除非使用某种3d眼镜或类似的技术)。


总的来说,取决于您如何使用坐标并解释它们。通常x和y指的是平面(地面上的位置或2D世界内的位置),而z可能是高度或深度(正面或背面)。这实际上取决于具体情况。但在通用方面,它实际上只是另一个维度,如x和y。