美文网首页移动开发SceneKit + ARKit
AR地图之——路标箭头方向的计算

AR地图之——路标箭头方向的计算

作者: 口子窖 | 来源:发表于2018-07-09 11:42 被阅读16次
20180709114151129.jpg

下面代码展示如何计算上图中箭头的旋转方向

- (void)updateRoute:(NSArray<LocalCoordinate *> *)route {
    //route 中放的是LocalCoordinate 它有x和y坐标值 两个属性
    //用于记录上一个坐标
    LocalCoordinate *lcoordinate = [[LocalCoordinate allco] initwithX:0.0 y:0.0];
    NSInteger count = route.count;
    for (NSInteger i = 0; i < count; i++) {
        @autoreleasepool {
            //获取当前坐标点
            LocalCoordinate *coordinate = route[i];
            //使用向量计算夹角
            CGFloat v_x = [coordinate x];
            CGFloat v_y = [coordinate y];
            if (lcoordinate) {
                v_x = [coordinate x]-[lcoordinate x];
                v_y = [coordinate y]-[lcoordinate y];
            }
            double angle = 0.0;
            double m = sqrt(pow(v_x, 2)+pow(v_y, 2));
            if (m != 0) {
                angle = v_x<0?-acos(v_y/m):acos(v_y/m);
            }
            //----------这段是计算当前箭头的位置 不需要的话可以忽略----------
            double x_2 = 0.0;
            double y_2 = 0.0;
            x_2 = ([coordinate x]+[lcoordinate x])/2.0;
            y_2 = ([coordinate y]+[lcoordinate y])/2.0;
            SCNVector3 vector3 = SCNVector3Make(self.floor.worldTransform.m41+x_2, self.floor.worldTransform.m42+0.01, self.floor.worldTransform.m43+y_2);
            //----------这段是计算当前箭头的位置 不需要的话可以忽略----------
            SCNNode *node = self.routeNodes[i];
            node.position = vector3;
            node.transform = SCNMatrix4Translate(node.transform, 0, 1.1, 0);
            //设置欧拉角
            node.eulerAngles = SCNVector3Make(0, angle, 0);
            lcoordinate = coordinate;
        }
    }
}

相关文章

  • AR地图之——路标箭头方向的计算

    下面代码展示如何计算上图中箭头的旋转方向

  • 辨别方向的方法

    1、看地图辨别方向是最简单的办法。地图上有指向标指示方向,指向标箭头的指向就是北方。 2、有的地图没有指向标,通常...

  • 【郭郭宇宇】20170114Day52

    今天带小朋友去看展览,以前出门就会带他看路标的字和箭头指示方向,他虽然明白,但是找得还是比较慢,今天和小朋友出门,...

  • 人生的路标、方向!

    悟出哲理,悟出理性,感悟人生的趣味。 净以修心,净化心灵,以净置动。 道理则通,道义勿念,道可以让你不会失望。 空...

  • 榜样

    榜样如同路标,以方向做参照,具体能否到达,怎么到达,也因人而已。 榜样又如地图,可以从中看到想要去的地方,并不代表...

  • 路标与路人

    路标是路标,路人是路人。你何曾见过路标按照它自己指出的方向前进?——熊彼特

  • 柏油路上汽车 有一场一场的比赛

    夏天时,找个地方,坐在阁楼上,看一条伸长的柏油路,像漆黑的涂层,一段白色路标,一段黄色路标,还有幻想的路向箭头,赛...

  • Unity+SenseAR教程 | 用手势发射爱心2:加入发射方

    摘要:Unity+SenseAR2.3开发的AR应用,基于手势识别同时计算手势方向,发射你的爱心~ 洪流学堂,让你...

  • 带箭头的UIView

    在网上查资料的时候,看到带箭头的UIView的箭头都是直的,显得很没有平滑感,恰好当时正在写高德地图,高德地图中...

  • 寻访仓颉造字台

    路过郭杜镇,发现一个路标是造字台路,兴奋之余决定去看看,路标是南北箭头,就近选了马路对面的村子——邓村。在村子里转...

网友评论

本文标题:AR地图之——路标箭头方向的计算

本文链接:https://www.haomeiwen.com/subject/edjzuftx.html