首页 > 系统相关 >绘制Bezier曲线(Windows GDI)

绘制Bezier曲线(Windows GDI)

时间:2023-06-03 20:00:29浏览次数:41  
标签:曲线 Windows 绘制 Bezier 贝塞尔 int Points GDI pts

本文仅记录绘制贝塞尔曲线的代码写法,不解释贝塞尔曲线本身。

若要了解贝塞尔曲线本身你需要具备一些基础知识:

  1. 基本空间几何知识
  2. 排列组合常用等式
  3. 贝塞尔曲线的数学表达式
  4. 了解Bernstein基函数
  5. 贝塞尔曲线的各种绘制方法

本文使用递推方法绘制。就像这图上显示的:

代码的核心部分大致是:

MoveToEx(hdc, Points[0].x, Points[0].y, NULL);
for (double t = 0.0; t <= 1.0; t += T_STEP) {
    POINT p = PointOnBezierAt(t);
    LineTo(hdc, p.x, p.y);
}
POINT PointOnBezierAt(double t){
    std::vector<POINT> pts(Points);
    for (int k = Points.size() - 1; k > 0; k--) {
        for (int i = 0; i <  k; i++) {
            pts[i].x = (LONG)(pts[i].x * (1-t) + t * pts[1+i].x + 0.5);
            pts[i].y = (LONG)(pts[i].y * (1-t) + t * pts[1+i].y + 0.5);
        }
    }
    return pts[0];
}

感觉还是比较耗时。不过至少能画出来。

标签:曲线,Windows,绘制,Bezier,贝塞尔,int,Points,GDI,pts
From: https://www.cnblogs.com/tingzhouduruo/p/bezier-curve-windows-gdi-2d.html

相关文章

  • 又来了两款高效且实用的Windows软件
    ■ FreeCountdownTimerFreeCountdownTimer是一款大小在4.5MB左右的,简单好用的免费的倒计时、倒数日软件。它目前仅支持Windows平台。我们可以用它快速的创建多个计时器和事件,并给不同的定时器和事件设置不同的提示音。所以平时我们可以将它作为一个闹钟、倒数计时器、节拍器或......
  • Windows server 2022 常见 备份事项
    以下是WindowsServer2022的DNS备份批处理脚本示例:CopyCode@echooffsetlocalrem定义备份路径setbackupPath=c:\dns_backup\rem获取当前日期时间作为备份文件名for/f"tokens=1-3delims=/"%%ain('date/t')doset"datestamp=%%a-%%b-%%c"for/f&q......
  • windows server2022 激活
    近期因为需要安装一个Windowsserver2022服务器操作系统做测试,安装完成后发现一些设置需要激活后方可使用。但又不想使用网上的激活软件去激活。有没有办法不安装激活软件又能激活延长Windowsserver2022操作系统的方法。还真找到了一个方法。以管理员身份打开运行powershell。打......
  • Windows Server 2022 KMS激活序列号
    一、推荐KMS服务器kms.0t.net.cn二、WindowsServer2022序列号Server2022零售版:RGN6B-MCPWX-6K6GK-HKM33-7VCXY-Standard标准版(非图形界面和桌面体验)DNVBD-FCT8Y-TQT8Q-HGQ34-QGRRV-Datacenter数据中心版(非图形界面和桌面体验)Server2022批量授权版:VDYBN-27WPP-V4HQT-9VMD......
  • VMware虚拟机安装Windows Server 2022
    硬件要求处理器:1.4GHz64位处理器,与x64指令集兼容内存(RAM):800MB(对于带桌面体验的服务器安装选项为2GB)磁盘存储空间:32GB网络适配器:以太网适配器的吞吐量至少为1GB/秒、符合PCIExpress体系结构规范准备工作①VMwareWorkstation软件(演示版本:vmware-workstation-full-16.2......
  • Splunk Enterprise 9.0.5 (macOS, Linux, Windows) 发布 - 机器数据管理和分析
    SplunkEnterprise9.0.5(macOS,Linux,Windows)-机器数据管理和分析请访问原文链接:https://sysin.org/blog/splunk-9/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org混合世界的数据平台快速、大规模地从可见性转向行动,以实现安全性、可观察性等目标。2TB从......
  • 在 Windows 7 安装过程中,如果需要注入驱动程序,则可以使用一些注入驱动工具。以下是一
    在Windows7安装过程中,如果需要注入驱动程序,则可以使用一些注入驱动工具。以下是一些常见的Windows7镜像注入驱动工具:DISM(DeploymentImageServicingandManagement)工具:它是Windows操作系统自带的镜像注入工具,可以向新安装的Windows7映像添加驱动程序或其他更新......
  • windows系统编译的Qt程序转到国产化麒麟linux中编译
    团队自研股票软件,关威信共总号:QStockView,下载1.1 windows系统编译的Qt程序转到国产化麒麟linux中编译(1)把Vs工程项目文件导入到Linux中首先把vs的工程拷贝到linux里面(可以用虚拟机的共享文件夹功能),把工程里面的目录Debug、GeneratedFiles、Release、Win32、x64和文件…user、......
  • windows访问k8s
    windows访问ekspods安装AWSCLI网址为https://awscli.amazonaws.com/AWSCLIV2.msi。查看aws版本。aws--version配置AWSCLI凭证eksctl和AWSCLI均要求您在环境中配置AWS凭证。awsconfigure命令是设置安装以供一般使用的最快方法。$awsconfigureAWSAccessKeyID[N......
  • windows cmd 命令中使用grep 查找
    有时候我们想使用netstat命令查询具体哪个端口,但是windowsdos自带没有像linux哪样的grep,我们就需要使用第三方插件。下载地址:https://gnuwin32.sourceforge.net/packages/grep.htm 如果无法下载可使用百度网盘下载:链接:https://pan.baidu.com/s/1qpJZ362VBjgWfqJdL24LIA?p......