如何使用dx和dy(派生)创建Swift CGVector?

时间:2016-06-25 15:55:42

标签: ios swift math

我试图了解如何在Swift中创建Vector,因为当我执行CGVectorMake()时,告诉我将dx和dy(衍生物)作为CGFloat传递。 如何创建仅包含该信息的Vector(行)?

任何人都可以解释一下吗?喜欢傻瓜?我在谷歌搜索但我仍然找不到简单的解释。

让我们说我想创建一个从点(0,0)到点(5,5)的向量。

1 个答案:

答案 0 :(得分:7)

有许多可能的向量表示,一个是作为 "距离"或"置换"从一点到另一点(比较Euclidean vector: Representations)。

从这个意义上说,从(0,0)到(5,5)的向量与相同到 从(2,3)到(7,8)的向量,以及从点A到点B的向量 可以计算为

let pA = CGPoint(x: 2, y: 3) // Point A(2, 3)
let pB = CGPoint(x: 7, y: 8) // Point B(7, 8)
let vecAB = CGVector(dx: pB.x - pA.x, dy: pB.y - pA.y) // Vector from A to B
print(vecAB) // CGVector(dx: 5.0, dy: 5.0)

所以dxdy代表" delta X"和" delta Y",距离 x和y方向上的点。在上面的例子中,你可以 读vecAB为"在x方向移动5个单位,在5个单位移动5个单位 在y方向",你会得到A(0, 0)相同的结果 和B(5, 5)

A"线段"从(0,0)到(5,5)或从(2,3)到(7,8)  不能用a代表 单独矢量。你需要两个点,或一个点和一个矢量。