逐夢編程,讓中華屹立世界之巔。
簡單的事情重復(fù)做,重復(fù)的事情用心做,用心的事情堅持做;
上一篇: C語言實現(xiàn)畫愛心(兩種方式畫法)
前言
圣誕節(jié)了,別人都手繪圣誕樹,本期用C語言畫一個會跳動的圣誕樹之樹界降臨;
做一個漂亮的圣誕樹送給你的愛人哈,愿天下有情人終成眷屬!
一、圣誕樹介紹
圣誕樹,是指用燈燭和裝飾品把樅樹或洋松裝點起來的常青樹。作為是圣誕節(jié)重要的組成元素之一,近代圣誕樹起源于德國,后來逐步在世界范圍內(nèi)流行起來,成為圣誕節(jié)慶祝中最有名的傳統(tǒng)之一。
據(jù)說圣誕樹最早出現(xiàn)在古羅馬12月中旬的所謂農(nóng)神節(jié)?,F(xiàn)在通常人們在圣誕前后把一棵常綠植物如松樹弄進屋里或者在戶外,并用圣誕燈和彩色的裝飾物裝飾。并把一個天使或星星放在樹的頂上。
二、效果圖欣賞
三、圣誕小故事賞析
以前德國的亞爾薩斯(現(xiàn)一般譯為阿爾薩斯,屬法國),是出產(chǎn)圣誕樹的地方。根據(jù)傳說,有一位名叫弗樂倫亭的隱修圣人,住在亞爾薩斯的一個樹林當(dāng)中,他非常喜歡小孩子。有一年的圣誕節(jié),他希望附近的小孩子,都能在一起快樂的玩,但是他很貧窮,沒有錢買孩子們喜愛的玩具和糖果,因此他為這件事很傷腦筋。
一天早上,弗樂倫亭在樹林中散步的時候,忽然看見一棵小杉樹,樹上堆滿了雪,枝上掛著許多小冰條,經(jīng)過太陽一照射,閃閃發(fā)光,非常的漂亮。他就把那棵樹弄回來,種在盆里面。又在樹林中撿一些野果子,再和上面粉,做成一些十字架,或星星形狀的小餅,掛在樹枝上面。又用一些小蠟燭,插在樹枝上,把那棵樹裝扮得五光十色,非常的美觀。到了圣誕夜晚,弗樂倫亭打起鐘來,孩子們聽到了,都跑到他的茅屋里,大家圍著那棵樹,手舞足蹈的唱著圣誕歌曲,然后弗樂倫亭把糕餅分給孩子們吃,讓大家過了一個快樂的圣誕節(jié)。以后,這個習(xí)俗流傳起來。
四、最喜愛的圣誕老人
圣誕節(jié)人物形象主要指圣誕老人(SantaClaus),其原型是生活在公元4世紀米拉城(今土耳其境內(nèi))的主教圣尼古拉斯。他一生當(dāng)中做了很多慈善工作,最喜歡在暗中幫助窮人。圣誕老人是他后來的別號,這個名字是出自他暗中送錢,幫助三個女孩子的故事。尼古拉斯死后被尊為圣徒。圣誕老人的形象是一位身穿紅袍、頭戴紅帽的白胡子老頭。每年圣誕節(jié)他駕著鹿拉的雪橇從北方而來,由煙囪進入各家,把圣誕禮物裝在襪子里掛在孩子們的床頭上或火爐前。
五、代碼示例
/*-----------------------------------【程序說明】----------------------------
* 項目命題: 圣誕樹--樹界降臨(C語言)
* 代碼所屬: 楓之劍客
* 作者: 阿甘
* 開發(fā)時間: 2021/12/24
* IDE 版 本: Visual Studio 2015
* 項目版本: 1.0.0.1
*---------------------------------------------------------------------------*/
//原文鏈接:https://blog.csdn.net/gzplyx/article/details/128200056
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159265359
#define T px + scale * r * cosf(theta), py + scale * r * sin(theta)
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;
}
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 ribbon()
{
float x = (fmodf(sy, 0.1f) / 0.1f - 0.5f) * 0.5f;
return sx >= x - 0.05f && sx <= x + 0.05f;
}
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("............................@y%u"[rand() % 32]);
}
}
}
else
{
putchar(' ');
}
}
Sleep(1000);
printf("\n\n\n");
for (size_t i = 0; i < 40; i++)
{
putchar(' ');
}
//_sleep(5000);
printf("Merry Christmas, baby~!\n");
Sleep(500);
for (size_t i = 0; i < 40; i++)
{
putchar(' ');
}
printf("You are all the cutest.\n");
Sleep(500);
for (size_t i = 0; i < 40; i++)
{
putchar(' ');
}
printf("2021/12/24, 獻給每一位編程愛好者\n");
system("pause");
}
總結(jié)
相信現(xiàn)在大家都有一顆圣誕樹了,或許許多時候編程的樂趣就在這里,偶爾做一個小游戲可能使你興趣大增,提高興趣程度對學(xué)習(xí)幫助很大哈,文末了,寫文不易,喜歡的友友們幫忙點個關(guān)注和贊。文章來源:http://www.zghlxwxcb.cn/news/detail-808321.html
新壁紙
文章來源地址http://www.zghlxwxcb.cn/news/detail-808321.html
到了這里,關(guān)于C語言畫圣誕樹源碼(樹界降臨)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!