中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用C++實現萬花模擬器

發布時間:2021-10-20 15:03:40 來源:億速云 閱讀:138 作者:iii 欄目:編程語言

本篇內容介紹了“怎么用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++實現萬花模擬器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

驻马店市| 弥渡县| 武邑县| 永修县| 鹤峰县| 新宁县| 滨州市| 陈巴尔虎旗| 布尔津县| 惠水县| 安岳县| 双城市| 教育| 平湖市| 五峰| 闽清县| 灵寿县| 商丘市| 斗六市| 上杭县| 荥经县| 清水县| 中宁县| 灵丘县| 灵璧县| 招远市| 景德镇市| 千阳县| 陆良县| 晴隆县| 蕲春县| 佛冈县| 当阳市| 颍上县| 武义县| 娱乐| 砚山县| 新泰市| 杨浦区| 柏乡县| 荥经县|