SceneKit-绘制直线

// private func lineBetweenNodeA(beginPosition: SCNVector3, endPosition: SCNVector3) -> SCNNode { // let positions: [Float32] = [beginPosition.x, beginPosition.y, beginPosition.z, endPosition.x, endPosition.y, endPosition.z] // let positionData = NSData(bytes: positions, length: MemoryLayout<Float32>.size*positions.count) // let indices: [Int32] = [0, 1] // let indexData = NSData(bytes: indices, length: MemoryLayout<Int32>.size * indices.count) // let source = SCNGeometrySource(data: positionData as Data, semantic: SCNGeometrySource.Semantic.vertex, vectorCount: indices.count, usesFloatComponents: true, componentsPerVector: 3, bytesPerComponent: MemoryLayout<Float32>.size, dataOffset: 0, dataStride: MemoryLayout<Float32>.size * 3) // let element = SCNGeometryElement(data: indexData as Data, primitiveType: SCNGeometryPrimitiveType.line, primitiveCount: indices.count, bytesPerIndex: MemoryLayout<Int32>.size) // glLineWidth(10) // let line = SCNGeometry(sources: [source], elements: [element]) // return SCNNode(geometry: line) // } // // func distance(startPosition:SCNVector3,endPosition:SCNVector3) -> CGFloat{ // let x1 = startPosition.x // let y1 = startPosition.y // let z1 = startPosition.z // let x2 = endPosition.x // let y2 = endPosition.y // let z2 = endPosition.z // let r = sqrt(pow(x2-x1, 2) + pow(y2-y1, 2) + pow(z1-z2, 2)) // return CGFloat(r) // }

// func calculateRotationY(beginPosition:SCNVector3,endPosition:SCNVector3) -> Float{ // var θ:Float = 0.0 // let x = endPosition.x // let z = endPosition.z // if z > 0 && x > 0{ // θ = atan(z/x) // }else if z > 0 && x < 0 { // θ = atan(z/x) + Float.pi // }else if z < 0 && x > 0{ // θ = 2*Float.pi + atan(z/x) // }else if z < 0 && x < 0{ // θ = Float.pi + atan(z/x) // }else if x == 0 { // if z > 0 { // θ = 0 // }else if z < 0 { // θ = Float.pi // }else if z == 0 { // θ = 0 // } // } // return θ // }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ARKit by Example - 第1部分:AR立方体

    这篇第一篇文章将使用ARKit创建一个非常简单的hello world AR应用程序。最后,我们将能够在增强的世界中定位3D立方体,并使用我们的iOS设备移动它...

    iOSDevLog
  • ARKit 进阶:材质

    光照与材质,是决定 3D 世界中的模型如何渲染的关键参数。许多时候模型的渲染对与不对,往往只是一种视觉的感受。由于不是测试驱动的,所以多数情况下,考验的不是你的...

    郭艺帆
  • iOS ARKit教程:用裸露的手指在空中画画

    最近,Apple公布了名为ARKit的新增强现实(AR)库。对于许多人来说,它看起来只是另一个优秀的AR库,而不是一个值得关注的技术破坏者。但是,如果你看一下过...

    iOSDevLog
  • ARKit:增强现实技术在美团到餐业务的实践

    增强现实(Augmented Reality)是一种在视觉上呈现虚拟物体与现实场景结合的技术。Apple 公司在 2017 年 6 月正式推出了 ARKit,i...

    美团技术团队
  • ARKit上手 添加3D物体

    之后,填写完项目信息后,选择Content Technology为SceneKit,当然也可以选择SpriteKit,不过在3D空间中就不是那么立体了。 开发语...

    Charlie_W
  • 现实与虚拟的共生,AR响应式手绘技术 | Mixlab增强现实

    近年来,越来越多的AR草图绘制工具使用户能够在现实世界中绘制和嵌入草图。比如像SymbiosisSketch,这些工具使用户可以绘制数字元素并将其嵌入到现实世界...

    mixlab
  • ARKit 进阶:物理世界

    ARKit的渲染能力是由其他框架实现的,除了苹果的SceneKit, Unity3D、UE, 或者其他自定义的OpenGL、Metal渲染引擎都可以与ARKit...

    郭艺帆
  • iOS - SceneKit显示与交互3D建模(一)

    LinXunFeng
  • iOS ARKit教程:赤手在空中绘画

    这次推荐的是ios上的文章,无奈ios上的东西没接触过,权且当做开拓视野了。老规矩,原文如下:

    WindCoder

扫码关注云+社区

领取腾讯云代金券