返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >怎么用C++实现万花模拟器
  • 648
分享到

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

2023-06-15 18:06:22 648人浏览 独家记忆
摘要

本篇内容介绍了“怎么用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 = &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++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器
怎么用C++实现万花模拟器

“怎么用C++实现万花模拟器”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么用C++实现万花模拟器

本文链接: https://lsjlt.com/news/281343.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用C++实现万花模拟器
    本篇内容介绍了“怎么用C++实现万花模拟器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!还记得小时候玩的万花尺么好好玩,各种不同的点距能画出...
    99+
    2023-06-15
  • 怎么用C++模拟实现STL容器
    这篇文章主要介绍了怎么用C++模拟实现STL容器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用C++模拟实现STL容器文章都会有所收获,下面我们一起来看看吧。一、list的介绍列表是一种顺序容器,它允许在...
    99+
    2023-07-04
  • C++之list容器模拟怎么实现
    这篇“C++之list容器模拟怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++之list容器模拟怎么实现”文章吧...
    99+
    2023-07-05
  • 利用C++模拟实现STL容器:list
    目录一、list的介绍二、list的排序三、迭代器1、list的迭代器失效问题2、迭代器的功能分类3、list迭代器的模拟实现4、迭代器价值5、迭代器operator->的重载...
    99+
    2022-12-08
    C++实现STL容器list C++ STL容器list C++ STL容器
  • C++list的模拟实现
    目录一、节点的结构,list的迭代器的结构,以及list的结构1、节点的结构2、迭代器的结构3、list的结构二、迭代器的实现1、*运算符重载2、++ 与 --运算符3、->运...
    99+
    2023-05-16
    C++ list C++ list模拟实现
  • C语言怎么模拟实现strlen函数
    这篇文章主要讲解了“C语言怎么模拟实现strlen函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么模拟实现strlen函数”吧!一.strlen函数的介绍1.strlen函数的声...
    99+
    2023-06-29
  • c#模拟串口通信SerialPort怎么实现
    这篇“c#模拟串口通信SerialPort怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c#模拟串口通信Serial...
    99+
    2023-06-30
  • C++  STL _ Vector使用及模拟实现
    目录1.Vector的介绍1.1 Vector的介绍2.Vector的使用2.1 vector的定义2.2 vector 迭代器的使用 2.3 vector的空间增长问题3...
    99+
    2024-04-02
  • C++中怎么用Clock类模拟实现闹钟运行
    今天小编给大家分享一下C++中怎么用Clock类模拟实现闹钟运行的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。定义一个时钟类...
    99+
    2023-06-29
  • C++ STL vector的模拟实现
    1. vector的介绍和使用 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对v...
    99+
    2024-04-02
  • C++模拟实现list功能
    目录list介绍构造函数无参构造函数有参构造函数模板区间构造函数拷贝构造函数赋值运算符重载析构函数迭代器迭代器构造函数迭代器关系运算符重载迭代器++ --运算符重载迭代器 * 运算符...
    99+
    2024-04-02
  • C++模拟实现List迭代器详解
    目录概念迭代器使用迭代器模拟实现迭代器的大体结构构造函数解引用重载重载自增实现自减实现运算符重载迭代器失效模拟List概念 迭代器是一种抽象的设计概念,其定义为:提供一种方法,使他能...
    99+
    2024-04-02
  • C++之list容器模拟实现方式
    目录总述一、节点类二、迭代器类成员变量构造函数*重载->重载“++”“==“和”!=”三、反向迭代器类成...
    99+
    2023-02-05
    C++ list容器 list容器模拟实现 模拟实现list
  • 怎么使用div模拟实现textarea
    这篇文章主要介绍了怎么使用div模拟实现textarea的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用div模拟实现textarea文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • Laravel Seeder怎么生成百万模拟数据
    这篇文章主要介绍了Laravel Seeder怎么生成百万模拟数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Laravel 集成了 Faker 库,并提供了 Seeder...
    99+
    2023-06-14
  • c++中vector的使用和模拟实现
    一、接口介绍 1、插入数据 void push_back(const T& x) 在当前vector尾部插入x,如果容量不够扩大二倍。 iterator insert(it...
    99+
    2024-04-02
  • C++中priority_queue的使用与模拟实现
    目录priority_queue的使用priority_queue简介priority_queue的使用priority_queue的模拟实现priority_queue的使用 pr...
    99+
    2024-04-02
  • C++中list的使用与模拟实现
    目录一、list的介绍以及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity...
    99+
    2024-04-02
  • C语言怎么模拟实现动态通讯录
    本篇内容主要讲解“C语言怎么模拟实现动态通讯录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么模拟实现动态通讯录”吧!目录模拟实现通讯录总体架构一览图文件执行任务分模块实现 测...
    99+
    2023-06-20
  • C++中如何模拟实现vector
    这篇文章给大家分享的是有关C++中如何模拟实现vector的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vector接口总览namespace nzb{//模拟实现vectortemplate<c...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作