代码用到图形库,有音乐,音乐名为BadApple.mp3,可以找一首mp3形式的歌,歌名改成BadApple.mp3,与.exe文件放在同一个文件夹下,程序执行时会播放名字为BadApple.mp3音乐(会玩的可以去看程序自己改),不同编译器颜色不同左vc,右Dev,颜色也可以通过RGB()进行修改。
(结果运行见底部)

#include <stdio.h>
#include <windows.h>?
#include <math.h>
#include <graphics.h>
#include <mmsystem.h>
#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;int x, y, z, zBufferIndex;DOT dot;initgraph(640,480);//创建绘图窗口/*添加音乐*/mciSendString("open BadApple.mp3 alias BadApple", NULL, 0, NULL);mciSendString("play BAdApple", NULL, 0, NULL);setbkcolor(YELLOW);cleardevice();zBuffer = new short[rosesize * rosesize];memset(zBuffer, 0, sizeof(short) * rosesize * rosesize);for (int j = 0; j < 2000; j++)// && !_kbhit(){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(100);}delete[]zBuffer;getchar();closegraph();return 0;
}


C语言 玫瑰花代码实现相关推荐

  1. html语言玫瑰花代码,javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码

    本文实例讲述了javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果.分享给大家供大家参考.具体如下: 下面的玫瑰绘制用到了HTML 5的canvas,所以你的浏览器需要支持HTM ...

  2. R语言统计代码运行耗时实战:计算代码运行时间、使用proc.time函数计算代码运行时间

    R语言统计代码运行耗时实战:计算代码运行时间.使用proc.time函数计算代码运行时间 目录

  3. c语言分手代码大全,C语言代码大全

    从今天开始,我将C语言的代码实例从发表在博客上.供技术交流.比较基础,遵循循序渐进的原则,由简单到复杂,为以后的程序员生涯打好基础. 1.编写一个C程序输出以下信息. **************** ...

  4. aes算法的C语言实现代码,AES加密算法c语言实现代码

    AES加密算法c语言实现代码 #include "stdio.h" #include "memory.h" #include "time.h" ...

  5. WPF第一章(XAML前台标记语言(Chapter02代码讲解))

    XAML前台标记语言(Chapter2代码讲解)     很不好意思,工作有点忙,博客停了两天.相对于一门语言的学习,理论知识和实践必不可少,大多数时间我们要用,对于代码也是,一边不行可以看两遍,实在 ...

  6. C语言初学者代码中的常见错误与瑕疵(9)

    题目 字母的个数 现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个. 输入:第一行输入一个正整数T(0<T<25) 随后T ...

  7. 嵌入式编程C语言提高代码效率的14种方法

    嵌入式编程C语言提高代码效率的14种方法 1.在可能的情况下使用typedef替代define.当然有时候你无法避免define,但是typedef更好. typedef int* INT_PTR; ...

  8. C语言工程代码查看神器 SourceInsight

    C语言工程代码查看神器 SourceInsight 安装 默认安装即可 链接:https://pan.baidu.com/s/14CD9RK3yXJ7e43Lf3hxe4A 提取码:12lw 安装完毕 ...

  9. 一些可运行的C语言数据结构代码

    网上有很多C语言数据结构代码:有的不能运行:下面是一些能运行的,和运行截图:备用一下: 1 队列 #include<stdio.h> #include<stdlib.h>#de ...

最新文章

  1. shell截取小数等
  2. Selenium--调用js,对话框处理 (python)
  3. 【福利】思科/华为/华三模拟器软件分享,附下载链接
  4. 使用Java WebSockets,JSR 356和JSON映射到POJO的
  5. java无符号 uuid,java实现无符号数转换、字符串补齐、md5、uuid、随机数示例
  6. 他们也曾在数学“苦海”里痛不欲生
  7. STM32+CubeMX开发工程笔记汇总(更新2021.8.12)
  8. [转] Tomcat 系统架构与设计模式,第 1 部分: 工作原理
  9. 学习Opencv---例3.12----用imageROI来添加某范围的像素
  10. signature=efaf25d07c6ea03d7552906c0caee5a8,幼児の認知発達における関係把握の問題
  11. [20171124]xxd与通配符.txt
  12. 主席树 POJ2104
  13. html字体版权,字体在网站中的版权问题
  14. 深度卷积神经网络(CNN)特征层的可视化
  15. WeAPI android ios,WechatOpenSDK 1.8.6 iOS接入指南
  16. ac多模式匹配 java_Aho-Corasick 多模式匹配算法、AC自动机详解
  17. 小论文之旅(2)——introduction与related work
  18. qq等级查询php源码,基于PHP的QQ等级计算器
  19. PC ACCESS 测试客户机出现错误 win7 64位
  20. 华中科技大学计算机网络教材,华中科技大学计算机网络复习资料.ppt

热门文章

  1. 六款视频剪辑神器,做影视剪辑短视频事半功倍,15天有3000
  2. 微信小程序之 获取input框输入值
  3. 带通滤波器c5000汇编语言,基于SIW技术的高选择性带通滤波器的设计与实现
  4. 「数字货币监管」听证会重磅来袭,无形之笼悄然降临?
  5. webdav同步书签-floccus
  6. 春晚宫女唐奕霖被爆背景深厚 可携助手出入央视排练场享有特权
  7. 吐血整理出来的大数据知识点,你掌握多少?
  8. layui 实现下拉多选功能 [xm-select]
  9. 实践练习二(必选):手动部署 OceanBase 单副本集群
  10. 量子计算机可以制造意识吗,量子力学预测:意识可以决定物质,宇宙可能只是一道程序...