精华内容
下载资源
问答
  • swing 画平滑曲线

    千次阅读 2017-07-16 22:41:52
    swing 画平滑曲线
    package zhipu.trial.graph;
    
    import zhipu.main.Entrance;
    
    import javax.swing.*;
    
    import java.awt.*;
    import java.awt.geom.GeneralPath;
    import java.util.ArrayList;
    import java.util.List;
    
    public class DrawChartDemo extends JPanel {
        private Float[] values =  new Float[]{0.00476401629000442f ,
                0.0063234711479510904f,
                0.021695992320743099f,
                0.0087923714104826394f,
                0.016055573626994599f,
                0.013452284007208701f,
                0.0055611602146519801f,
                0.0069146150381687596f,
                0.0036230541986219198f,
                0.0061674043426179301f,
                0.00434440023492552f,
                0.035138205238166999f,
                0.0143897055961933f,
                0.016811934089353098f,
                0.0178861993959042f,
                0.0087641654315109407f,
                0.0102057457561573f,
                0.0073624585142180602f,
                0.272971583614874f,
                0.0548574538534378f,
                0.016955049412583498f,
                0.0051184965677307202f,
                0.0033135295393096199f,
                0.0059344633867462002f,
                0.0039347395484018001f,
                0.00348367923743807f,
                0.026377286849230099f,
                0.036832070301518f,
                0.0056683752431168398f,
                0.0047084728862943504f,
                0.0050807108798568996f,
                0.0105448869266738f,
                0.0056977138353234702f,
                0.085602792538286607f,
                0.0043054151148011997f,
                0.0061197850778468496f,
                0.0144032602561065f,
                0.0098497881084309603f,
                0.0065389022201078504f,
                0.0079793910312075996f,
                0.15023645197019f,
                0.0068558337838472202f,
                0.00388789967772707f,
                0.0019588905560046599f,
                0.00813157867268848f,
                0.0181800097326743f,
                0.0179981531868081f,
                0.120687865774082f,
                0.031901241417862901f,
                0.0059096372433688803f,
                0.039816888009691f,
                0.0022180602796087298f,
                0.0020421521163729701f,
                0.0029398192573330999f,
                0.0090383331308239393f,
                0.069211309213069394f,
                0.111332699808443f,
                0.044655161421859497f,
                0.0057869308391771297f,
                0.0041646558052810603f,
                0.0019861723474547599f,
                0.0038429991850212901f,
                0.0064167275578309001f,
                0.0583319986899676f,
                0.029744027162729499f,
                0.0120586137993033f,
                0.13488486713846501f,
                0.046035790422276901f,
                0.015785314062179999f,
                0.0039932783490598603f,
                0.0081173362329025698f,
                0.101646122607811f,
                0.27943278350252698f,
                0.0150728510109874f,
                0.013116721411450901f,
                0.0092261367320127692f,
                0.026218708859473899f,
                0.00282953555265384f,
                0.0044117373389137102f,
                0.00260404985014934f,
                0.0019293731880499201f,
                0.00190464973226343f,
                0.0038443276152136602f,
                0.034056811633866202f,
                1f,
                0.094481973471835803f,
                0.056033417554237797f,
                0.018825637176542499f,
                0.012730403947311f,
                0.0065964488004084604f,
                0.0126633133100138f,
                0.0080601022249829398f,
                0.0089431644768543598f,
                0.025988444047573799f,
                0.025109531649443f,
                0.113067555237683f,
                0.026435961558734799f,
                0.070132172326724307f,
                0.0044758225616537703f,
                0.0059336269122534204f,
                0.0036456993373522898f,
                0.0118958563883495f,
                0.0575133588137191f,
                0.015350604576100499f,
                0.0040318661392891499f,
                0.0032193573469880901f,
                0.0088850481743988092f,
                0.023877330732745498f,
                0.011155327017979f,
                0.0083402368409935708f,
                0.0573569045895874f,
                0.69517440147232901f,
                0.094371184910862896f,
                0.071074104420728201f,
                0.036956650045186501f,
                0.0173215382293214f,
                0.0082548025110114592f,
                0.00575279184699701f,
                0.0212456696437636f,
                0.0090010269608339806f,
                0.016338080136423599f,
                0.102902209055831f,
                0.0078924297946662402f,
                0.0074607529655075604f,
                0.0091213387724318404f,
                0.0021516241375805099f,
                0.043235898066084501f,
                0.0025994439364933199f,
                0.020705025675201501f,
                0.0032286088255712199f,
                0.0050739272892518896f,
                0.0077606155122827997f,
                0.24031502163576099f,
                0.0361153446322387f,
                0.010647914836661301f,
                0.0034358292189724002f,
                0.0034736207897978801f,
                0.00342349287658111f,
                0.0027815949551543298f,
                0.21694338263132201f,
                0.026700254130092999f,
                0.0247184156591739f,
                0.019277156255502199f,
                0.061541706635920297f,
                0.014204979551463199f,
                0.098758600131271204f,
                0.0109810452672438f,
                0.011093174362075801f,
                0.0035773478807027402f,
                0.024341837124427598f,
                0.095577421992731795f,
                0.068092147724430493f,
                0.025021579201069202f,
                0.126686929940758f,
                0.0274313458782336f,
                0.0021874701261044402f,
                0.0018053147965141801f,
                0.0047045163060877001f,
                0.060906978228009202f,
                0.013506145600343401f,
                0.057883280380810802f,
                0.0135282913118019f,
                0.133110570121451f,
                0.0196209073352617f,
                0.0081105463525148799f,
                0.0166649644250235f,
                0.119949170146833f,
                0.35597758971746102f,
                0.086355513768921199f,
                0.020482876765933199f,
                0.014151643764207401f,
                0.0080725779012815208f,
                0.0038027676021578499f,
                0.015995267888023499f,
                0.0024399349293019101f,
                0.0065235374981799004f,
                0.0051175119611385602f,
                0.051700471945563202f,
                0.0116097754442507f,
                0.024850592780722301f,
                0.0073334465479829398f,
                0.0282795436228921f,
                0.0071780000763853003f,
                0.0047777663463222002f,
                0.0073803493784771702f,
                0.0043306186181200097f,
                0.0064184788227479601f};
    
        List<GeneralPath> paths =new ArrayList<GeneralPath>();
        int maxindex=0;
        float maxvalue=-1;
        int heith=100;
        public DrawChartDemo() {
    
            int startY=0;
            int endY=0;
            for (int j = 0; j <5; j++) {
    
                Float[] points=values.clone();
                startY=j*heith;
                endY=(j+1)*heith;
    
                GeneralPath path = new GeneralPath();
    //        path.lineTo(0,100);
    //        path.lineTo(0, heith-points[0]);
                int index = 0;
                int indexnext = 0;
                for (int i = 0; i < points.length - 1; ++i) {
                    points[i] *= heith;
                    if (points[i] > maxvalue) {
                        maxvalue = points[i];
                        maxindex = i;
                    }
                }
                path.moveTo(0, endY - points[0]);
                for (int i = 0; i < points.length - 1; ++i) {
                    index = i * 5;
                    indexnext = (i + 1) * 5;
                    float sp = points[i];
                    float ep = points[i + 1];
    //            Point c1 = new Point((i + i+1)/2, sp);
    //            Point c2 = new Point((i + i+1)/2, ep);
                    path.curveTo((index + indexnext) / 2, endY - sp, (index + indexnext) / 2, endY - ep, (index + 5), endY - ep);
                    if (maxindex == i) {
    
    //                path.lineTo((index+indexnext)/2,100);
    //                path.lineTo((index+indexnext)/2, heith-ep);
                    }
                }
                paths.add(path);
            }
        }
    
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2d.setStroke(new BasicStroke(1));
            g2d.translate(40, 40);
            int gsize = paths.size();
            for (int j = 0; j < gsize; j++) {
                g2d.setColor(Color.blue);
                g2d.draw(paths.get(j));
                g2d.setColor(Color.red);
                g2d.drawLine(maxindex*5,heith,maxindex*5,0);
            }
    
    //        for (int i = 0; i < points.length; ++i) {
    //            g2d.setColor(Color.GRAY);
    //            g2d.fillOval(points[i].x-4, points[i].y-4, 8, 8);
    //            g2d.setColor(Color.BLACK);
    //            g2d.drawOval(points[i].x-4, points[i].y-4, 8, 8);
    //        }
        }
        private static void createAndShowGui() {
            JFrame frame = new JFrame("Smooth Curve");
            frame.setContentPane(new DrawChartDemo());
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(820, 280);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    Entrance.startTime=System.currentTimeMillis();   //获取开始时间
                    createAndShowGui();
    
                    Entrance.endTime=System.currentTimeMillis();   //获取开始时间
                    System.out.println("程序启动时间: " + (Entrance.endTime - Entrance.startTime) + "ms");
                }
            });
        }
    }
    展开全文
  • 使用插值法平滑曲线。能够简单实现。 希望对各位有需要的朋友有所帮助
  • 主要为大家详细介绍了python使用插值法平滑曲线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 画平滑曲线(插值): values = spcrv([[x(1) x x(end)];[y(1) y y(end)]],3); plot(values(1,:),values(2,:)) 曲线加粗: plot(values1(1,:),values1(2,:),'LineWidth',3);

    画平滑曲线(插值):

    values = spcrv([[x(1) x x(end)];[y(1) y y(end)]],3);
    plot(values(1,:),values(2,:))


    曲线加粗:

    plot(values1(1,:),values1(2,:),'LineWidth',3);

    展开全文
  • 经过多点 画平滑曲线

    2019-02-28 14:26:47
    在软件中使用了teechart5.0 控件,编译前请先安装控件后使用。找了好多种方法,最后只有一种实现了。类文件可以根据实际情况进行修改
  • 2)标记是否拖拽线模式变量 isDrawing,在down事件时置为true,up的时候置为false 3)使用canvas的api,设置线条样式,调用绘制线条接口lineTo方法 短短几十行代码就能实现: <!doctype html> <html> &...
  • 易语言绘制过点平滑曲线源码,绘制过点平滑曲线,画平滑曲线,直线组,GdiPlus初始化,GdiPlus销毁,GdiplusShutdown,GdiplusStartup,GdipCreateFromHWND,GdipDeleteGraphics,GdipCreatePen1,GdipDeletePen,...
  • Qt画平滑曲线

    千次阅读 2013-12-23 13:01:40
    初学Qt绘图,使用drawling()绘制的直线在两端点间距离较小时总是出现折点(锯齿),非常不美观。...//平滑直线 pen.setPen(QPen(Qt::black,1,Qt::SolidLine,Qt::RoundCap,Qt::MiterJoin));

    初学Qt绘图,使用drawling()绘制的直线在两端点间距离较小时总是出现折点(锯齿),非常不美观。

    后来发现使用QPainter::setRenderHint(QPainter::Antialiasing);能消除锯齿。setRenderHint用于设置呈现样式,Antialiasing是反锯齿。

    例:

    QPainter pen(this);//创建画笔并将画笔传到设备上
    pen.setRenderHint(QPainter::Antialiasing);//平滑直线
    pen.setPen(QPen(Qt::black,1,Qt::SolidLine,Qt::RoundCap,Qt::MiterJoin));
    展开全文
  • 在用python绘图的时候,经常由于数据的原因导致出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理:实现所需的库numpy、scipy、matplotlib插值法实现...

    在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理:

    实现所需的库

    numpy、scipy、matplotlib

    插值法实现

    nearest:最邻近插值法 zero:阶梯插值 slinear:线性插值 quadratic、cubic:2、3阶B样条曲线插值

    拟合和插值的区别

    插值:简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点。

    拟合:拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点。

    代码实现

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38import

    matplotlib.pyplot as plt

    import

    numpy as np

    from

    scipy import

    interpolate

    #设置距离

    x

    =np.array([0,

    1,

    1.5,

    2,

    2.5,

    3,

    3.5,

    4,

    4.5,

    5,

    5.5,

    6,

    6.5,

    70,

    8,

    9,10])

    #设置相似度

    y

    =np.array([0.8579087793827057,

    0.8079087793827057,

    0.7679087793827057,

    0.679087793827057,

    0.5579087793827057,

    0.4579087793827057,

    0.3079087793827057,

    0.3009087793827057,

    0.2579087793827057,

    0.2009087793827057,

    0.1999087793827057,

    0.1579087793827057,

    0.0099087793827057,

    0.0079087793827057,

    0.0069087793827057,

    0.0019087793827057,

    0.0000087793827057])

    #插值法之后的x轴值,表示从0到10间距为0.5的200个数

    xnew

    =np.arange(0,10,0.1)

    #实现函数

    func

    = interpolate.interp1d(x,y,kind='cubic')

    #利用xnew和func函数生成ynew,xnew数量等于ynew数量

    ynew

    = func(xnew)

    #

    原始折线

    plt.plot(x,

    y, "r",

    linewidth=1)

    #平滑处理后曲线

    plt.plot(xnew,ynew)

    #设置x,y轴代表意思

    plt.xlabel("The

    distance between POI  and user(km)")

    plt.ylabel("probability")

    #设置标题

    plt.title("The

    content similarity of different distance")

    #设置x,y轴的坐标范围

    plt.xlim(0,10,8)

    plt.ylim(0,1)

    plt.show()

    绘制后的曲线,红色是未进行平滑处理的折线,蓝色是进行平滑处理之后的曲线 cpc30

    注意事项

    x, y为原来的数据(少量) xnew为一个数组,条件:x??xnew

    如:x的最小值为-2.931,最大值为10.312;则xnew的左边界要小于-2.931,右边界要大于10.312。当然也最好注意一下间距,最好小于x中的精度 func为函数,里面的参数x、y、kind,x,y就是原数据的x,y,kind为需要指定的方法 ynew需要通过xnew数组和func函数来生成,理论上xnew数组内的值越多,生成的曲线越平滑

    展开全文
  • matlab画平滑曲线的两种方法

    千次阅读 2017-01-06 21:52:51
    自然状态下,用plot的是折线,而不是平滑曲线。 有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。 clc...
  • 提取Tensorboard的loss曲线平滑

    千次阅读 2020-12-15 17:36:31
    tensorboard中的loss曲线在网页中可以通过设置平滑参数,出比较漂亮的曲线,但是平滑后的曲线是没办法直接提取出来的 这里我们直接从tensorboard的页面中点击Show data download links,然后把曲线的csv文件下载...
  • 本附件是一个Excel文档 ...里面的公开的VBA代码可以计算贝塞尔曲线的任意插值,即EXCEL画平滑曲线散点图的方法 附件并详细描述了这一算法,用户可以自行在其他语言实现。 本附件原创作者为 EXCELHOME.NET 的 海底眼
  • Qt用算法画平滑曲线(cubicTo)

    万次阅读 2018-03-23 21:45:50
    Qt 中可以使用 QPainterPath::cubicTo() 函数绘制如下的平滑曲线 函数原型:void QPainterPath::​cubicTo(const QPointF &amp; c1, const QPointF &amp; c2, const QPointF &amp; endPoint) 使用C1...
  • 因最近需要对多个无规则的点规划出一条圆滑曲线,现找到的方法是使用贝塞尔曲线进行规划。在此,先简单了解了一下贝塞尔曲线的知识,具体知识转至:...
  • 自然状态下,用plot的是折线,而不是平滑曲线。 有两种方法可以画平滑曲线,第一种是拟合的方法,第二种是用spcrv,其实原理应该都一样就是插值。下面是源程序,大家可以根据需要自行选择,更改拟合的参数。 clc...
  • (3)再观察蓝色线上可看出,有一点在这做差值运算,最终轨迹曲线。 using System . Collections ; using System . Collections . Generic ; using UnityEngine ; //简单来说,贝塞尔曲线就是对多个...
  • canvas出来的线条存在锯齿,不够平滑。这篇文章主要介绍了canvas进阶之如何平滑曲线,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 和贝塞尔曲线是怎样在通过每两个节点的(每一对输入的X-Y数值代表平面坐标系的一个点,称为节点,Excel的平滑曲线通过每一个节点) 要在其他Excel文档使用 BezireInt() 函数,需要按Alt+F11,双击模块一 复制所有文字 ...
  • 源码LxThroughPointsBezier,这个库主要通过设定几个点来平滑的贝塞尔曲线,可调整曲线的弯曲程度。
  • 关于贝塞尔曲线知识(请具体阅读...直接拿三阶贝塞尔曲线为例,首先观察下图: 从图中可以看出,只有四个点是保持不变的,分别是P0,P1,P2,P3,这四个点两两相连得到三个线段 (1)在上四点构成的三个线段中,p
  • 根据传入的多个点,绘制一条线,可以选择是平滑的曲线还是折线,平滑曲线的实现是通过三次样条插值法进行的。曲线的绘制,有一个渐显的动画。
  • 众所周知想用canvas一条曲线我们可以使用这些函数: 二次曲线:quadraticCurveTo(cp1x, cp1y, x, y) ...但是如果一组点给你,怎么通过这些已知点画一条平滑曲线呢?使用二次曲线,或是圆弧?恐怕这些都...
  • 直接拿三阶贝塞尔曲线为例,首先观察下图: 从图中可以看出,只有四个点是保持不变的,分别是P0,P1,P2,P3,这四个点两两相连得到三个线段 (1)在上四点构成的三个线段中,p0-p1上有到一个点,
  • 画平滑的roc曲线

    千次阅读 2018-07-15 19:16:16
    使用matlabroc曲线本来malab曲线的平滑有2种方法clc,clear; a = 1:1:6; %横坐标 b = [8.0 9.0 10.0 15.0 35.0 40.0];...%第一种,画平滑曲线的方法 c = polyfit(a, b, 2); %进行拟合,c为2次拟合后的系数 d = poly...
  • 请看:https://blog.csdn.net/qq_40194498/article/details/79672908
  • 易语言源码易语言绘制过点平滑曲线源码.rar 易语言源码易语言绘制过点平滑曲线源码.rar 易语言源码易语言绘制过点平滑曲线源码.rar 易语言源码易语言绘制过点平滑曲线源码.rar 易语言源码易语言绘制过点平滑曲线...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,317
精华内容 7,326
关键字:

平滑的曲线怎么画