用C语言实现一个圣诞树!(超简单详细)全部源码分享

Posted 一起学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言实现一个圣诞树!(超简单详细)全部源码分享相关的知识,希望对你有一定的参考价值。

2022年12月25号就是圣诞节了!圣诞节当然要有个圣诞树了,今天给你们用C语言编写一个雪夜圣诞树!

如果本人的代码能够帮到你的话,还请在文章下方点个赞支持一下哟~ 这个就是用单纯的C语言代码实现的,需要一点点数学知识

那么我们话不多说,先来看看具体的效果吧~上面是我预想中的效果图(不是忽悠大家点进来哦)

后面我会更新更加酷炫的圣诞树,大家可以期待哦~

效果展示:

别人都手绘圣诞树,身为程序猿的我们可以用C语言编写一个圣诞树出来,可能C语言的效果没那么炫酷,后面我在看看弄个带音乐或者带雪花的版本出来,大家先用这个小小的准备一些吧~

代码如下:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159265359
float sx, sy;
float sdCircle(float px, float py, float r) 
	float dx = px - sx, dy = py - sy;
	return sqrtf(dx * dx + dy * dy) - r;

float opUnion(float d1, float d2) 
	return d1 < d2 ? d1 : d2;

#define T px + scale * r* cosf(theta), py + scale * r * sin(theta)
int ribbon() 
	float x = (fmodf(sy, 0.1f) / 0.1f - 0.5f) * 0.5f;
	return sx >= x - 0.05f && sx <= x + 0.05f;

float f(float px, float py, float theta, float scale, int n) 
	float d = 0.0f;
	for (float r = 0.0f; r < 0.8f; r += 0.02f)
		d = opUnion(d, sdCircle(T, 0.05f * scale * (0.95f - r)));
	if (n > 0)
		for (int t = -1; t <= 1; t += 2) 
			float tt = theta + t * 1.8f;
			float ss = scale * 0.9f;
			for (float r = 0.2f; r < 0.8f; r += 0.1f) 
				d = opUnion(d, f(T, tt, ss * 0.5f, n - 1));
				ss *= 0.8f;
			
		
	return d;

int main(int argc, char* argv[]) 
	int n = argc > 1 ? atoi(argv[1]) : 3;
	float zoom = argc > 2 ? atof(argv[2]) : 1.0f;
	for (sy = 0.8f; sy > 0.0f; sy -= 0.02f / zoom, putchar('\\n'))
		for (sx = -0.35f; sx < 0.35f; sx += 0.01f / zoom) 
			if (f(0, 0, PI * 0.5f, 1.0f, n) < 0.0f) 
				if (sy < 0.1f)
					putchar('.');
				else 
					if (ribbon())
						putchar('=');
					else
						putchar("...................................#j&o"[rand() % 32]);
				
			
			else
				putchar(' ');
		




希望对大家有帮助!快拿着代码去试试效果吧~有什么问题可以来我下方粉丝群哦!

此外,我也给大家分享我收集的其他资源,从最零基础开始的教程到C语言C++项目案例,帮助大家在学习C语言的道路上披荆斩棘!

 

 整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!(↓↓↓↓↓↓)

以上是关于用C语言实现一个圣诞树!(超简单详细)全部源码分享的主要内容,如果未能解决你的问题,请参考以下文章

C语言实现贪吃蛇小游戏!(超简单详细)详细思路+源码分享

C语言实现推箱子游戏!(超简单详细)代码思路+源码分享

C语言十字消除游戏(超简单详细),详细思路+源码分享

C语言零基础项目:涂格子(点灯)游戏!详细思路+源码分享

C语言零基础项目:吃豆人小游戏!详细思路+源码分享

C语言实现扫雷游戏(超详细)