什么是编程中的向量(LibGDX)?

时间:2017-11-07 16:54:59

标签: java libgdx

在我学习LibGDX和编码时,我已经看到了相当多的向量。但我从来没有能够掌握它们是什么。

我知道:

  • 在其他编程语言中,它们是(折旧的)处理数组列表的方式。
  • 在物理学中,它们代表了大小和方向。

在编程中,它们是否也代表了幅度和方向?阵列方面是否表示它们代表两个x和y坐标之间的所有点?

否则它们是否代表一个有一个方向的点,即当该点移动时它会向那个方向移动?它是否意味着运动?

示例:

BodyDef bodyDef = new BodyDef();
bodyDef.position.set(new Vector2(Constants.GROUND_X, Constants.GROUND_Y));

这里发生了什么?为什么我们要将地面设置为矢量?

1 个答案:

答案 0 :(得分:2)

  

std::vectorVector2Vector3以及vector math

  • std::vector是c ++中的一个序列容器,它封装了动态大小的数组。

  • Vector2Vector3是Libgdx API中的类,它们分别包含2和3浮点值,还有一些方法可以帮助实际实现矢量数学。

  • 矢量数学是一个了不起的工具,它使复杂行为的编程变得更加简单。矢量数学在2D / 3D游戏开发中非常有用。

    矢量作为幅度和方向

    通常,我们将坐标定义为(x,y)对,x表示水平偏移,y表示垂直偏移。鉴于屏幕只是一个二维矩形,这是有道理的。例如,这是2D空间中的位置:

    enter image description here

    位置可以在太空中的任何位置。位置(0,0)有一个名称,它叫做 origin 。请记住这个术语,因为它后来有更多的隐含用途。 n维坐标系的(0,0)是原点

    在矢量数学中,坐标有两种不同的用途,两者同样重要。它们用于表示位置,但也用于表示矢量。当想象为矢量时,与以前相同的位置具有不同的含义。

    enter image description here

    当想象为矢量时,可以推断出两个属性,方向和幅度。除了原点之外,空间中的每个位置都可以是矢量。这是因为坐标(0,0)不能代表方向(幅度0)。

    enter image description here