0 Replies
Latest reply on Jun 5, 2018 4:06 AM by MathEnthusiast
Level 1 (0 points)

I basically have two 3D Points. Let us assume that the coordinates of the two points are:

`(x: 1, y: 1, z: 1)` and `(x: 2, y: 2, z: 2)`.

Basically, I have three lines:

Line1: directly joins point 1 and point 2. So, end points of this line are:

`(x: 1, y: 1, z: 1)` and `(x: 2, y: 2, z: 2)`.

Line2: This is basically horizontal component. So,end points of this line are:

`(x: 1, y: 1, z: 1)` and `(x: 2, y: 2, z: 1)`.

Line3: This is basically vertical component. So,end points of this line are:

`(x: 1, y: 1, z: 1)` and `(x: 1, y: 1, z: 2)`.

Now, I am trying to add a 3D Text. I want to display my text exactly above my line. Since, I have three lines, I will display three texts. So, I would like to know the coordinates of the text (for all the three different lines such that they don't overlap) and also the orientation to be set for the texts (such that they are properly visible always to the user, even if he rotates the mobile etc).

Creating text is as follows:

func AddText(pos1: SCNVector3?, pos2: SCNVector3?) {

var txtNode = SCNNode()

let d = self.distanceBetweenPoints(A: pos1!, B: pos2!)

let distanceString = String(format: "%.2f", d)

let txtGeometry = SCNText(string: distanceString, extrusionDepth: 1.0)

txtGeometry.firstMaterial?.diffuse.contents = UIColor.red

txtGeometry.alignmentMode  = kCAAlignmentCenter

txtGeometry.truncationMode = kCATruncationMiddle

txtNode.removeFromParentNode()

txtNode = SCNNode(geometry: txtGeometry)

txtNode.position = SCNVector3(((pos1?.x)! + (pos2?.x)!)/2, ((pos1?.y)! + (pos2?.y)!)/2, ((pos1?.z)! + (pos2?.z)!)/2)

txtNode.scale = SCNVector3(0.005, 0.005, 0.005)