千家信息网

怎么用C++实现万花模拟器

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"怎么用C++实现万花模拟器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!还记得小时候
千家信息网最后更新 2026年11月01日怎么用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安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 亿策互联网科技 华中科技大学互联网 善班互联网科技有限公司 互联网 科技馆 安控科技rtu产品工业互联网 农村开互联网科技讲堂 深圳国际航运科技和互联网 厦门比较好的科技互联网公司 上海宁丞科技互联网 世界互联网科技公司市值排名 语蝶互联网科技有限公司 移动互联网年度科技创新 亳州好赞互联网科技有限公司 卡尔迅互联网科技有限公司 广州有谷有贝互联网科技有限公司 盐城市攀科互联网科技有限公司 科技美学互联网 艺术 恒生科技互联网指数十大成分股 六子台科技互联网展会 互联网核心科技是什么 上海挚品互联网科技 紫鲸互联网科技 华中科技大学互联网 唐信互联网科技 大连 剑昆互联网络科技有限公司临桂 青岛科技大学互联网大赛研究生 深圳育鹏互联网科技有限公司招聘 众安科技工业互联网合作 米泉互联网科技专业怎么样
0