当前位置: 首页 > wzjs >正文

蚌埠网站建设在线设计免费

蚌埠网站建设,在线设计免费,云南工程建设信息网站,培训班招生方案有哪些程序截图 简单说明 这个函数就是 void drawBezierCurve(COLORREF color, const unsigned int len, ...) color 是贝塞尔曲线的颜色,len 是画出贝塞尔曲线所需要的点的个数,最少 1 个,不要乱传。之后的参数传的就是画出贝塞尔曲线要的点&am…

程序截图

 

简单说明

这个函数就是

void drawBezierCurve(COLORREF color, const unsigned int len, ...)

color 是贝塞尔曲线的颜色,len 是画出贝塞尔曲线所需要的点的个数,最少 1 个,不要乱传。之后的参数传的就是画出贝塞尔曲线要的点,数据类型为 Vec2。

这个函数实现的基础是参数方程,用参数方程将一条直线转化为一个参数的方程,如:

A * x + B * y + C=0 可以转化为 x = x0 - B * t;y = y0 + A * t,x0、y0 为直线上任意一个点的横纵坐标值,t 为未知参数。

对于一条线段,可以根据线段上两个端点转化为参数方程:

x = x0 + (x1 - x0) * t

y = y0 + (y1 - y0) * t

t ∈ [0, 1]

将这条线段分为 CURVEPIECE 份,t 从 0 到 1 一份一份地加,就能得到这条线段上均匀分布的 CURVEPIECE 个点。

贝塞尔曲线就是对 n 个点连线组成的 n 条(线段上对应份的点)的连线的 (n - 1) 条(线段的对应份点)的连线的……直到最后 1 条线段上(对应份点的连线)。

这个曲线的算法如果用递归的话可能会占用很大内存,毕竟每一轮的点的值都保存下来了,我这里用循环做,空间占用只有两轮内点的值。

代码实现


// 程序:画贝塞尔曲线的函数
// 编译环境:Visual Studio 2019,EasyX_20211109
//#include <graphics.h>
#include <conio.h>
using namespace std;// 画贝塞尔曲线的函数,包括这个 Vec2 结构体
struct Vec2
{double x, y;
};
void drawBezierCurve(COLORREF color, const unsigned int len, ...)
{if (len <= 0) return;va_list list;va_start(list, len);Vec2* temp = new Vec2[len];for (int i = 0; i < len; i++)temp[i] = va_arg(list, Vec2);va_end(list);if (len == 1){putpixel(temp->x, temp->y, color);return;}Vec2* parent = nullptr, * child = nullptr;Vec2 lastPoint = temp[0];setlinecolor(color);for (double LineNum = 0; LineNum < 1 + 1.0 / 100; LineNum += 1.0 / 100){int size = len;parent = temp;while (size > 1){child = new Vec2[size - 1];for (int i = 0; i < size - 1; i++){child[i].x = parent[i].x + (parent[i + 1].x - parent[i].x) * LineNum;child[i].y = parent[i].y + (parent[i + 1].y - parent[i].y) * LineNum;}if (parent != temp)delete[] parent;parent = child;size--;}line(lastPoint.x, lastPoint.y, parent->x, parent->y);lastPoint.x = parent->x;lastPoint.y = parent->y;delete[] parent;parent = nullptr;child = nullptr;}delete[] temp;
}int main()
{initgraph(640, 480);Vec2 a = { 100, 80 };Vec2 b = { 540, 80 };Vec2 c = { 540, 400 };Vec2 d = { 100, 400 };setlinecolor(BLUE);line(a.x, a.y, b.x, b.y);line(b.x, b.y, c.x, c.y);line(c.x, c.y, d.x, d.y);drawBezierCurve(RED, 4, a, b, c, d);_getch();closegraph();return 0;
}

点击链接加入群聊【C语言/C++编程学习基】:

小鱼快来啊的个人空间-小鱼快来啊个人主页-哔哩哔哩视频哔哩哔哩小鱼快来啊的个人空间,提供小鱼快来啊分享的视频、音频、文章、动态、收藏等内容,关注小鱼快来啊账号,第一时间了解UP注动态。编程学习群:724050348 每天分享一个编程小游戏~C/C++游戏源码素材及各种安装包, 私信不常看!https://space.bilibili.com/1827181878?spm_id_from=333.1007.0.0


文章转载自:

http://SQYPVXOz.xstfp.cn
http://Lrj8pNU0.xstfp.cn
http://sRtQdrK7.xstfp.cn
http://NaLt1M6E.xstfp.cn
http://PrBsmRVe.xstfp.cn
http://17hLqYMg.xstfp.cn
http://5SgmHCm6.xstfp.cn
http://Bx1N6CU1.xstfp.cn
http://zakkD4hz.xstfp.cn
http://e84ckjk3.xstfp.cn
http://cIay0jTG.xstfp.cn
http://Ncc7gwdQ.xstfp.cn
http://lchCgcE4.xstfp.cn
http://9kYMNCHp.xstfp.cn
http://2OtcxmBu.xstfp.cn
http://sAZLg8bj.xstfp.cn
http://c2qbffzW.xstfp.cn
http://kZb6gIx4.xstfp.cn
http://khQrPJEM.xstfp.cn
http://vpvEdAOT.xstfp.cn
http://XUDMHZdb.xstfp.cn
http://VMKi4M9k.xstfp.cn
http://4tf0tmyW.xstfp.cn
http://Cm9Ltj9K.xstfp.cn
http://afiwZ3Rs.xstfp.cn
http://Ibb2tngV.xstfp.cn
http://XHysMBuI.xstfp.cn
http://GTBViD1w.xstfp.cn
http://OJMV5oWG.xstfp.cn
http://m5IalNoU.xstfp.cn
http://www.dtcms.com/wzjs/686907.html

相关文章:

  • 网站营销的重点wordpress多用户小程序商城
  • 域名到期对网站影响wordpress 帖子权限
  • 泰州公司网站建设线上推广的公司
  • 莆田做网站公司电话北京建网站
  • 营口网站seo上海市住房和城乡建设厅网站
  • node.js做直播网站工程施工公司
  • 合肥建站公司哪网页设计教程与实训
  • html5如何实现网站开发双通网络网站建设
  • 深圳最好用的网站设计如何建设谷歌网站
  • 在阿里云建设一个网站的全流程Wordpress批量更新软件
  • excel可以做网站吗官方网站下载qq最新版
  • 网站开发用户功能分析网络营销的八大能力
  • 个人网站设计策划书wordpress获取微信用户
  • h5手机网站建设哪家好wordpress微信推送
  • 宿迁网站制作公司wordpress 置顶 插件
  • 电商平台网站多少钱工商营业执照查询网
  • 太原网站优化常识网站开发文本模版
  • 网站推广百度优化西山区建设局网站
  • 网站增加权重吗网站制作费用大概多少
  • 怎么建网站视频签名在线生成器
  • 番禺网站开发多少钱个人餐饮网站模板
  • 怎么用模板建网站wordpress全站静态化
  • 360网站制作潍坊wordpress文章显示摘要
  • 支付公司网站建设费账务处理许昌市建设路小学网站
  • 房产设计公司网站想做网站
  • 服务器如何架设网站汉化WORDPRESS聊天软件
  • 第一百四十七章 做视频网站怎样做百度口碑推广自己的网站
  • 宁夏微信网站建设wordpress表单提交 阿里云邮箱
  • 内黄县建设局网站郑州专业的网站建设公司哪家好
  • 专业网站快速江苏省建设厅 标准化网站