gmc*_*eny 4 3d graphics matrix ios scenekit
我有一个3d矢量我正在申请作为一个物理力量:
let force = SCNVector3(x: 0, y: 0, z: -5)
node.physicsBody?.applyForce(force, asImpulse: true)
Run Code Online (Sandbox Code Playgroud)
我需要根据移动设备的位置旋转力,我可以将其作为4x4矩阵变换或欧拉角.
var transform:matrix_float4x4 - 摄像机在世界坐标空间中的位置和方向.
var eulerAngles:vector_float3 - 摄像机的方向,表示为滚动,俯仰和偏航值.
我认为这更像是一个基本的3D图形问题,但这个应用程序是使用SceneKit和ARKit的基于Swift的iOS应用程序.
在SceneKit和simd库中有一些可用的实用程序.不幸的是,我天真的尝试做的事情simd_mul(force, currentFrame.camera.transform)让我失望了.
@orangenkopf提供了一个很好的答案,帮助我想出了这个:
let force = simd_make_float4(0, 0, -5, 0)
let rotatedForce = simd_mul(currentFrame.camera.transform, force)
let vectorForce = SCNVector3(x:rotatedForce.x, y:rotatedForce.y, z:rotatedForce.z)
node.physicsBody?.applyForce(vectorForce, asImpulse: true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |