简体   繁体   English

如何显示(添加)两点之间的平面文本节点?

[英]How to display (add) plane text node between two points?

How to display distance value plane surface between two points in measurement ARKit/SceneKit? 如何在测量ARKit / SceneKit中显示两点之间的距离值平面? Same as on image. 与图像相同。

在此处输入图片说明

Here's a simple principle how to place a label with 3D text between two points. 这是一个简单的原理,即如何在两点之间放置带有3D文本的标签。

let p1 = SCNNode()                    // POINT 1
p1.geometry = SCNSphere(radius: 0.3)
p1.position = SCNVector3(-1, -2, -3)
p1.geometry?.firstMaterial?.diffuse.contents = NSColor.red
scene.rootNode.addChildNode(p1)

let p2 = SCNNode()                    // POINT 2
p2.geometry = SCNSphere(radius: 0.2)
p2.position = SCNVector3(4, 5, 6)
p2.geometry?.firstMaterial?.diffuse.contents = NSColor.red
scene.rootNode.addChildNode(p2) 

let x = (p1.position.x + p2.position.x) / 2
let y = (p1.position.y + p2.position.y) / 2
let z = (p1.position.z + p2.position.z) / 2

let label = SCNNode()
let text = SCNText(string: "label", extrusionDepth: 5)
label.geometry = text

// Shifting text's pivot to its center. Default pivot's position is lower left corner.

label.simdPivot.columns.3.x = Float((text.boundingBox.min.x +     
                                     text.boundingBox.max.x) / 2)

label.simdPivot.columns.3.y = Float((text.boundingBox.min.y + 
                                     text.boundingBox.max.y) / 2)

label.scale = SCNVector3(0.02, 0.02, 0.02)
label.position = SCNVector3(x, y, z)
label.geometry?.firstMaterial?.diffuse.contents = NSColor.red
scene.rootNode.addChildNode(label)

let constraint = SCNBillboardConstraint()
label.constraints = [constraint]

let plane = SCNNode()
plane.geometry = SCNPlane(width: 2, height: 1)
plane.position = SCNVector3(x, y, z)
plane.geometry?.firstMaterial?.diffuse.contents = NSColor.white
scene.rootNode.addChildNode(plane)

plane.constraints = [constraint]

The same way you may add ARAnchor and attach any label to it. 您可以用同样的方法添加ARAnchor并在其上label任何label

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM