玫瑰花(C语言代码)

玫瑰花(C语言代码)代码用到图形库,有音乐,音乐名为BadApple.mp3,可以找一首mp3形式的歌,歌名改成BadApple.mp3,与.exe文件放在同一个文件夹下,程序执行时会播放名字为BadApple.mp3音乐(会玩的可以去看程序自己改),不同编译器颜色不同左vc,右Dev,颜色也可以通过RGB()进行修改。加个图形库(EasyX)的链接(根据提示来就行):https://blog.csdn…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

玫瑰花(C语言代码)

加个图形库(EasyX)的链接(根据提示来就行):C语言图形库函数easyx下载_Daisyes的博客-CSDN博客_easyx图形库下载

看到评论,大多没用过图形库的可能都不会弄,我上个蓝色玫瑰的.exe文件链接,效果看文章最后图片:

链接:https://pan.baidu.com/s/1ucpoRmS2t30CwpXMnC2PqQ 
提取码:sk63 

#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语言代码)

Dev执行后是蓝色是蓝色:

玫瑰花(C语言代码)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159473.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Activiti最全入门教程「建议收藏」

    Activiti最全入门教程「建议收藏」1:工作流的概念 说明:1)假设:这两张图就是华谊兄弟的请假流程图 2)图的组成部分: A.人物:范冰冰冯小刚王中军 B.事件(动作):请假、批准、不批准  工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从

  • 字节流、字符流

    字节流、字符流

  • Ubuntu卸载软件_ubuntu软件卸载

    Ubuntu卸载软件_ubuntu软件卸载之前安装teamviewer的时候,强制进行安装,结果安装失败,并且,之后无论运行任何apt-getintsll命令都会报错:解决办法是:直接将这个软件删除掉就行了,运行以下命令:sudoapt-getremove–purgeteamviewer:i386

  • 几个Python小案例,爱上Python编程!「建议收藏」

    Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰。语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?一、画爱心表白1、图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以我们就可以建立模型,建立表达式expression,当满足时,两个for循环(forXinrange;f…

  • postMessage详解

    postMessage详解目录一、概述二、详解一、概述作用该方法是HTML5引入的API,可以通过异步方式实现跨源通信,多用于窗口间数据通信。它提供了一种受控机制来规避不同源脚本无法通信的限制,只要正确使用,这种方法很安全。什么是跨源同源即指相同的协议、域名或IP、端口号。浏览器具有同源限制,同源脚本可以相互通信,一般非同源(跨源)的脚本文件禁止相互通信。二、详解语法示例-发送程序&…

  • js替换换行符

    js替换换行符将换行符去掉.replace(/\\r\\n/g,”);

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号