ios - 我可以单独旋转我的子节点,但不能旋转具有 1 个枢轴点的组
问题描述
.dae
我有一个从文件发送的根节点。它用相机和灯光创造了孩子们。如果需要,我可以旋转各个子节点。
我试图避免数学,因为它看起来很合乎逻辑,我可以旋转 1 个父节点并影响子节点上的更改。
我想通过旋转根节点来旋转子节点。我可以只旋转父节点吗?
或者
例如,我是否必须为围绕任意枢轴点(0、0、0)转换的每个点编写数学?
我读了相当多的书。我试图旋转根节点,使用SCNnode.rootNode
.
我尝试使用新的 scnnode 创建一个枢轴点并将场景添加到该新的枢轴点。
我试过欧拉角,旋转....
func set_up_scn() {
// self.scn = self.view as SCNView!
scene.scene = SCNScene(named: "sectional.dae");
group = SCNNode()
group.name = "FurnitureGroup"
for node in self.scene.scene!.rootNode.childNodes {
group.addChildNode(node);
}
scene.scene?.rootNode.addChildNode(group)
scene.autoenablesDefaultLighting = true
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(panGestureAction))
scene.addGestureRecognizer(panGesture)
}
@objc func panGestureAction(sender : UIPanGestureRecognizer) {
var pos : CGPoint = sender.translation(in: self.scene)
var pivotPoint : SCNNode = (self.scene.scene?.rootNode.childNode(withName: "FurnitureGroup", recursively: true))!
pivotPoint.rotation.x = Float(pos.x)
pivotPoint.rotation.y = Float(pos.y)
}
我没有收到错误。我也没有轮换;如果我打印出显示 x 正在变化的枢轴点旋转,我会得到旋转。但没有可见的旋转。
解决方案
推荐阅读
- c# - 如何使用相应的 sql 操作插入和更新执行函数
- angular - 在 Kendo 上为 Angular Dialog 显示 div
- f# - FParsec:保留行号和列号
- python - 是否可以在 Windows 10 上禁用网络摄像头的自动对焦?
- rpm - 如何在第二个依赖于正在安装的第一个的规范文件中指定两个 BuildRequires 项?
- mysql - 有没有办法在不使用多个 AND 的情况下将 WHERE 条件放在所有列上?
- java - 是否可以互换地动态使用来自多个项目的 Freemarker 模板?
- prestashop-1.6 - 在自定义模块中显示降价产品
- c# - 为使用 IdentityServer 4 进行身份验证的 AspNetCore API 构建集成测试
- mobile - 如何将 webrtc 的权限添加到 Gecko View