![Сноуден разработал чехол для iPhone, который подскажет, шпионит ли за вами АНБ](/f/18416d0ea9a3f2b1f06b8ddcf58fefd6.jpg?width=100&height=100)
Давайте посмотрим на метод Как измерить землю с помощью ARKit Классный инструмент, который поможет вам измерять объекты на расстоянии, просто используя простые приемы, которые мы собираемся обсудить прямо ниже. Чтобы продолжить, ознакомьтесь с полным руководством, описанным ниже.
Короче говоря, ARKit - это популярный инструмент для разработки инструментов дополненной реальности, или это особая платформа для разработчиков iOS. С помощью этого инструмента можно создавать и использовать различные вещи, в то время как камеру устройства также можно хорошо использовать в творчестве. В ARKit могут быть реализованы различные факты, например, для завершения требований. Одна из вещей, которые пользователи хотели бы пройти с помощью ARKit, - это измерить землю с его помощью. К счастью, с помощью этого инструмента можно измерить землю, и с его помощью можно получить наиболее точные результаты. Теперь многие пользователи будут сбиты с толку относительно того, как это возможно реализовать метод, не волнуйтесь, поскольку эта статья полностью связана с этим. В этой статье мы написали о методе измерения грунта с помощью ARKit. Если вы заинтересованы в чтении этой информации или считаете ее полезной для вас, прочтите ее. Вся необходимая информация представлена в основном разделе этого сообщения, как указано ниже, не забудьте прочитать до конца страницы, чтобы получить все знания по теме. Итак, приступим!
Требования перед продолжением - Mac под управлением macOS 10.13.2 или новее, Xcode 9.2 или новее, устройство с iOS 11+ на процессоре A9 или новее, Swift 4.0, учетная запись разработчика Apple.
# 1 Прежде всего загрузите все необходимые ресурсы по ссылке- http://www.mediafire.com/file/mhusxpaha96zgzq/Assets.zip/file. Эта ссылка загрузит вам все, и вы сможете продолжить использование этого метода. Обратите внимание, что есть требования к активам, поэтому вам нужно сначала выполнить этот шаг. Для облегчения доступа к файлам или ресурсам, которые вы загружаете, храните их в папке, откуда к файлам можно получить доступ.
# 2 Следуйте этому руководству по ссылке- https://mobile-ar.reality.news/how-to/arkit-101-pilot-your-3d-plane-location-using-hittest-arkit-0184060/#jump-step2 а затем создайте проект AR в XCode. Новый проект, который вы создаете, должен иметь другое имя, чтобы вы могли легко использовать его и мгновенно распознать. Также быстро протестируйте проект перед его запуском.
# 3 Импортируйте все активы в ваш новый проект, созданный на предыдущем шаге. Не забудьте выбрать опцию «Копировать, если необходимо» при импорте ресурсов в проект. Это легко проделать пошагово по опциям меню.
#4 Теперь внутри файла «ViewController.swift» вам нужно изменить строку создания сцены в методе viewDidLoad (). Код необходимо изменить с -
let scene = SCNScene (с именем: «art.scnassets / ship.scn»)!
к
пусть сцена = SCNScene ()
Затем найдите строку в верхней части файла - @IBOutlet var sceneView: ARSCNView! а затем добавьте код под ним - var grids = [Grid] ()
Это покажет линии сетки для обнаружения.
# 5 Скопируйте и вставьте приведенные ниже коды под последние фигурные скобки файла:
// 1.
func renderer (_ renderer: SCNSceneRenderer, didAdd node: SCNNode, для привязки: ARAnchor) {
let grid = Grid (привязка: привязка как! ARPlaneAnchor)
self.grids.append (сетка)
node.addChildNode (сетка)
}
// 2.
func renderer (_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, для привязки: ARAnchor) {
let grid = self.grids.filter {сетка в
вернуть grid.anchor.identifier == anchor.identifier
}.первыйguard let foundGrid = grid else {
возвращаться
}foundGrid.update (привязка: привязка как! ARPlaneAnchor)
}
# 6 Под строкой, приведенной ниже в viewDidLoad ():
sceneView.showsStatistics = true
Добавьте код - sceneView.debugOptions = ARSCNDebugOptions.showFeaturePoints
А под кодом - пусть конфигурация = ARWorldTrackingConfiguration ()
Добавить-configuration.planeDetection = .horizontal
# 6 Приведенный выше код установит обнаружение горизонтальных и вертикальных линий с сеткой для обнаружения 3D, но для измерений вам необходимо открыть сетку. Быстрый файл.
Внутри файла найдите код var planeGeometry: SCNPlane!
и Добавить новую линию геометрии - var textGeometry: SCNText!
# 7 Найдите строки, которые импортируют ARkit сейчас, это будет - import ARKit. Под линиями и над линиями, которые создали класс сетки, складываются:
extension ARPlaneAnchor {
// Дюймы
var width: Float {return self.extent.x * 39.3701}
var length: Float {return self.extent.z * 39.3701}
}
# 8 После всего этого найдите метод setup (). Удалите этот метод и замените его обновленной версией метода, как показано ниже:
private func setup () {
planeGeometry = SCNPlane (ширина: CGFloat (anchor.width), высота: CGFloat (anchor.length))let material = SCNMaterial ()
material.diffuse.contents = UIImage (с именем: «overlay_grid.png»)planeGeometry.materials = [материал]
пусть planeNode = SCNNode (геометрия: self.planeGeometry)
planeNode.physicsBody = SCNPhysicsBody (тип: .static, форма: SCNPhysicsShape (геометрия: planeGeometry, параметры: ноль))
planeNode.physicsBody? .categoryBitMask = 2planeNode.position = SCNVector3Make (anchor.center.x, 0, anchor.center.z);
planeNode.transform = SCNMatrix4MakeRotation (Float (-Double.pi / 2.0), 1.0, 0.0, 0.0);// 1.
пусть textNodeMaterial = SCNMaterial ()
textNodeMaterial.diffuse.contents = UIColor.black// Настраиваем геометрию текста
textGeometry = SCNText (строка: String (формат: «% .1f \» », anchor.width) +« x »+ String (формат:«% .1f \ »», anchor.length), extrusionDepth: 1)
textGeometry.font = UIFont.systemFont (ofSize: 10)
textGeometry.materials = [textNodeMaterial]// Интегрируем текстовый узел с текстовой геометрией
// 2.
пусть textNode = SCNNode (геометрия: textGeometry)
textNode.name = «textNode»
textNode.position = SCNVector3Make (anchor.center.x, 0, anchor.center.z);
textNode.scale = SCNVector3Make (0,005; 0,005; 0,005)addChildNode (текстовый узел)
addChildNode (planeNode)
}
# 9 В конце фигурных скобок Anchor вставьте код, приведенный ниже:
если let textGeometry = self.childNode (withName: «textNode», рекурсивно: true)?. геометрия как? SCNText {
// Обновляем текст до нового размераtextGeometry.string = String (формат: «% .1f \» », anchor.width) +« x »+ String (формат:«% .1f \ »», anchor.length)
}
#10 Сохраните и запустите приложение после всех вышеперечисленных изменений, и все готово!
Наконец, после прочтения этой статьи вы узнали о методе, с помощью которого любой может проверить Землю с помощью ARKit или измерить землю через нее. Вся информация, представленная здесь, написана таким образом, чтобы каждый мог легко понять важные аспекты. Надеюсь, что вам может понравиться информация, приведенная в этой статье, если это так, пожалуйста, попробуйте поделиться ею и с другими. Кроме того, поделитесь своими предложениями и мнениями относительно этого контента, используя раздел комментариев ниже. Вы очень благодарны нам за то, что вы занимаетесь нашей работой, продолжайте поддерживать нас, и мы всегда будем придумывать всю новую удивительную информацию. Наконец, но тем не менее, спасибо, что прочитали этот пост!