玫瑰花(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)
blank

相关推荐

  • Js判断数组中是否存在某个元素「建议收藏」

    Js判断数组中是否存在某个元素「建议收藏」方法一:indexOf(item,start);Item:要查找的值;start:可选的整数参数,缺省则从起始位子开始查找。indexOf();返回元素在数组中的位置,如果没有则返回-1;例子:vararr=[‘aaa’,’bbb’,’ccc’,’ddd’,’eee’];  vara=arr.indexOf(‘ddd’);  console.log(a);  //3  varb=arr.indexOf(‘d’);  console.log(b);  //-1  我通常的用法:if(

    2022年10月19日
  • sed与awk的使用

    sed与awk的使用

  • jetbrains系列软件汉化图文教程

    idea 激活码,jetbrains系列软件汉化图文教程

  • 系统环境变量与用户环境变量区别_windows7建立用户变量

    系统环境变量与用户环境变量区别_windows7建立用户变量区别:  环境变量分为系统环境变量和用户环境变量。环境变量是指系统环境变量,对所有用户起作用,而用户环境变量只对当前用户起作用。  例如你要用opencv,那么你把opencv的bin目录加入到path变量下面,那么它就是系统环境变量,所用用户登陆,在命令行输入opencv都会有opencv的帮助信息出来。而如果你在某个用户的变量下面新建一个变量,那么它就只对这个用户有用,当你以其他用户登陆时这

  • 零基础学Java(10)面向对象-使用LocalDate类完成日历设计

    零基础学Java(10)面向对象-使用LocalDate类完成日历设计前言在我们完成这个日历设计前,需要了解Java中的预定义类LocalDate的一些用法语法LocalDate.now()//2022-07-01会构造一个新对象,表示构造这个对象时的日期。

  • PyTorch学习之六个学习率调整策略

    PyTorch学习之六个学习率调整策略PyTorch学习率调整策略通过torch.optim.lr_scheduler接口实现。PyTorch提供的学习率调整策略分为三大类,分别是有序调整:等间隔调整(Step),按需调整学习率(MultiStep),指数衰减调整(Exponential)和余弦退火CosineAnnealing。自适应调整:自适应调整学习率ReduceLROnPlateau。自定义调整:自定义调整学习率…

发表回复

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

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