玫瑰花(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语言代码)

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring cloud 入门系列三:使用Eureka 搭建高可用服务注册中心

    在上一篇中分享了如何使用Eureka进行服务治理,里面搭建的服务注册中心是单体的,但是在实际的应用中,分布式系统为了防止单体服务宕机带来严重后果,一般都会采用服务器集群的形式,服务注册中心也是一样

    2022年2月16日
    38
  • nginx rtmp 视频流服务器直播测试

    nginx rtmp 视频流服务器直播测试一、配置1、nginx流媒体服务器下载nginx源码,nginx-rtmp-module源码,先configure“–add-modeule=…”…,再编译安装,教程很多,略……。先增加如下配置.再配置路由器端口映射:二、VLC测试Ffmpeg推流转发rtmp://live.hkstv.hk.lxdns.com/live/hks视…

    2022年10月20日
    3
  • win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法

    win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法win10系统创建一键锁定计算机的快捷方式的操作方法?很多win10用户在使用电脑的时候,会发现win10系统创建一键锁定计算机的快捷方式的的现象,根据小编的调查并不是所有的朋友都知道win10系统创建一键锁定计算机的快捷方式的的问题怎么解决,不会的朋友也不用担心,下面我就给大家讲解一下win10系统创建一键锁定计算机的快捷方式的的少许解决办法,其实步骤很简单,只需要1、首先在桌面上的空白处鼠标右…

    2022年7月21日
    20
  • imx8开发板_安卓反编译教程

    imx8开发板_安卓反编译教程按照官方手册,在ubuntu14.04上搭建环境sudoapt-getuuiduuid-devsudoapt-getzlib1g-devliblz-devsudoapt-getliblzo2-2liblzo2-devsudoapt-getlzopsudoapt-getgit-corecurlsudoapt-getu-boot-toolssudo…

    2022年10月7日
    2
  • 散列函数

    散列函数    在线性表和树表中的查询中,记录在表的位置跟记录的关键字之间不存在确定关系,也就是说在线性表和树表中查询通常要依托关键字比较,查找的效率取决于比较次数。    散列函数:一个把查找表中的关键字映射成该关键字对应的地址函数,记为Hash(key)=Addr。这里的地址可以是数组下标,索引,或内存地址等。散列函数可能将两个或两个以上的不同关键字映射到同一个地址,称这种情况为“冲突”。(假若这个函…

    2022年5月14日
    66
  • Pycharm Terminal窗口运行程序「建议收藏」

    Pycharm Terminal窗口运行程序「建议收藏」anaconda配置好环境(一系列的准备操作,我不会,老师帮我弄的)最开始:base是一个根目录,共用环境在远端创建好一个自己的环境:condacreate-n环境名激活环境:sourceactivate环境名进入环境后下载的包才是在自己的目录下,如果在base那块下载会影响别人的环境下载包指令:pipinstall包名进入你远程环境下的目录:cd目录(这些都要配好,还是我不会)目录的话可以这样找运行:python文件名.py…

    2025年7月12日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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