SwiftUI路径:Scenekit中的轴颠倒错误

SwiftUI路径:Scenekit中的轴颠倒错误,swiftui,scenekit,Swiftui,Scenekit,问题: 当我解析一个指向Scenekit的快捷界面路径时,它是颠倒的,轴在边界框之外 我试过: 将SwiftUI.AnchorReference设置为中心。没什么区别 目标: 如何使轴成为边界框的中心底部 重要提示:我需要有一个正确的SwiftUI路径->SCN轴平移,并且不要手动偏移轴,因为这会影响场景中的所有对象轴 UIKit和SwiftUI使用翻转几何体,其中y值随画布从顶部到底部的移动而增加。 Scenekit不使用翻转几何体。所以你必须“翻转”y值 在图层上,您甚至可以设置此值。。

问题: 当我解析一个指向Scenekit的快捷界面路径时,它是颠倒的,轴在边界框之外

我试过: 将SwiftUI.AnchorReference设置为中心。没什么区别

目标: 如何使轴成为边界框的中心底部

重要提示:我需要有一个正确的SwiftUI路径->SCN轴平移,并且不要手动偏移轴,因为这会影响场景中的所有对象轴


UIKit和SwiftUI使用翻转几何体,其中y值随画布从顶部到底部的移动而增加。 Scenekit不使用翻转几何体。所以你必须“翻转”y值


在图层上,您甚至可以设置此值。。。但我认为scenekit没有这样的价值…

谢谢Chris,我发现了如何在scenekit中翻转轴,但我想在swiftUI锚和scenekit轴之间建立正确的相关性。shapeNode.pivot=SCNMatrix4MakeTranslation(0,0,0)
import SwiftUI

struct PatternScene: View {
    let idx: Int

    let pattern = Path { path in
        path.move(to: CGPoint(x: 50, y: 50))
        path.addLine(to: CGPoint(x: 250, y: 50))
        path.addLine(to: CGPoint(x: 250, y: 250))
        path.addLine(to: CGPoint(x: 50, y: 250))
        path.addLine(to: CGPoint(x: 100, y: 100))
    }

    var body: some View {
        self.pattern
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
            .anchorPreference(key: MyTextPreferenceKey.self, value: .bounds, transform: { [MyTextPreferenceData(viewIdx: self.idx, bounds: $0)] })
    }
}

struct PatternScene_Previews: PreviewProvider {
    static var previews: some View {
        PatternScene(idx: 0)
    }
  }


 //Connect PatternScene with Scenekit
        let scnpath = PatternScene(idx: 0).pattern.cgPath
        let shape = SCNShape(path: UIBezierPath(cgPath: scnpath), extrusionDepth: 1)
        let material = SCNMaterial()
        //material.diffuse.contents = UIColor.red
        material.isDoubleSided = true
        // shape.firstMaterial = material
         let shapeNode = SCNNode(geometry: shape)
        scene.rootNode.addChildNode(shapeNode)
        shapeNode.position = SCNVector3(x: 0, y: 0, z: 0)
        shapeNode.scale = SCNVector3(x: 1, y: 1, z: 1)
        shapeNode.pivot = SCNMatrix4MakeTranslation(0, 0, 0)