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

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

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

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

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

效果展示:

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

代码如下:

#include 
#include 
#include 
#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('
'))
		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++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

展开阅读全文

页面更新:2024-03-25

标签:圣诞树   语言   披荆斩棘   圣诞节   私信   源码   效果   代码   简单   基础   项目   详细   视频

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top