假设您有以下方法:
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)
是从第一个点到第二个点的向量(它是),但我不明白为什么向量本身是一个点。根据定义,矢量具有方向和幅度。一个点怎么能有方向和幅度?
答案 0 :(得分:5)
对于那些对这个问题的背景感兴趣的人,它几乎肯定是Ray Wenderlich's Sprite Kit Tutorial for Beginners形式。搜索标题"Shooting Projectiles"
的链接。
就可以将某个点视为向量的情况而言,如果向量的另一端是隐式而不是显式,则可以。
在这种特殊情况下,该点被视为从原点(0,0)
到给定点的向量。
所以实际的矢量计算是(你似乎有点反转的点):
(0,0)->(10,3) - (0,0)->(1,4) = (0,0)->(9,-1)
答案 1 :(得分:3)
从(实际上)不同的方向接近问题:
一个点怎么能有方向和幅度?
所以这样:
double direction = atan2(point.y, point.x);
double magnitude = hypot(point.x, point.y);
古老的笛卡尔坐标系。