遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

统计

绘制贝塞而曲线

辅助函数

复制代码
        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
复制代码

 

posted on   遗忘海岸  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2020-05-16 RBF神经网络--Matlab newrbe函数
2019-05-16 最长游程问题
2013-05-16 一个错误记录类&一个序列化配置文件读取类
点击右上角即可分享
微信分享提示