剁手节已经过去几天了,当天成交量达到了恐怖的2000多亿,不知道大家贡献了多少呢?然而大家还有多少人记得双十一是光棍节呢?广大单身汪同胞还在苦苦挣扎,“大!家!不!要!慌!”今天就给大家带来一个绝佳的礼物,用来跟妹子表白,让大家早点脱离单身汪的生活。   (感谢我吧,这可不容易哦~~~)

那么今天的神秘礼物是什么呢?大家猜猜送妹子什么最好呢?      (送什么都不如送玫瑰花呀~~~)没错,今天给大家带来的就是一多缓慢绽放的玫瑰花!话不多说,先看图:

编辑

玫瑰花

编辑

初具雏形的玫瑰

编辑

绽放的玫瑰,送给可爱的XXX

看起来是不是挺不错的呢!大家是不是觉得就结束了呢? “当!然!不!是!”如果只有一朵花怎么能衬托出这中氛围呢?来首音乐才有情调嘛!然后我们再添加一首音乐!一边听着音乐,一边看着一朵玫瑰的绽放,是不是特有情调?(音乐不能截图,有需要的自己来找我吧)也许你就能从此告白成功,脱离单身,走向幸福的两人世界哦!(没成功当我没说(━┳━ _ ━┳━))

好了下面来看下源码:

#include

#include

#include

#include

#include

#pragma comment(lib,"winmm.lib")

//定义全局变量

int rosesize = 500;

int h = -250;

//定义结构体

struct DOT

{

double x;

double y;

double z;

double r;

double g;

};

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;

}

int main()

{

short *zBuffer;

intx, y, z, zBufferIndex;

DOTdot;

initgraph(640,480);//创建绘图窗口

mciSendString(L"open ./素材/音乐.mp3 alias BGM",0,0,0);//打开音乐 L 多字节字符串

mciSendString(L"play BGM repeat",0,0,0);

setbkcolor(LIGHTRED);

cleardevice();

zBuffer = 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(10);

}

delete[]zBuffer;

_getch();

closegraph();

return 0;

}

这就是程序的全部代码啦!如果想更换音乐只要改下你想要替换的音乐名字改为【音乐】就好了,当然了格式必须是MP3格式的才可以哦。如果想学习C/C++可以点击原文链接来找我哦~~~

C语言项目:绽放的玫瑰花相关推荐

  1. c语言表白程序源码玫瑰花,小伙子用C语言写出绽放的玫瑰花,成功表白C++代码女神!...

    小伙子用C语言写出绽放的玫瑰花,成功表白C++代码女神! 今天就给大家带来一个绝佳的礼物,用来跟妹子表白,让大家早点脱离单身汪的生活. (感谢我吧,这可不容易哦~~~) 下面是小编准备的一套非常适合初 ...

  2. 深入体验c语言项目开发 光盘,深入体验C语言项目开发

    c语言是当今使用最为频繁的编程语言之一,一直在开发领域占据重要的地位.<深入体验C语言项目开发>通过10个综合实例的实现过程,详细讲解了c语言在实践项目中的综合运用过程.这些项目从作者的学 ...

  3. 上海大学c语言程序设计,【基础强化】2020-2021学年秋季学期程序设计C语言项目顺利开展...

    2020年10月19日下午12:10分,由上海大学社区学院课外培养中心主办的程序设计C语言项目在D415机房开展.本课程由邹启明老师担任主讲,为对编程感兴趣的同学提供了课外的学习机会与平台. 邹老师以 ...

  4. goland/go语言项目--本地包的导入(将项目添加至GOPATH中)(基于macOS)

    goland/go语言项目–本地包的导入(将项目添加至GOPATH中)(macOS) 1. 创建项目 首先,在桌面上创建一个文件夹G0Project,从而创建项目. //利用go mod进行初始化项目 ...

  5. [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse

    C语言项目实战 - 虚拟鼠标 - VirtualMouse 目录 关于软件 软件介绍 使用帮助 项目介绍 源码及软件下载 知识点扫描 热键的使用 鼠标事件的模拟 字体的选用 开机自启动的设置 为软件添 ...

  6. 如何使用visual studio 2017创建C语言项目

    使用visual studio 2017创建一个C语言项目,步骤如下: (1)打开Visual Studio 2017环境后出现欢迎界面,如图1所示. 图1  Visual Studio 2017欢迎 ...

  7. 项目的数据存储c语言,C语言项目实战项目8__项目中学生数据的存储与重用.ppt

    C语言项目实战项目8__项目中学生数据的存储与重用 项目8 技能目标 能用fopen函数和fclose函数打开和关闭文件 能正确地读写文件 能用文件定位函数对文件进行正确的定位操作 能用格式化读写函数 ...

  8. 【C语言项目】贪吃蛇游戏(上)

    00. 目录 文章目录 00. 目录 01. 开发背景 02. 功能介绍 03. 欢迎界面设计 3.1 常用终端控制函数 3.2 设置文本颜色函数 3.3 设置光标位置函数 3.4 绘制字符画(蛇) ...

  9. [vue] 你有使用过vue开发多语言项目吗?说说你的做法?

    [vue] 你有使用过vue开发多语言项目吗?说说你的做法? 使用Vue-i18n 加载不同的语言配置文件, 重要是初始化时,判断当前语言环境,要想好存储方案 采用i18n来解决国际化问题,关于语言环 ...

最新文章

  1. 利用python3 调用zabbix接口完成批量加聚合图形(screens)
  2. 假设检验怎么做?这次把方法+Python代码一并教给你
  3. 同步vmware虚拟机与宿主机的时间
  4. 使用vue来做局部刷新
  5. java 注解默认值
  6. TypeScript 3.4 发布
  7. 找到MySQL服务器发生SWAP罪魁祸首
  8. 【GDB源码编译】GDB源码编译
  9. P1262 间谍网络 (tarjan缩点 水过去)
  10. android 跨进程 android:process,Android跨进程通信技术-多进程模式的运行机制
  11. jquery $.each()遍历array,map等集合
  12. go语言-csp模型-并发通道
  13. [lua]紫猫lua教程-命令宝典-L1-01-03. 数值数据
  14. 代码与国家地区对照表
  15. 手机android系统锁了怎么解,安卓手机解锁图案忘了怎么办?手机解锁密码忘了的解决办法...
  16. Android使用VAD检测是否说话
  17. 集合框架ArrayList 源码分析(二)
  18. 必修三计算机选修三知识点总结,高一数学必修三知识点总结(超实用)
  19. “零售之王”银行数字化转型四大法则
  20. python代码 学生上课签到表_一种上课签到系统的制作方法

热门文章

  1. Spring Data Redis:Sentinel的高可用性
  2. jooq权限配置_将jOOQ与Spring结合使用:配置
  3. java 解析gson_使用Java和Google GSON解析ESPN API
  4. url中传递对象参数_在URL参数中传递复杂对象
  5. 使用JDK 8将收藏转换为地图
  6. Java Finalizer和Java文件输入/输出流
  7. esper_Twitter4j和Esper:在Twitter上跟踪用户情绪
  8. java高效复制文件并移动_Java 7:复制和移动文件和目录
  9. SWT外观:自定义FlatScrollBar颜色等
  10. 真正的动态声明性组件