gpt4 book ai didi

ios - 如何使用 4x4 矩阵变换或欧拉角旋转 3d 矢量?

转载 作者:可可西里 更新时间:2023-11-01 05:07:29 27 4
gpt4 key购买 nike

我有一个 3d 矢量,我正在应用它作为物理力:

let force = SCNVector3(x: 0, y: 0, z: -5)  
node.physicsBody?.applyForce(force, asImpulse: true)

我需要根据 mobile device's position 旋转力我可以使用 4x4 矩阵变换或欧拉角。

var transform :matrix_float4x4 - The position and orientation of the camera in world coordinate space.

var eulerAngles :vector_float3 - The orientation of the camera, expressed as roll, pitch, and yaw values.

我认为这更像是一个基本的 3d 图形问题,但它的应用是一个使用 SceneKit 和 ARKit 的基于 Swift 的 iOS 应用程序。

SceneKit 中有一些实用程序可供我使用和 simd 库。不幸的是,我天真的尝试做 simd_mul(force, currentFrame.camera.transform) 之类的事情让我失败了。

最佳答案

@orangenkopf 提供了一个 great answer这帮助我想出了这个:

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)

关于ios - 如何使用 4x4 矩阵变换或欧拉角旋转 3d 矢量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44747606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com