C语言/C++常见习题问答集锦(七十六)之玫瑰花寄语

程序之美


在古希腊神话中,玫瑰花集爱与美于一身,既是美神的化身,又溶进了爱神的血液。可以说,在世界范围内,玫瑰是用来表达爱情的通用语言,形成了永不凋零的玫瑰花花语文化。

玫瑰数的含意如下:
1朵玫瑰代表——我的心中只有你 ONLY YOU!
2朵玫瑰代表——这世界只有我俩!
3朵玫瑰代表——我爱你 I LOVE YOU!
4朵玫瑰代表——至死不渝!
5朵玫瑰代表——由衷欣赏!
6朵玫瑰代表——互敬 互爱 互谅!
7朵玫瑰代表——我偷偷地爱著你!
8朵玫瑰代表——感谢你的关怀扶持及鼓励!
9朵玫瑰代表——长久 ALWAYS!
10朵玫瑰代表——十全十美 无懈可击!
11朵玫瑰代表——最爱 只在乎你一人!
12朵玫瑰代表——对你的爱与日俱增!
13朵玫瑰代表——友谊长存!
14朵玫瑰代表——骄傲!
15朵玫瑰代表——对你感到歉意I’M SORRY!
16朵玫瑰代表——多变不安的爱情!
17朵玫瑰代表——绝望无可挽回的爱!
18朵玫瑰代表——真诚与坦白!
19朵玫瑰代表——忍耐与期待!
20朵玫瑰代表——我仅一颗赤诚的心!
21朵玫瑰代表——真诚的爱!
22朵玫瑰代表——祝你好运!
25朵玫瑰代表——祝你幸福!
30朵玫瑰代表——信是有缘!
36朵玫瑰代表——浪漫!
40朵玫瑰代表——誓死不渝的爱情!
50朵玫瑰代表——邂逅不期而遇!
99朵玫瑰代表——天长地久 FOREVER!
100朵玫瑰代表——百分之百的爱 100% LOVE!
101朵玫瑰代表——最……最爱!
108朵玫瑰代表——求 婚!
999朵玫瑰代表——我家有钱,呵呵

奥里给,让我们敲起手中的键盘,绘制一朵玫瑰花吧!!!

先上效果图:



代码原型:

#include <graphics.h>
#include <conio.h>
#include <math.h>// 定义全局变量int rosesize = 500;
int h = -250;// 定义结构体struct DOT
{double x;double y;double z;double r;// 红色double g;// 绿色// b(蓝色) 通过 r 计算};// 计算点
bool calc(double a, double b, double c, DOT &d)
{double j, n, o, w, z;if (c > 60)// 花柄{d.x = sin(a * 7)*(13 + 5 / (0.2 + pow(b * 4, 4))) - sin(b) * 50;d.y = b * rosesize + 50;d.z = 625 + cos(a * 7)*(13 + 5 / (0.2 + pow(b * 4, 4))) + b * 400;d.r = a * 1 - b / 2;d.g = a;return true;}double A = a * 2 - 1;double B = b * 2 - 1;if (A*A + B * B < 1){if (c > 37)// 叶{j = (int(c) & 1);n = j ? 6 : 4;o = 0.5 / (a + 0.01) + cos(b * 125) * 3 - a * 300;w = b * h;d.x = o * cos(n) + w * sin(n) + j * 610 - 390;d.y = o * sin(n) - w * cos(n) + 550 - j * 350;d.z = 1180 + cos(B + A) * 99 - j * 300;d.r = 0.4 - a * 0.1 + pow(1 - B * B, -h * 6)*0.15 - a * b*0.4 + cos(a + b) / 5 + pow(cos((o*(a + 1) + (B > 0 ? w : -w)) / 25), 30)*0.1*(1 - B * B);d.g = o / 1000 + 0.7 - o * w*0.000003;return true;}if (c > 32)// 花萼{c = c * 1.16 - 0.15;o = a * 45 - 20;w = b * b*h;z = o * sin(c) + w * cos(c) + 620;d.x = o * cos(c) - w * sin(c);d.y = 28 + cos(B*0.5) * 99 - b * b*b * 60 - z / 2 - h;d.z = z;d.r = (b*b*0.3 + pow((1 - (A*A)), 7)*0.15 + 0.3)*b;d.g = b * 0.7;return true;}// 花o = A * (2 - b)*(80 - c * 2);w = 99 - cos(A) * 120 - cos(b)*(-h - c * 4.9) + cos(pow(1 - b, 7)) * 50 + c * 2;z = o * sin(c) + w * cos(c) + 700;d.x = o * cos(c) - w * sin(c);d.y = B * 99 - cos(pow(b, 7)) * 50 - c / 3 - z / 1.35 + 450;d.z = z;d.r = (1 - b / 1.2)*0.9 + a * 0.1;d.g = pow((1 - b), 20) / 4 + 0.05;return true;}return false;
}// 主函数
void main()
{// 定义变量short *zBuffer;int x, y, z, zBufferIndex;DOT dot;// 初始化initgraph(640, 480);// 创建绘图窗口setbkcolor(WHITE); // 设置背景色为白色cleardevice(); // 清屏// 初始化 z-bufferzBuffer = new short[rosesize*rosesize];memset(zBuffer, 0, sizeof(short)*rosesize*rosesize);for (int j = 0; j < 2000 && !_kbhit(); j++) // 按任意键退出{for (int i = 0; i < 10000; i++)// 减少是否有按键的判断if (calc(double(rand()) / RAND_MAX, double(rand()) / RAND_MAX, rand() % 46 / 0.74, dot)){z = int(dot.z + 0.5);x = int(dot.x*rosesize / z - h + 0.5);y = int(dot.y*rosesize / z - h + 0.5);if (y >= rosesize)continue;zBufferIndex = y * rosesize + x;if (!zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z){zBuffer[zBufferIndex] = z;// 画点int r = ~int((dot.r*h));if (r < 0)r = 0;if (r > 255)r = 255;int g = ~int((dot.g*h));if (g < 0)g = 0;if (g > 255)g = 255;int b = ~int((dot.r*dot.r*-80));if (b < 0)b = 0;if (b > 255)b = 255;putpixel(x + 50, y - 20, RGB(r, g, b));}}Sleep(1);}// 退出delete[]zBuffer;_getch();closegraph();
}

好了,今天就说这么多了,希望小伙伴们能从这篇文章中学到东西,也真心希望能够帮助正在苦学C语言的小伙伴们,你们的成长是我最大的幸福。很感谢您能够在百忙之中浏览我的文章。

C语言/C++常见习题问答集锦(七十六)之玫瑰花寄语相关推荐

  1. C语言/C++常见习题问答集锦(七十四) 之裨补阙漏

    C语言/C++常见习题问答集锦(七十四) 之裨补阙漏 程序之美 1.编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址.(注意: 主函数中用****作为结束输入的标 ...

  2. C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统

    C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统 程序之美 用C语言,职工信息管理系统具体要求 1.基本信息:如工号.姓名.性别.年龄.学历.住址.电话号码.工资等. 2.各职工信息用结构 ...

  3. C语言/C++常见习题问答集锦(四十) 之分门别类

    C语言/C++常见习题问答集锦(四十) 之分门别类 程序之美 1.编写一个count函数,统计下输入的字符串中"."(句号)的个数,并进行输出. int count(char* p ...

  4. C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归)

    C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归) 程序之美 1.C语言,计算1乘以3×5*-乘n的积,并输出结果,n值由键盘接收. #include<stdio.h>v ...

  5. C语言/C++常见习题问答集锦(四十三) 之持之以恒

    C语言/C++常见习题问答集锦(四十三) 之持之以恒 程序之美 1.C语言计算1-1/3+1/5-1/7+1-+1/101 #include<stdio.h> int main(){int ...

  6. C语言/C++常见习题问答集锦之哆啦A梦

    C语言/C++常见习题问答集锦之哆啦A梦 程序之美 前言 主体 运行效果 代码示例 逻辑分析 初始化 绘制流程 资源释放 结束语 程序之美 前言 还记得儿时的哆啦A梦(机器猫)么?每逢周末,就会急匆匆 ...

  7. C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)

    C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...

  8. C语言/C++常见习题问答集锦(八十一)之学生信息与排序

    C语言/C++常见习题问答集锦(八十一)之学生信息与排序 程序之美 1.下面主函数调用函数SortString()按奥运会参赛国国名在字典中的顺序对其入场次序进行排序 #include <std ...

  9. C语言/C++常见习题问答集锦(十八)烟花程序为什么不能放烟花(亲测解决,与大家分享)

    C语言/C++常见习题问答集锦(十八)烟花程序为什么不能放烟花 程序之美 在网上看到了个烟花程序,是C语言版本的,代码在文章结尾,看到很多小伙伴在询问为啥字播放完了,放不出来烟花,我进行了下验证,发现 ...

最新文章

  1. 电子计算机微机调试员,电子计算机(微机)装配调试员国家职业标准
  2. CodeForces 721C Journey
  3. 你也许不知道的Vuejs - 前言
  4. CISP人才年薪30W起步优先考虑它
  5. rust编程之道 pdf_LPC: 想在内核里引入Rust,还需要做很多决定
  6. python基础教程第3章——字符串
  7. ubuntu 下安装 cudnn
  8. 无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件
  9. mysql综合查询索引优化_MySQL数据库SQL优化之确定问题使用索引提高查询效率
  10. iOS设计模式 - 迭代器
  11. 终于,我读懂了所有Java集合——sort
  12. Trie可持久化Trie
  13. 聊聊 Spring Boot 2.x 那些事儿
  14. MySQL DBA教程:Mysql性能优化之缓存参数优化
  15. 不宜佩带佛像,宜佩带佛号、咒语
  16. random.uniform()用法
  17. 数据中台(五)数据开发:数据价值提炼工厂
  18. tas5717php手册,TAS5715 具有扬声器均衡、双频带 DRC 和 DC 保护的 25W 立体声 I2S 音频放大器...
  19. view的superview的变换
  20. System.Net.WebException: 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。 ---> System.Security.Authentication.Authe

热门文章

  1. vue3.0项目 npm run build 编译
  2. 面向小白的OC快速无脑配置-基于OpenCore-0.5.8-04-23编译版
  3. html多图自动展示,基于echarts+html+css+jq的数据可视化大屏展示炫酷看板
  4. 个股期权交易系统为什么和私密机构紧密相连?
  5. python将10到1递减_基本递减循环 - PYTHON
  6. 一文明白CDN加速是个啥
  7. ZeroMQ 中文指南 第四章 可靠的请求-应答模式【转载】
  8. Ubuntu1804里进行KITTI数据集可视化操作
  9. sah服务器怎么修改vim,vim 编辑器(修改/etc/vim/vimrc即可)
  10. 人工智能学习方法:课程大纲、计划、内容