Ios 如何将ARAnchor尺寸转换为SpriteKit等效尺寸
问题: 如何创建与ARObjectAnchor.referenceObject高度和宽度相同的新SKSpritEndode 背景: 我目前正在摆弄ARKit的新对象检测功能,并且有工作代码来检测我扫描的对象。当ARKit检测到对象时,它会提供一个ArObject Anchor类型的新ARAnchor 我知道ARSCNView提供了一个projectPoint方法,但我找不到ARSKView的任何等效函数。如何将ARObjectAnchor维度映射到新的精灵 以下是我如何处理检测到的对象:Ios 如何将ARAnchor尺寸转换为SpriteKit等效尺寸,ios,swift,sprite-kit,scenekit,arkit,Ios,Swift,Sprite Kit,Scenekit,Arkit,问题: 如何创建与ARObjectAnchor.referenceObject高度和宽度相同的新SKSpritEndode 背景: 我目前正在摆弄ARKit的新对象检测功能,并且有工作代码来检测我扫描的对象。当ARKit检测到对象时,它会提供一个ArObject Anchor类型的新ARAnchor 我知道ARSCNView提供了一个projectPoint方法,但我找不到ARSKView的任何等效函数。如何将ARObjectAnchor维度映射到新的精灵 以下是我如何处理检测到的对象: fun
func view(_ view: ARSKView, didAdd node: SKNode, for anchor: ARAnchor) {
if let objectAnchor = anchor as? ARObjectAnchor {
let width = objectAnchor.referenceObject.extent.x
let height = objectAnchor.referenceObject.extent.y
// How to translate above height/width to the below size?
let box = SKSpriteNode(color: .white, size: ???)
node.addChild(box)
}
}
当我在我的图像识别应用程序中将SKScene添加到我的SCNPlane时,我会做一个*10000大小的SCNPlane(不要问我为什么是10000,我不知道),如下所示
let toto = SCNNode(geometry: SCNPlane(width: 0.3, height: 0.1))
let sk = SKScene(size: CGSize(width: 3000, height: 1000))
对我来说,它的大小是一样的,试试这个,告诉我它是否适合你 我试着把它放大10000倍,结果太大了。1000对我来说更好,但这并不能完全回答我的问题。我确信有一种正确的方法可以将三维坐标系转换为二维坐标系,但我不知道如何实现。也许是因为三维坐标系的尺寸以米为单位,而二维坐标系的尺寸以毫米为单位,x1000才有意义
let toto = SCNNode(geometry: SCNPlane(width: 0.3, height: 0.1))
let sk = SKScene(size: CGSize(width: 3000, height: 1000))