【发布时间】:2019-04-17 17:30:01
【问题描述】:
我想创建一条线,我可以告诉它在 ARKit 的场景中从哪里开始和在哪里结束。其他人做了这门课,但我得到了错误。像 node... 的 startLine 和 node... 的 endLine 这样简单的东西会很有帮助。我觉得在两点之间做一条简单的线不应该那么复杂,所以如果你的答案很复杂,请解释为什么它必须如此。谢谢大家的帮助!
class LineNode: SCNNode {
private(set) var cylinder: SCNCylinder
private(set) var positionA: SCNVector3
private(set) var positionB: SCNVector3
init(with startingPoint: SCNVector3, endPoint: SCNVector3, radius: Float = 0.02, color: UIColor = .red) {
self.positionA = startingPoint
self.positionB = endPoint
let vector = endPoint - startingPoint *//error*
let height = vector.length()
cylinder = SCNCylinder(radius: radius, height: Float(height))
cylinder.radialSegmentCount = 8
cylinder.firstMaterial?.diffuse.contents = color
super.init()
geometry = cylinder
position = (endPoint + startingPoint) / 2 *//error*
eulerAngles = SCNVector3.lineEulerAngles(vector: vector)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
// 我得到错误:二元运算符'-'不能应用于两个'SCNVector3'操作数
【问题讨论】: