最佳答案
我相信在 Swift 中 GLKVector3
是不可变的,无论是 var
还是 let
。使用 GLKVector3Make
创建具有任意 Float
值的;随后为新实例生成新结果。
所以:
let ballLocation = GLKVector3Make(
(locationInBallCoordinates.x - ballCentre.x) / ballRadius,
0.0,
(locationInBallCoordinates.y - ballCentre.y) / ballRadius)
或者,如果 locationInBallCoordinates
和 ballCentre
已经是 GLKVector3
的实例 — 以及我没有的 y-to-z 组件切换注意到当我第一次写这个答案时不存在 — 然后:
let ballLocation =
GLKVector3DivideScalar(
GLKVector3Subtract(locationInBallCoordinates, ballCentre),
ballRadius)
将 y
移动到 z
可能是最简单的解包和重新打包,但如果您迫切希望保持高水平,您也可以使用矩阵乘法。
关于ios - GL套件。如何分配给 GLKVector3 的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798458/