在我学习LibGDX和编码时,我已经看到了相当多的向量。但我从来没有能够掌握它们是什么。
我知道:
在编程中,它们是否也代表了幅度和方向?阵列方面是否表示它们代表两个x和y坐标之间的所有点?
否则它们是否代表一个有一个方向的点,即当该点移动时它会向那个方向移动?它是否意味着运动?
示例:
BodyDef bodyDef = new BodyDef();
bodyDef.position.set(new Vector2(Constants.GROUND_X, Constants.GROUND_Y));
这里发生了什么?为什么我们要将地面设置为矢量?
答案 0 :(得分:2)
std::vector
,Vector2
和Vector3
以及vector math
std::vector是c ++中的一个序列容器,它封装了动态大小的数组。
Vector2和Vector3是Libgdx API中的类,它们分别包含2和3浮点值,还有一些方法可以帮助实际实现矢量数学。
矢量数学是一个了不起的工具,它使复杂行为的编程变得更加简单。矢量数学在2D / 3D游戏开发中非常有用。
矢量作为幅度和方向
通常,我们将坐标定义为(x,y)对,x表示水平偏移,y表示垂直偏移。鉴于屏幕只是一个二维矩形,这是有道理的。例如,这是2D空间中的位置:
位置可以在太空中的任何位置。位置(0,0)有一个名称,它叫做 origin 。请记住这个术语,因为它后来有更多的隐含用途。 n维坐标系的(0,0)是原点。
在矢量数学中,坐标有两种不同的用途,两者同样重要。它们用于表示位置,但也用于表示矢量。当想象为矢量时,与以前相同的位置具有不同的含义。
当想象为矢量时,可以推断出两个属性,方向和幅度。除了原点之外,空间中的每个位置都可以是矢量。这是因为坐标(0,0)不能代表方向(幅度0)。