Как я могу нарисовать 3D-объект (желательно прямоугольник) с основной графикой в Swift?Как нарисовать 3D-объект с активной графикой в Swift?
Возможно ли использовать другую библиотеку?
Возможно ли с помощью UIKit?
Как я могу нарисовать 3D-объект (желательно прямоугольник) с основной графикой в Swift?Как нарисовать 3D-объект с активной графикой в Swift?
Возможно ли использовать другую библиотеку?
Возможно ли с помощью UIKit?
Заимствования из этого ответа: https://stackoverflow.com/a/24127282/887210
ключевая часть вашего вопроса:
SCNBox(width: 1, height: 4, length: 9, chamferRadius: 0)
Это рисует прямоугольник с SceneKit и UIKit. Он настроен для использования в пользовательском UIViewController в вашем проекте, но его можно легко адаптировать к другим применениям.
Пример кода:
override func loadView() {
// create a scene view with an empty scene
let sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
let scene = SCNScene()
sceneView.scene = scene
// default lighting
sceneView.autoenablesDefaultLighting = true
// a camera
let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 15)
scene.rootNode.addChildNode(cameraNode)
// a geometry object
let box = SCNBox(width: 1, height: 4, length: 9, chamferRadius: 0)
let boxNode = SCNNode(geometry: box)
scene.rootNode.addChildNode(boxNode)
// configure the geometry object
box.firstMaterial?.diffuse.contents = UIColor.redColor()
box.firstMaterial?.specular.contents = UIColor.whiteColor()
// set a rotation axis (no angle) to be able to
// use a nicer keypath below and avoid needing
// to wrap it in an NSValue
boxNode.rotation = SCNVector4(x: 1, y: 1, z: 0.0, w: 0.0)
// animate the rotation of the torus
let spin = CABasicAnimation(keyPath: "rotation.w") // only animate the angle
spin.toValue = 2.0*M_PI
spin.duration = 10
spin.repeatCount = HUGE // for infinity
boxNode.addAnimation(spin, forKey: "spin around")
view = sceneView // Set the view property to the sceneView created here.
}
Так как я бы включить это в проект, который не является игрой. Я бы добавил sceneView в свой диспетчер представлений – Tob
Я обновил пример, чтобы вы могли увидеть, как его встраивать в подкласс UIViewController. Вы в основном переопределяете метод loadView() 'и устанавливаете свойство' view' переменной 'sceneView'. – ColGraff
Спасибо, что отлично работает :) – Tob