这里还有一些内容:
向量代表位移。位移、平移、运动或者你想怎么称呼它都无法脱离一个起点的概念,这也是为什么我以上提到的“向前”向量被称为“从中心点开始”的原因,也是为什么“重心向量”,即具有重心点x/y分量的向量没有意义的原因。这些分量给出了重心点相对于原点的位移。换句话说,pOrigin + vCentroid = pCentroid。如果你从0点开始,加上一个代表重心点位移的向量,就可以得到重心点。
请注意:
vector + vector = vector
(两个位移的加法会得到第三个不同的位移)
point + vector = point
(对一个点进行移动/位移会得到另一个点)
point + point = ???
(两个点的加法没有意义;但是:)
point - point = vector
(两点之间的差值是它们之间的位移)
现在,这些位移可以用(至少)两种不同的方式来考虑。你已经熟悉其中一种——矩形坐标系(x,y),其中向量的两个分量分别表示在x和y方向的位移。然而,你也可以使用极坐标(r,Θ)。在这里,Θ表示位移的方向(相对于一个任意零角度的角度)和r表示距离。
举个例子,向量(1,1)代表在我们习惯看到的坐标系中向右移动一单位并向上移动一单位。它的极坐标等价于(1.414,45°),即同样的位移,但表示为“1.414单位在45°方向上的位移”。(再次使用方便的极坐标系,其中东方是0°,角度逆时针增加。)
极坐标和矩形坐标之间的关系为:
Θ = atan2(y, x)
r = sqrt(x²+y²) (现在你看到这个直角三角形从哪里来了吧?)
反之,
x = r * cos(Θ)
y = r * sin(Θ)
现在,由于从你的三角形重心到“顶端”角落绘制的线段会代表你的三角形所“面向”的方向,如果我们获得一条与该线平行的向量(例如 vForward = pTip - pCentroid),那么该向量的Θ坐标将对应着你的三角形所面对的角度。
再次考虑(1,1)向量。如果这是vForward,则意味着您的“顶部”点的x和y坐标都比重心大1。假设重心在(10,10)上。这将把“顶部”角落移到(11,11)。(记住,通过在先前方程式的两侧添加“+ pCentroid”,pTip = pCentroid + vForward。)现在这个三角形朝向哪个方向?45度,对吧?这是我们(1,1)向量的Θ坐标!