怎么用C++实现万花模拟器
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,本篇内容介绍了"怎么用C++实现万花模拟器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!还记得小时候
千家信息网最后更新 2025年01月17日怎么用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安全错误
数据库的锁怎样保障安全
电信 网络安全保障
软件开发入职个人介绍
网络安全课后题简答题
安庆分布式服务器行情
网络数据库资源包括微博吗吗
硅谷怎么定制软件开发
数据库创建和运行原理
第五届中国网络安全大
网络安全大脑 架构
建立数据库表关系图
用加速器lol连接不上服务器
网络技术学习要求
公司服务器一般能存储多久
软件开发图书
昆明专业性软件开发价格实惠
12306网站的数据库查询的题
法律法规查询网站数据库
网络安全宣传语100句
研究数据库的意义和背景
将excel 导入数据库
静态网络技术论文
ipfs算力服务器租凭
redis数据库源码解析
wow考古数据库
虹口区直销软件开发
济南标准机架服务器公司
互联网大会 振芯科技
棋牌框架数据库
软件开发营利
数据库默认随机数