精华内容
下载资源
问答
  • tips:使用echarts构建一个半圆环形图

    千次阅读 2019-01-08 15:35:00
    大名鼎鼎echarts中有一些有趣图表,其中饼图(pie)可以衍生出南丁格尔图(玫瑰图),而改变饼图内外半径又可以使饼图变成一个圆环图,于是问题来了,怎么生成一个半圆形圆环图呢?首先我们要了解一下半圆图...
        

    前言

    大名鼎鼎的echarts中有一些有趣的图表,其中饼图(pie)可以衍生出南丁格尔图(玫瑰图),而改变饼图的内外半径又可以使饼图变成一个圆环图,于是问题来了,怎么生成一个半圆形的圆环图呢?首先我们要了解一下半圆图的特点,一个完整的饼图/环形图展示的是各个部分的占比,而半圆环形图则可以直观的展示出某一项占总量的占比,比如说月度用电量占年度用电量的比例。(其实还是项目需求啦)然后,我们要思考如何去实现它,简单的想法,将环形图的下半部分隐藏起来,还是以用电量举例:如果月度用电达到了年度用电的80%,看上去半圆图就满了,显然是不合理的,那么应该如何实现呢,直接上代码,原理还是挺简单的。

    实现过程

        let chart1 = echarts.init(document.getElementById('chart'));
        let current = 25;// 当前用量
        let all = 100;// 总量
        let option = {
            series: [
                {
                    type: 'pie',
                    label: {
                        show: false
                    },
                    center: ['50%', '50%'],
                    radius: ['50%', '70%'],
                    startAngle: 180,
                    data: [
                        {
                            name: '用量',
                            value: current,
                            itemStyle: {
                                color: '#ff9900'
                            }
                        },
                        {
                            name: 'rest',// 实际显示部分是总量-用量
                            value: all - current,
                            itemStyle: {
                                color: 'skyblue'
                            }
                        },
                        {
                            name: 'bottom',
                            value: all,
                            itemStyle: {
                                color: 'transparent'
                            }
                        },
                    ]
                }
            ]
        };
        chart1.setOption(option);
    

    关键之处也就是data的三个部分,第一个代表的是当前用量(下图橘黄色部分),第二个即是下图天蓝色的部分,代表总量减去当前用量,第三部分的值等于总量,颜色透明,其实显示出来就是圆环图的下半部分。这样的话,上半部分的值其实是等于下半部分的值的,整个圆环的总值是两倍的总量。(说白了还是障眼法...)


    11709825-bf7a2d2d3e2efa3f.png
    效果图

    写在后面

    使用echarts也有差不多一年半的时间了,echarts中其实有好多有趣的东西,只要你善于思考联想,很多设计稿上的效果都可以通过图形组合,或者稍稍变通一下来实现。不过echarts本身有些细节还需要完善,就拿这个环形图来说吧,ui稿其实是这样的:


    11709825-86df2858a522763e.png
    设计图

    目前就我所知,echarts还不能实现这种圆角的效果。。。有些美中不足吧(不过使用highcharts可以绘出圆角环形图)

    展开全文
  • HoughCircle与一般拟合算法

    千次阅读 2018-11-09 13:40:36
    缺点:原始的Hough变换找圆,计算很大,而且如果对查找圆的半径不加控制,不但运算巨大,而且精度也不足,在输入噪声点不多的情况下,找圆效果远不如拟合找圆;为了提高找圆精度,相比拟合法,需要提供更多的...

    HoughCircle对噪声点不怎么敏感,并且可以在同一个图中找出多个圆;

    拟合圆算法,单纯的拟合结果容易受噪声点的影响,且不支持一个输入中找多个圆


    缺点:原始的Hough变换找圆,计算量很大,而且如果对查找圆的半径不加控制,不但运算量巨大,而且精度也不足,在输入噪声点不多的情况下,找圆效果远不如拟合找圆;为了提高找圆精度,相比拟合法,需要提供更多的参数加以控制,参数要求比较严格,且总体稳定性不佳

     

    Ref:找圆算法((HoughCircles)总结与优化

    展开全文
  • 展开全部行字的长度e69da5e6ba...在CDR里算出圆的半径,在手绘工具里有度量工具,选中水平度量工具,在圆的中心到它的边缘就是半径,就算出周长,得到圆的周长就可以调整字的...

    展开全部

    一行字的长度e69da5e6ba903231313335323631343130323136353331333431373261放到圆上面也是一样的长,一行字把它做成一个圆圈的周长也就是拉直的长度一样,先算出圆的周长,它周长是 半径x2x3.14=周长。

    在CDR里算出圆的半径,在手绘工具里有个度量工具,选中水平度量工具,在圆的中心量到它的边缘就是半径,就算出周长,得到圆的周长就可以调整字的长度要和圆的周长一样长。

    在CorelDraw软件中,给其群组中的单个对象着色的最快捷的方法是把屏幕调色板上的颜色直接拖拉到对象上。

    同样的道理,拷贝属性到群组中的单个对象的捷径是在用户拖拉对象时按住鼠标右键,而此对象的属性正是用户想要拷到目标对象中去的。当用户释放按钮时,程序会弹出一个右键显示菜单,在菜单中用户可以选择自己想要拷贝的属性命令。

    扩展资料:

    CorelDRAW基本图形绘制、预设形状使用、铅笔、钢笔贝塞尔曲线精确绘图

    CorelDRAW对图形进行造形、变换、对齐分布、布尔运算等操作CorelDRAW对图形进行修饰操作(单色、渐变、图纹、材质、网格等)

    CorelDRAW文字操作与文字排版

    CorelDRAW高级工具使用技巧(调和、轮廓图、封套、立体、透明、列表等)

    CorelDRAW效果和位图操作

    CorelDRAW捆绑子程序应用(PhotoPaint、CAPTURE、TRACE、DuplexingWizard、SBProfiler)。

    展开全文
  • 算法((HoughCircles)总结与优化

    千次阅读 2018-11-07 16:52:20
    Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle与一般的拟合圆算法比起来,各... 缺点:原始的Hough变换找圆,计算很大,而且如果对查找圆的半径不加控制,不但运算巨大,而且精度也不足,在...

    Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle与一般的拟合圆算法比起来,各有优势:优势:HoughCircle对噪声点不怎么敏感,并且可以在同一个图中找出多个圆;反观拟合圆算法,单纯的拟合结果容易受噪声点的影响,且不支持一个输入中找多个圆
    缺点:原始的Hough变换找圆,计算量很大,而且如果对查找圆的半径不加控制,不但运算量巨大,而且精度也不足,在输入噪声点不多的情况下,找圆效果远不如拟合找圆;为了提高找圆精度,相比拟合法,需要提供更多的参数加以控制,参数要求比较严格,且总体稳定性不佳
        OpenCV内的HoughCircles对基础的Hough变换找圆做了一定的优化来提高速度,它不再是在参数空间画出一个完整的圆来进行投票,而只是计算轮廓点处的梯度向量,然后根据搜索的半径R该梯度方向距离轮廓点距离R的两边各投一点,最后根据投票结果图确定圆心位置,其示意图如图1
     

    图1是比较理想的情况,轮廓点1-6的梯度方向都经过了点7,因此都给点7投了一票,点7得分最高,也正是我们所要找的圆心;同时由此可以看出基于参数空间投票法来确定圆心,8-12点就算有投票,但由于投票太散,对整个投票结果也几乎不存在干扰,因而其天生抗干扰能力要比拟合法好
    不过在这种思想优化下,也存在致命的缺陷,如图2:
     

    实际情况是该点算出的梯度方向其实总是有误差的,有时因为图像原因或结构原因,偏差甚至超过30度;图2中由于梯度方向不精确,7点基本没有获得投票,反而不如ABC点。因此实际使用中HoughCircle的效果并没有想象中的理想,情况往往如下列所述:
    (参与投票的轮廓点如图3的右图,噪点非常多,比想要查找的轮廓本身还多,而且断断续续的,显然这种情况拟合法不适用)
    1、半径范围限定不好时,如图3,可能找到的圆非常多且杂乱无章
     
    2、在此情况下,如果只输出一个圆(Opencv的HoughCircle会默认按照投票结果的累加值排序,最好的圆是这样的,竟然差这么多
     

    3、假设我们找的东西的半径我们是知道的,变化不大(+-8%),现在限定下半径。。。找出的排的靠前的圆是这样的;再看下默认最好的圆。。。
     半径好像接近了一点,还是好坑爹啊。。。

    4、常规来说,使用该函数的时候,为避免找到太多的几乎重合的圆,找圆的最小距离都设在一个比较合理的值(比如大于半径1/5),这样在找多个圆的时候,就不会找出太多重合的圆了;不过这里我试下不限制最小距离,如下,默认排序下得分最高的几个圆如左图:
     貌似默认最好的圆并没有任何改善

        很多初次使用该函数的看到这,或许就就觉得HoughCircles效果不咋地。。。本人刚开始使用时也感觉Opencv提供的这个算法太不稳定了,只能对某一个图调出相对好一点的效果,换一个图或者只改动其中某一个参数,找出来的圆就不知道跑哪去了,而且变化太大了。。。
        观察细心的可能发现了,第4步中的左图找出的众多圆其实已经比前面找出的圆靠谱很多了,而且这么多圆必定有一个圆就是我想要找的圆,只是按照投票分数排序下,最好的圆偏差较大。
        但究其算法优化本身,轮廓梯度定位出来的圆心投票本来精度就低(如图2),自然找出来的圆会有很多是错误的,但如果轮廓点足够多,找出的正确的圆必定也是存在的,只是按照票数方法来评价可能排序会比较靠后,但毕竟也是出现了的;此处只需做个小小的优化,改下评价方法,优化下排序,结果就很接近了
         这是经过优化排序方法后找出的最好的圆
        找出来的圆中与实际轮廓重合度最高的圆一般就是我们要找的圆;因此我们可以通过HoughCircles来找出一批差不多的圆(如步骤4),然后画出这些圆,和实际轮廓比对一下,按实际重合像素的总数排序,这时分数最高的圆就如上面的结果图!HoughCircles优化一下还是很给力的!

        附件为本算法优化源码,有兴趣的可以一起来进一步优化(qq:970117454)
        注:如果编译通过,但运行时崩溃,通常原因是库版本不对!一般OpenCV官方给出的库版本分x86,x64,而每个平台下又有vc10,vc11,vc12,分别对应VS2010,VS2012,VS2013;其下还分debug版和release版,必须严格与编译环境和使用的配置相对应,否则会在运行过程中出错,且非常不好排查原因
         另该优化目前只能做到减少HoughCirlcles找错圆且错的比较离谱的几率,但无法真正提高精度,找出来的圆与实际圆稍有偏差还是有可能的;若需要高精度定位,建议采用该方法做粗定位,采用拟合圆做精定位(类似各商业算法中的环形区域找圆)








     

    最终优化结果.jpg (60.1 KB, 下载次数: 545)

    最终优化结果

    最终优化结果

    原图.jpg (42.22 KB, 下载次数: 1146)

     

    测试原图

    测试原图

    ExtendHoughCircle.cpp

     

    13.8 KB, 下载次数: 12474

     

    ExtendHoughCircle.h

     

    965 Bytes, 下载次数: 6399

     

    Main.cpp

     

    547 Bytes, 下载次数: 5117

    展开全文
  • Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle...反观拟合圆算法,单纯的拟合结果容易受噪声点的影响,且不支持一个输入中找多个圆缺点:原始的Hough变换找圆,计算很大,而且如果对查找圆的半径...
  • C#方法声明与调用

    2018-10-18 23:11:45
    一:为什么会提出方法这一概念?...既然算法输入都一样我们能不能有一种方法,只给他一个半径他就能完成计算输出呢,方法就应运而生,方法可以是一个可以重复利用方法体这样更加方便,代码更少。 二:...
  • 首先希望大家不要被逼格甚高名字吓到。...一种很简单方法是投针实验:画一个半径已知的圆,再画一个外切正方形,然后随机丢一根针,丢无数次,统计出针落入概率P,再经过简单运算(P=π/4...
  • 一个是地图类:Map,一个是视窗类:Frame,地图类就是整个大地图抽象,视窗类就是可视界面抽象。 而怎么做成蛇动时候,绘制位置不动,而是地图动呢。其实原理也很...
  • 螺旋插补一周,刀具Z向负方向走一个螺距。编程原理:G02 Z-2.5 I3.Z-2.5等于螺距为2.5mm假设刀具半径为5mm则加工M16右旋螺纹优势使用了三轴联动数控铣床或加工中心进行加工螺纹,相对于传统螺纹加工1、如螺距为...
  • Euclidean Geometry

    2017-04-22 19:55:10
    SK同学随意画了一个三角形然后用尺子了一下,发现三边长分别为,然后SK同学拿起圆规分别以三个顶点为圆心画了三个圆,为了使图形看上去更美观,这三个圆两两不相交也互不包含,这里认为圆的半径可以是(称之为“点...
  • SK同学随意画了一个三角形然后用尺子了一下,发现三边长分别为a,b,c,然后SK同学拿起圆规分别以三个顶点为圆心画了三个圆,为了使图形看上去更美观,这三个圆两两不相交也互不包含,这里认为圆的半径可以是0(称之...
  • 计算机不会有那么多内存给你,并且越小,计算越大,想想一个点就需要映射那么多次,每次映射是需要计算,耗时。那么再想想对于一副图像所有点都进行映射,随便假设一副100*100图像(很小吧),就有10000个...
  • 我做好了一个欢迎界面,并且做了下按钮触发,里面什么都还没有,我这边有一个游戏主程序,应该怎么样才能合理添加进去呢? 添加结果就是 点击这个按钮 就进入这个主程序。下面是代码 这个是我欢迎界面代码...
  • ANsys workbench过盈应力求解设置

    千次阅读 2018-12-04 16:26:01
     问题描述:一个圆环与空心轴过盈连接,过盈2毫米(半径方向)求圆环与轴最大变形,和最大等效应力。 几何模型:模型通过WB DM(DesignModeler)绘制。如下图所示。从外到内,直径依次是100,70,45mm。拉伸厚度...
  • 可以基于数据库去做,给定一个坐标,以这个坐标为半径r, j使用sql选出近似圆的的元素进行展示。 select id from positions where x > x0-r and x < x0+r and y < y0+r and y> y0-r 但是如果访问非常大...
  • my2 为我们新建对话框类一个对象,但是my2 我们还没有定义,所以 在widget.h 文件中添加相应代码,如下,先加入头文件,再加入my2 定义语 句,这里我们将其放到private 里,因为一般函数都放在public 里,而...
  • 使用具有不同方差值sigma高斯拉普拉斯算子(LoG)对图像进行卷积,LoG由于具有不同方差值sigma所以可以用来检测不同大小斑点,简单来说方差sigma就是一个尺度变换因子,使用一个小方差sigma高斯卷积核可以很...
  • 运动中圆环,是不断随机更改控制点坐标,并为起始点添加偏移量的结果,这是一个不断调试过程…,需要不断调整控制点来控制凸起幅度,很难找到一个完美效果。 嵌套滑动 这是当前阶段效果,后续...
  • 下面是代码 可其中出现了一个错误(做了标记),不知道怎么解决,可否有高手帮我看看,能不能稍作修改一下,做成正确。 就是这句错了 myview = new BallView(this); package sen.tan; import ...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

怎么量一个圆的半径