如果这篇博客帮助到你,可以请我喝一杯咖啡~
CC BY 4.0 (除特别声明或转载文章外)
功能要求
- 使用鼠标在程序窗口内任意选取 4 个控制顶点
- 根据选定的控制顶点,绘制出对应的三次 Bezier 曲线,以及其控制多边形
- 语言不限,开发平台不限。具体效果展示允许略有差异
实现提示
使用鼠标回调函数,捕获屏幕窗口内点的坐标。
开发环境
硬件
所用机器型号为 VAIO Z Flip 2016
- Intel(R) Core(TM) i7-6567U CPU @3.30GHZ 3.31GHz
- 8.00GB RAM
软件
- Windows 10, 64-bit (Build 17763) 10.0.17763
- Visual Studio Code 1.39.2
- Remote - WSL 0.39.9:配合 WSL,在 Windows 上获得 Linux 接近原生环境的体验。
- Windows Subsystem for Linux [Ubuntu 18.04.2 LTS]:WSL 是以软件的形式运行在 Windows 下的 Linux 子系统,是近些年微软推出来的新工具,可以在 Windows 系统上原生运行 Linux。
- gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
实验原理
- 三次贝塞尔曲线的公式为
- 使用鼠标回调函数,捕获屏幕窗口内点的坐标
- 实现了一个鼠标点击计数器,根据点击的次数决定是画顶点、折线还是贝塞尔曲线
实现效果
Windows 下运行bezier.exe
,或 Linux 下运行bezier.out
,得到如下结果。