首页 > 其他分享 >绘制贝塞而曲线

绘制贝塞而曲线

时间:2024-05-16 09:30:29浏览次数:19  
标签:曲线 PointF float Pow 贝塞 pf var new 绘制

辅助函数

        private Pen redPen = new Pen(Color.Red, 2);

        public static PointF Multi(Point p, float fac)
        {
            var pf = new PointF();
            pf.X = p.X * fac;
            pf.Y = p.Y * fac;
           
            return pf;
        }
        public static PointF Adds(params PointF[] ps)
        {
            var pf = new PointF();
            foreach (var it in ps)
            {
                pf.X += it.X;
                pf.Y += it.Y;
            }
            return pf;
        }
        public static float Pow(double v, double n)
        {
            return (float)Math.Pow(v,n);
        }
View Code

按参数方程计算点

                var p0 = new Point(180, 10);
                var p1 = new Point(140, 30);
                var p2 = new Point(180, 360);
                var p3 = new Point(150, 400);
                //dc.DrawBezier(redPen, p0,p1,p2,p3);

                
                var points4Bezier = new PointF[100];
                for (int i = 0; i < 100; i++)
                {
                    var t=0.01 * i;
                    var p =Adds(
                        Multi(p0, Pow((1 - t), 3)) , 
                        Multi(p1, 3f * (float)t * Pow((1 - t),2) ) , 
                        Multi(p2, Pow(t, 2) * 3f * (float)(1 - t)) , 
                        Multi(p3, Pow(t, 3)) 
                        );
                    points4Bezier[i] = p;
                }
                dc.DrawCurve(redPen, points4Bezier);
View Code

 

标签:曲线,PointF,float,Pow,贝塞,pf,var,new,绘制
From: https://www.cnblogs.com/wdfrog/p/18195307

相关文章

  • 使用joinjs绘制流程图(九)-实战-绘制流程图+节点路径自定义升级版
    效果图自定义路径设计本示例假设当前节点和其他节点不在同一纵坐标的情况下代码<template><divclass="app"><divref="myholder"id="paper"></div></div></template><script>import*asjointfrom'@joint/......
  • QT5.0_TensorBoard相关曲线解读
    TensorBoard生成的各种可视化图表可以帮助你解读和分析训练过程中的不同指标。以下是对一些常见图表的解释:1.损失曲线(LossCurve)损失曲线显示了训练过程中的损失(loss)随时间的变化情况。一般会有两条曲线:训练损失和验证损失。训练损失(TrainingLoss):反映模型在训练数据上的表......
  • 使用joinjs绘制流程图(八)-实战-绘制流程图+节点路径自定义
    效果图代码<template><divclass="app"><divref="myholder"id="paper"></div></div></template><script>import*asjointfrom'@joint/core'import$from'jque......
  • 地理信息系统(GIS)的创新应用:绘制未来世界的智慧蓝图
    在信息爆炸的时代,地理信息系统(GIS)作为连接空间数据与决策制定的桥梁,正以其独特魅力在各行各业绽放异彩。GIS不再局限于传统的地图制作和资源管理,它正以创新的方式融入我们的生活,重塑着我们理解世界的方式。今天,就让我们一起探索GIS在不同行业和研究领域的新用途,感受它如何描绘出一......
  • FlexibleButton - 一个小巧灵活的C语言按键处理库+SerialChart - 能将串口数据实时绘
    1、FlexibleButton-一个小巧灵活的C语言按键处理库FlexibleButton是一个基于标准C语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。项目主页:https://github.com/murphyzhao/FlexibleButton该按键库解耦了......
  • Origin2022中文版绘制套娃式柱形图,大柱套小柱!
    柱形图是科研中常用的图表之一,为了同时展示分数据与总数据之间的趋势分布,我们可以采用大柱形图(总数据)嵌套小柱形图(分数据)的展示方式,使图表更清晰直观,下面给大家分享如何制作套娃式柱形图;操作步骤:1、先打开Origin2022软件,然后在Book1中输入如下示例数据:2、选中A-D列的数据:......
  • geopandas:Python绘制数据地图
    https://mp.weixin.qq.com/s/Nq5Ygy0axI83H2dclU56yQGeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。GeoPandas的官方文档地址为:GeoPandas-doc。本......
  • 手写绘制
    importcv2importnumpyasnpimportpygamefrompygame.localsimport*#初始化Pygamepygame.init()screen=pygame.display.set_mode((640,480))pygame.display.set_caption("HandwritingwithFinger")#设置画笔参数WHITE=(255,255,255)BLACK=(0,0......
  • 如何根据二叉树遍历结果快速绘制二叉树
    一、已知前序遍历和中序遍历(1)前序遍历(根结点--->左子树--->右子树)ABDGHCEIF(2)中序遍历(左子树--->根结点--->右子树)GDHBAEICF注意:在最后连接二叉树时,注意先完玩左子树,再连右子树二、已知前后序遍历和中序遍历(1)后序遍历(左子树--->右......
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点-转载
    [数据分析与可视化]Python绘制数据地图3-GeoPandas使用要点 本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。Ge......