怎么用C++实现万花模拟器
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"怎么用C++实现万花模拟器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!还记得小时候
千家信息网最后更新 2025年11月07日怎么用C++实现万花模拟器

本篇内容介绍了"怎么用C++实现万花模拟器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
还记得小时候玩的万花尺么?好好玩,各种不同的点距能画出各种各样形状图形。
C语言程序万花尺模拟
函数功能:每隔5秒随机生成万花图形 并自动保存作图参数以及图形到当前目录,图像格式为jpg
提示:
相关参数范围可以自行设置,用自定义mySetRand函数设置作图尺寸范围
注意:
内圆半径不能大于外圆半径,内圆作图点不能大于内圆半径
/*以下是完整代码,可自行个性化更改参数*/
#include #include #include #include #include #include int mySetRand(int num, int min, int max); #define PI 3.1415926536 int main() { int k = 0; wchar_t s[255] = { NULL }; int R; // 静圆半径 int r; // 动圆半径 int dr; // 动圆上的作图点到圆心的距离 while (1) { //产生一个100-395之间的随机数 R = mySetRand(1, 100, 395); r = R - mySetRand(1, 5, 95); dr = r - mySetRand(1,2, r-5); // 求执行次数(最小公倍数/静圆半径) int m = R, n = r; int tmp; while (n != 0) { tmp = m % n; m = n; n = tmp; } double maxdegree = r / m * 2 * PI; //清屏 //cleardevice(); system("cls"); initgraph(800, 610); setbkcolor(RGB(200, 200, 200)); // 设置作图原点坐标,使其在窗口中心画图 setorigin(400, 300); // 开始绘图 int x, y; for (double degree = 0; degree < maxdegree; degree += 0.01) { x = (int)(dr * cos(degree*(double(R) / r - 1)) + (R - r) * cos(degree)); y = (int)(dr * sin(degree*(double(R) / r - 1)) - (R - r) * sin(degree)); putpixel(x, y, RGB(255,255,0)); } //归位原点坐标 setorigin(0, 0); _stprintf_s(s, _T("作图参数:外圆半径%.3d像素\\内圆半径%.3d像素\\作图点到圆心距离%.3d像素"), R, r, dr); settextstyle(20, 0, _T("黑体")); settextcolor(RED); outtextxy(60, 587, s); //保存图形到当前目录 k++; _stprintf_s(s, _T("%.6d.jpg"), k); saveimage(s); //画面停留5秒后,清屏重新画另一个图 Sleep(5000); closegraph(); } return 0; } //指定范围随机数产生 //num产生个数,产生范围min到max(包括min和max) int mySetRand(int num, int min, int max) { int *p_num = # int *p_min = &min; int *p_max = &max; int a = 0; int p1 = 0, p2 = 0; if ((*p_num)<0 || (*p_min>*p_max)) { printf("最大值与最小值反过来了?\n元素个数为负数了?"); getchar(); return -1; } srand((unsigned int)time(0)); for (size_t i = 0; i < *p_num; i++) { a = rand(); if (*p_min == 0) { p2 = a % (*p_max + 1); } else if (*p_min>0) { p1 = a / (*p_max - *p_min + 1); p2 = a - p1*(*p_max - *p_min + 1) + *p_min; } else { printf("处理出错!"); getchar(); return -2; } if (p2>*p_max || p2<*p_min) { printf("数据有误!"); getchar(); } } return p2; }//部分代码截图以及效果图展现如下


"怎么用C++实现万花模拟器"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
半径
万花
内圆
参数
图形
范围
像素
模拟器
C++
最小
个数
代码
内容
函数
原点
圆心
坐标
更多
点到
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百度云集群服务器
函数删掉重复的数据库
机房服务器需要一次配完吗
java备份某一条数据库
mysql数据库建表的代码
关于网络安全隐患开展整改通知
设置加工数据库
安装万象 不能连接到数据库
临沂合越网络技术
直接接服务器电源重启安全吗
穿越火线的服务器怎么下
网络安全天融信好不好
企业服务器搭建顺序
比较简单的企业数据库
网络安全设备代理经验
服务器主板不开机怎么办
网络安全200字日记
网络安全法规及知识讲座
数据库软件开发的重要性
南京网站服务器供货厂
阿里云服务器100g 年费
软件开发中打点是什么意思
机房服务器需要一次配完吗
未来网络技术公司
微信裂变软件开发
宝山区智能化网络技术服务操作
趋势科技app如何连接互联网
广东省外贸从业人员数据库
软件开发跨行业
哪个服务器系统便宜