0

假设您有以下方法:

CGPoint vectorSubtraction(CGPoint a, CGPoint b) {
    return CGPointMake(a.x - b.x, a.y - b.y);
}

你使用以下几点:

Point A: (1,4)
Point B: (10,3)

如果你使用该vectorSubtraction方法,你会得到:

一个点(9,-1)

现在,我会理解是否(9,-1)是从第一个点到第二个点的向量(确实如此),但我不明白为什么向量本身是一个点。根据定义,向量具有方向和大小。一个点怎么会有方向和大小?

4

2 回答 2

5

对于那些对这个问题的背景感兴趣的人,几乎可以肯定它是Ray Wenderlich 的 Sprite Kit 初学者教程。在该链接中搜索标题"Shooting Projectiles"

就可以将一个点视为向量的情况而言,如果向量的另一端是隐式而不是显式的,则可以。

在这种特殊情况下,该点被视为从原点(0,0)到给定点的向量。

所以实际的向量计算是(顺便说一下,你似乎把点颠倒了):

(0,0)->(10,3) - (0,0)->(1,4) = (0,0)->(9,-1)
于 2013-09-25T05:06:36.243 回答
3

从(实际上不是)不同的方向解决问题:

一个点怎么会有方向和大小?

所以像这样:

double direction = atan2(point.y, point.x);
double magnitude = hypot(point.x, point.y);

好旧的笛卡尔坐标系。

于 2013-09-25T05:20:11.770 回答