精华内容
下载资源
问答
  • 通过百度地图边界线获取坐标边界线
  • Splinedraw 将允许您通过设置/删除/移动点然后通过样条连接在当前绘图中绘制曲线。 点的坐标打印在命令窗口中。 可用于手动绘制趋势线,从某些曲线或图像中检索坐标和样条系数。 在项目网站上查找 Excel 版本。
  •  相对坐标、平移坐标系 /////////////////// 平移坐标系测试 /////////////////// painter.drawRect(QRect(20,120, 50, 50)); // 用给定的偏移量平移坐标系 painter.translate(100, 0); // 保存painter状态 painter...

    GitHub源码仓库:Qt学习例程

    1. QPainter绘图抗锯齿

    /// 抗锯齿测试 ///
    painter.drawEllipse(QPoint(100,50), 50, 50);
    
    // 设置 抗锯齿能力,抗锯齿会让绘图效率较低
    painter.setRenderHint(QPainter::Antialiasing);
    painter.drawEllipse(QPoint(200,50), 50, 50);
    
    // 设置 抗锯齿能力,抗锯齿会让绘图效率较低
    painter.setRenderHint(QPainter::HighQualityAntialiasing);
    painter.drawEllipse(QPoint(300,50), 50, 50);

    其他的抗锯齿参数还有:

     

    2. 相对坐标、平移坐标系

    /// 平移坐标系测试 ///
    painter.drawRect(QRect(20,120, 50, 50));
    
    // 用给定的偏移量平移坐标系
    painter.translate(100, 0);
    // 保存painter状态
    painter.save();
    
    painter.drawRect(QRect(20,120, 50, 50));
    
    // 还原坐标状态
    painter.restore();
    painter.drawRect(QRect(20,150, 50, 50));

     

    3. QPainter画图片

    新建资源编辑器,添加图片资源。并且记住想要绘制的图片路径。

    绘图事件函数中,添加代码:

    /// QPainter画图片 ///
    painter.drawPixmap(20,200, QPixmap(":/pic/123.png"));

     

     

    4. 手动调用QPainter绘图事件

    以上的绘图只能在调用一次绘图,如果想要在程序运行的过程中绘图,需要手动调用QPainter绘图事件。

    Qt中的update(); 相当于先清空屏幕,再重新执行一次绘图事件。

     

    示例:我们创建一个按键,点击按键会让图片向右平移。

    connect(ui->btnMove, &QPushButton::clicked, [=](){
        posX+=100;
        // 重新绘图,手动调用QPainter绘图事件,将整个窗口重新绘制
        update();
    });
    // 如果图片左侧超出屏幕,从0开始重新移动
    if(posX > this->width())
    {
        posX = 0;
    }
    /// QPainter画图片 ///
    painter.drawPixmap(posX,200, QPixmap(":/pic/123.png"));

     

    GitHub源码仓库:Qt学习例程

    展开全文
  • 利用G25祖源计算器坐标画PCA散点 概述 编程语言:python3.x 模块:numpy sklearn matplotlib 可选:jupyter 整体思路:将G25给出的25维坐标降维并画图 二维PCA散点 步骤: 先把自己中的G25坐标数据集整理成...

    利用G25祖源计算器坐标画PCA散点图

    概述


    编程语言:python3.x
    模块:numpy sklearn matplotlib
    可选:jupyter
    整体思路:将G25给出的25维坐标降维并画图

    二维PCA散点图


    步骤:

    1. 先把自己手中的G25坐标数据集整理成csv
    2. 读取csv文件(此处我直接用的numpy读取,用csv模块或pandas也可)
    3. 将读取的数组利用sklearn降维(此处的n_components表示降维后的维度,既然是二维图,所以是2)
    4. matplotlib画散点图

    代码:

    import numpy as np
    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    
    with open('samples.csv', encoding = 'utf-8') as f:
        data = np.loadtxt(f, float, delimiter = ",")
    pca = PCA(n_components = 2)
    new_data = pca.fit_transform(data)
    label = ['Alex_scaled',
    		'bao_scaled',
    		'xiulan_scaled',
    		'Robert_scaled',
    		'Foxy_wg_scaled',
    		'Haolin_scaled',
    		'Leona_scaled',
    		'penn_scaled',
    		'shi_mf_scaled',
    		'LeonaQi_scaled',
    		'ENF','NEA','EEA']
    for i in range(13):
        plt.scatter(new_data[i][0], new_data[i][-1], s = 40 ,label = label[i])
    plt.legend(loc = 'best')
    plt.show()
    

    结果展示:

    二维PCA散点图

    三维PCA散点图


    步骤:

    步骤与二维类似,只是需要把n_components改成3,然后matplotlib部分需要画三维图

    代码:

    import numpy as np
    from sklearn.decomposition import PCA
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    with open('samples.csv', encoding = 'utf-8') as f:
        data = np.loadtxt(f, float, delimiter = ",")
    pca = PCA(n_components = 3)
    new_data = pca.fit_transform(data)
    label = ['Alex_scaled',
    		'bao_scaled',
    		'xiulan_scaled',
    		'Robert_scaled',
    		'Foxy_wg_scaled',
    		'Haolin_scaled',
    		'Leona_scaled',
    		'penn_scaled',
    		'shi_mf_scaled',
    		'LeonaQi_scaled',
    		'ENF','NEA','EEA']
    fig = plt.figure()
    ax = Axes3D(fig)
    for i in range(13):
        ax.scatter(new_data[i][0], new_data[i][1], new_data[i][2], s = 40 ,label = label[i])
    plt.legend(loc = 'best')
    plt.show()
    

    结果展示:

    三维PCA散点图
    这时候估计有小伙伴就会说了:“这看着不膈应吗?”
    所以这个时候…就需要获取每个点的坐标。

    获取三维PCA坐标


    话不多说,直接上代码:

    代码:

    import numpy as np
    from sklearn.decomposition import PCA
    
    with open('samples.csv', encoding = 'utf-8') as f:
        data = np.loadtxt(f, float, delimiter = ",")
    pca = PCA(n_components = 3)
    new_data = pca.fit_transform(data)
    label = ['Alex_scaled',
    		'bao_scaled',
    		'xiulan_scaled',
    		'Robert_scaled',
    		'Foxy_wg_scaled',
    		'Haolin_scaled',
    		'Leona_scaled',
    		'penn_scaled',
    		'shi_mf_scaled',
    		'LeonaQi_scaled',
    		'ENF','NEA','EEA']
    
    for i in range(13):
        print(f'{label[i]}:{new_data[i][0]},{new_data[i][1]},{new_data[i][2]}')
    

    结果展示:

    Alex_scaled:-0.011596488722119198,-0.00721039268000285,0.004327757597152235
    bao_scaled:0.008957327165311457,0.03157204787328956,-0.012162365253179541
    xiulan_scaled:-0.038263037685343365,-0.009423923747343946,0.009725629103724714
    Robert_scaled:-0.028957259795948216,-0.024755176390934306,-0.009760572109930386
    Foxy_wg_scaled:-0.05695083943398266,-0.039729613258914734,-0.014264926832824069
    Haolin_scaled:-0.04331299000524389,-0.0002329777672932537,0.010328443388716371
    Leona_scaled:-0.04650055185985425,0.0050266575879064045,0.003363030038096107
    penn_scaled:-0.0464100888097683,-0.007910106367791488,-0.01116300525568197
    shi_mf_scaled:-0.041521117170468275,-0.0019015953462750332,0.0030836026394054556
    LeonaQi_scaled:-0.04471519716020188,0.0038319892067295172,0.002849597471080112
    ENF:0.4295182339250529,-0.005889585418883738,0.0013563877559191943
    NEA:-0.025410190741495663,0.0637904527870023,-0.0044124624225301305
    EEA:-0.05483779970593805,-0.00716777647748854,0.016728883880051944
    
    展开全文
  • 下面我们再来看一些相关操作坐标轴变换我们画布中默认的坐标轴与浏览器坐标轴相同 x正半轴朝右 y正半轴朝下 但是我们可以手动设置画布坐标轴变换 首先还是会获取“画布”和“画笔”...

    tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( ‘ω’ )و

    上一篇文章我们了解了一些canvas基本图形绘制
    下面我们再来看一些相关操作
    #坐标轴变换
    我们画布中默认的坐标轴与浏览器坐标轴相同
    x正半轴朝右
    y正半轴朝下
    但是我们可以手动设置画布坐标轴变换
    首先还是会获取“画布”和“画笔”

    <canvas id="myCanvas" width=500 height=500></canvas>
    
    var canvas = document.getElementById('myCanvas'),
        ctx = canvas.getContext('2d');
    

    先来在画布中画一个正方形

    ctx.fillStyle = '#f40';
    ctx.fillRect(100, 100, 300, 300);
    

    在图中我标记了画布的坐标轴

    ##平移

    使用translate(dx, dy)方法可以平移坐标轴
    参数为x轴平移距离和y轴平移距离

    ctx.translate(100, 100);
    ctx.fillStyle = '#f40';
    ctx.fillRect(100, 100, 300, 300);
    

    ##缩放

    使用scale(sx, sy)方法可以扩大坐标轴
    参数为x轴和y轴的缩放因子
    坐标也会等比缩放

    ctx.scale(1.2, 1.2);
    ctx.fillStyle = '#f40';
    ctx.fillRect(100, 100, 300, 300);
    

    ##旋转

    使用rotate(deg)方法可以旋转坐标轴

    ctx.rotate(Math.PI/12);
    ctx.fillStyle = '#f40';
    ctx.fillRect(100, 100, 300, 300);
    

    ##保存与恢复
    在改变坐标轴之前
    我们使用save()可以保存之前的画布坐标轴
    然后使用restore()可以让坐标轴恢复到之前的样子

    ctx.save(); //保存之前的正常坐标轴
    ctx.rotate(Math.PI/12);
    ctx.fillStyle = '#f40';
    ctx.fillRect(100, 100, 300, 300);
    ctx.restore();//恢复到正常坐标轴
    ctx.fillStyle = '#000';
    ctx.fillRect(100, 100, 300, 300);
    


    还有两个方法变换坐标轴了解即可
    setTransform(a, b, c, d, e, f)
    这个方法会重置坐标轴后再进行变换
    transform(a, b, c, d, e, f)
    这个方法是在之前坐标轴的基础上进行变换

    这两个方法都是替换为变换矩阵
    a c e
    b d f
    0 0 1
    和CSS3的图形变换类似
    参数分别表示:水平缩放、水平倾斜、垂直倾斜、垂直倾斜、垂直缩放、水平移动、垂直移动

    #图案填充
    现在我先在页面中添加一个图片元素

    <img src="./images/lamp.gif">
    

    我们可以将这个图片填充到我们的画布中
    使用createPattern(img/canvas/video, “repeat”/“no-repeat”/“repeat-x”/“repeat-y”)

    var img = document.getElementsByTagName('img')[0];
    var pt = ctx.createPattern(img, 'repeat');
    ctx.fillStyle = pt;
    ctx.fillRect(0, 0, 500, 500);
    

    它返回了CanvasPattern对象
    定义了填充规则
    除了img标签外,我们还可以填充canvas和video元素
    使用方法是一样的

    #渐变
    与CSS3中的渐变类似
    canvas中的渐变也分为线性渐变和径向渐变
    和图案填充的类似,需要定义我们的渐变规则
    ##线性渐变
    createLinearGradient(x1, y1, x2, y2)
    表示定义从一点到另一点的线性渐变
    返回一个CanvasGradient()对象
    上面有addColorStop()用来定义我们的渐变色
    0就是起始点,1是终点

    var lGradient = ctx.createLinearGradient(0, 0, 0, 250);
    lGradient.addColorStop(0, '#000');
    lGradient.addColorStop(1, '#fff');
    ctx.fillStyle = lGradient;
    ctx.fillRect(0, 0, 500, 250);
    


    注意定义的渐变必须要在渐变区域里才能够显示
    ##径向渐变
    createRadialGradient(x1, y1, r1, x2, y2, r2)
    相比线性渐变,多了两个点的半径参数
    除此之外使用方法和上面是一样的
    就不多做解释了
    比如说我们可以绘制一个渐变同心圆

    var rGradient = ctx.createRadialGradient(250, 250, 100, 250, 250, 250);
    rGradient.addColorStop(0, '#fff');
    rGradient.addColorStop(0.5, '#000');
    rGradient.addColorStop(1, '#fff');
    ctx.fillStyle = rGradient;
    ctx.fillRect(0, 0, 500, 500);
    

    #阴影
    类比于CSS3中的box-shadow属性
    在canvas中我们使用
    shadowColor 定义阴影颜色
    shadowOffsetX/Y 控制阴影偏移量
    shadowBlur 定义阴影模糊半径
    要注意的是
    阴影的偏移量不受坐标系变换影响

    ctx.shadowColor = '#000';
    ctx.shadowOffsetX = 30;
    ctx.shadowOffsetY = 30;
    ctx.shadowBlur = 30;
    ctx.fillStyle= '#f40';
    ctx.fillRect(100, 100, 300, 300);
    

    设置阴影相关属性后才可以使用fillRect绘制带阴影的矩形

    主页传送门

    展开全文
  • 前段时间一直在琢磨vuforia for android ,考虑在这样的情况下:...在vuforia for android中使用的是OPENGL.ES2.0实现各种图形,vuforia会得到一个最终矩阵,把它传入OPENGL,再传入要的图形的坐标,就可以出ar

    前段时间一直在琢磨vuforia for android ,考虑在这样的情况下:世界坐标中有多个物体,选中其中某个物体开始连线到另一个物体,没想到vuforia for android 太坑了,花了很长时间也没有实现。在vuforia for android中使用的是OPENGL.ES2.0实现画各种图形,vuforia会得到一个最终矩阵,把它传入OPENGL,再传入要画的图形的坐标,就可以画出ar的效果,但是得不到经过以上过程后图形的最终坐标,所以点击的时候无法做出点击时间。无奈之下换成vuforia for unity,之前的问题都很容易解决了。

    1.选中物体:在世界坐标下在多个物体中通过点击选中某个物体
    2.拖拽物体:在世界坐标下选中某个物体并让物体跟着手指移动
    3.手指画线:使用linerender,实现手指画线

    选中物体

    void Update () {
            Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
            RaycastHit hit ;
            if (Physics.Raycast(ray, out hit))
            {
    
                Debug.Log("产生碰撞,并且碰撞体的名字是:"+hit.collider.name);
            }
            else {
                Debug.Log("没有碰撞");
            }
        }
    想要点击的物体要添加碰撞体如box collider,如果是sphere,添加sphere collider等。。
    

    拖拽物体:

    using UnityEngine;
    using System.Collections;
    public class DragObject : MonoBehaviour
    {
        private Transform pickedObject = null;
        private Vector3 lastPlanePoint;
        // Use this for initialization
        void Start()
        {
        }
        // Update is called once per frame
        void Update()
        {
            //创建一个平面
            Plane targetPlane = new Plane(transform.up, transform.position);
            foreach (Touch touch in Input.touches)
            {
                //获取摄像头近平面到屏幕触摸点的射线
                Ray ray = Camera.main.ScreenPointToRay(touch.position);
                //获取射线沿着plane的距离
                float dist = 0.0f;
                targetPlane.Raycast(ray, out dist);
                //获取沿着射线在距离dist位置的点
                Vector3 planePoint = ray.GetPoint(dist);
                //Debug.Log("Point=" + planePoint);
                //按下手指触碰屏幕
                if (touch.phase == TouchPhase.Began)
                {
                    RaycastHit hit = new RaycastHit();
                    // 判断是否有碰撞到对象
                    if (Physics.Raycast(ray, out hit, 1000))
                    {
                        pickedObject = hit.transform;
                        lastPlanePoint = planePoint;
                    }
                    else
                    {
                        pickedObject = null;
                    }
                    //选中模型后拖拽
                }
                else if (touch.phase == TouchPhase.Moved)
                {
                    if (pickedObject != null)
                    {
                        pickedObject.position += planePoint - lastPlanePoint;
                        lastPlanePoint = planePoint;
                    }
                    //释放
                }
                else if (touch.phase == TouchPhase.Ended)
                {
                    pickedObject = null;
                }
            }
        }
    }
    给想要拖拽的物体绑定碰撞体,否则上述代码没用
    

    **

    手指画线

    **
    创建一个空物体,添加lienrender组件,修改名字为Line,上个有色材质,再创建一个Plane物体,给Plane添加碰撞体,上个透明材质,这样点击后产生的射线才有可能产生碰撞

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    public class LineHelper3 : MonoBehaviour {
        int lineSeg = 1;
        RaycastHit rh ;
        List<GameObject> pointPos;
        LineRenderer lr;
        GameObject pointer ;
        bool start_point = true;
        void Start()
        {
            pointer = new GameObject();
            gameObject.SetActive(true);
            lr = gameObject.GetComponent(typeof(LineRenderer)) as LineRenderer;
            lr.SetWidth(1f, 1f);
        }
    
        // Update is called once per frame
        void Update()
        {
            if (Input.GetTouch(0).phase == TouchPhase.Began)
            {
                Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                rh = new RaycastHit();
                lr.SetVertexCount(1);
                if (Physics.Raycast(ray, out rh))
                {
                    pointPos.Add(DrawLine(rh, 0));
                }
            }
            if (Input.GetTouch(0).phase == TouchPhase.Moved)
            {
    
                    Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                    rh = new RaycastHit();
                    lr.SetVertexCount(2);
                    if (Physics.Raycast(ray, out rh))
                    {
                        pointPos.Add(DrawLine(rh, 1));
                    }
    
    
            }
            if (Input.GetTouch(0).phase == TouchPhase.Ended)
            {
                start_point = true;
                lr.SetVertexCount(0);
                lr.SetPosition(0, new Vector3(0, 0, 0));
                lr.SetPosition(1, new Vector3(0, 0, 0));
    
            }
    
    
    
        }
    
    
        GameObject DrawLine(RaycastHit pointPos,int start_or_end)
        {
    
            //Display point
            GameObject gb_pointer = GameObject.Instantiate(pointer) as GameObject;
            gb_pointer.transform.position = pointPos.point + (transform.position - pointPos.point) * 0.01f;
            gb_pointer.transform.rotation = Quaternion.LookRotation(pointPos.normal, Camera.main.transform.up);
            Vector3 laserpos = new Vector3();
            laserpos.x = 90.0f;
            laserpos.y = gb_pointer.transform.position.y;
            laserpos.z = gb_pointer.transform.position.z;
            gb_pointer.transform.eulerAngles = laserpos;
            lr.SetPosition(start_or_end, pointPos.point);   //设置目标点的坐标,使用的是world坐标系
            //lineSeg++;
            return gb_pointer;
        }
    
        void DestroyLine()
        {
            int arrayLength = pointPos.Count;
            if (arrayLength > 0)
            {
                GameObject.Destroy(pointPos[arrayLength - 1]);
                pointPos.RemoveAt(arrayLength - 1);
                //lr.SetVertexCount(--lineSeg);
    
            }
        }
    }
    
    展开全文
  • iOS上地图线,线区域内的经纬度坐标点添加大头针 实现在Google地图上用手指可以线的功能,同时地图上的一点(经纬度坐标点)如果在线的区域内,会在这个点落下大头针的功能,类似大众点评的线圈商铺...
  • 实现在Google地图上用手指可以线的功能,同时地图上的一点(经纬度坐标点)如果在线的区域内,会在这个点落下大头针的功能,类似大众点评的线圈商铺的效果 在做了前两篇博客的工作以后,对手指移动...
  • 项目中用到mapabc 绘制矩形区域。客户只能手动选择中心点,并填写区域的宽和高,切单位为... .addAll(createRectangle(marker.getPosition(), 1, 1))//绘制多边形顶点坐标 .fillColor(0x1A1677FF)//填充颜色 .stroke
  • Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。屏幕坐标系和Cocos2d坐标系标准屏幕坐标系...
  • 直接全选可以选到所有的边框,可以同时修改更好看的颜色,我比较喜欢浅灰色的边框比黑色好看 选中一条线后按住shift可以同时多选很多其他线条或者边框,同时...matlab出的图形的所有的东西都是可以直接编辑的 ...
  • 记忆小技巧:都是X轴朝右,Y轴向上,跟平时画坐标一模一样,区别只是Z的朝向。你用试一下就知道了,当大拇指朝右食指朝上时,剩下三指是自然朝手心方向弯曲的,如果反的话很难受。如果忘了的话就想想平时画图,...
  • 应用场景: 最近在开发过程中,有个需求,需要在天地图中线,结束后获取对应的坐标集合,查阅 OpenLayers API 和网上的相关资料后得以实现,特此记录。 因为直线间的点是无数个,我们不可能去获取这线上的所有...
  • 2.利用ginput函数获取坐标位置 3.根据坐标位置绘制图像 涉及知识点: 1.图片文件路径读取 2.图片显示 3.获取指定位置坐标 4.根据坐标在已知图像上绘制轨迹 SamplePath1 = 'F:\shiyan\fire_wirl\7.0kw_00_18.66rpm_5...
  • 右手坐标系如下: X:拇指指向X轴 Y:食指指向Y轴 Z:中指指向Z轴 可能很多人还是记不住,我个人总结两个小技巧,很容易牢记右手坐标系: X、Y、Z的顺序刚好也是对应手指大拇指、食指、中指也是顺序排列的 做...
  • 摘要: x轴:从左指向右 y轴:从下指向上 z轴:指向屏幕里的是左手坐标系,指向屏幕外的是右手坐标系 记忆小技巧: 都是X轴朝右,Y轴向上,跟平时画坐标一模一样,区别只是Z的朝向。你用试一下就知道了,当大拇指...
  • 手势事件touchstart 手指按下 、touchmove 手指移动 、 touchend 手指抬起效果:完整代码:ruler.jsvar ruler = {/*** 初始化刻度尺插件* @el 容器 String* @height 刻度尺高度 Number* @maxScale 最大刻度 Number...
  • 用几何画板怎么三维坐标

    千次阅读 2018-08-28 10:46:00
    几何画板作为专业的绘图软件,可以用来各种数学上的,所以三维坐标轴也是可以的,没有软件的可以访问http://wm.makeding.com/iclk/?zoneid=17783获取。 具体绘制方法如下: 步骤一 添加自定义工具。在广大版友...
  • 起点为手指开始触摸时的坐标,终点为手指触摸结束时的坐标 效果: 组件属性的描述在上一节中描述过了,这里不再赘述。 <canvas class='myCanvas' canvas-id="myCanvas" bindtouchst...
  • Canvas和Konva结合——实现手动标记图像特定位置目标功能,记录坐标,命名后生成xml保存。 canvas将图像绘制到画布中。 实现图像的缩放、旋转、拖拽等基本浏览操作
  • iOS动画折线

    2018-08-16 02:59:07
    效果: 后端传一个数组,然后根据数组生成点的坐标。所以解析下,我们需要的有点,点和点之间的线,以及背景和下面的期数时间。最后我们需要加块有效果的红色块,这块要的效果是可以手指点击和滑动区域这个块就...
  • 实现手动线

    2011-11-21 13:51:10
    为了实现在地图上手动线的功能,煞费了一翻苦心,不过最后实现的方法还是很简单的,...最开始的想法是,通过JavaScript在客户端线,把点的坐标传回到服务器端进行处理。于是颇费了一番周折,在网上搜到一些线的
  • 最新的东莞区域地图数据来了,包括松山湖,纯手工自己使用geojson的,有需要的请自行下载给个好评
  • python.matplotlib实现手动鼠标移动坐标

    千次阅读 多人点赞 2019-06-05 16:03:24
    关键:一定要注意能不能运动,由于坐标轴的设置区间不同,offset的偏差值,一定要对应好。否则,鼠标无法识别中的点,造成无法移动的假象。 ''' 设置:单点的动画移动 ''' def __init__(self): ...
  • ROC曲线手画

    2019-01-02 15:59:00
    绘图过程很简单:给定m个正例子,n个反例子,根据学习器预测结果...设前一个坐标为(x,y),若当前为真正例,对应标记点为(x,y+1/m),若当前为假正例,则标记点为(x+1/n,y),然后依次连接各点。 下面举个绘图例子...
  • 工程实现环境:VS2015,Opencv342 读取一张图片,然后画框 完之后按esc即可退出画框 同时输出img和坐标 再按任意键退出
  • 写在前面:  最近手里有一个项目 项目面向的使用群体是公路管理方 大概的主要功能简概如下 收录正在修建 / 刚刚修建完毕 / 未被第三方地图收录的路线(用户可以手机记录新的路线 收录在自己的平台...上结果  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 404
精华内容 161
关键字:

手画坐标图