tft每日頭條

 > 生活

 > 聖誕節到了畫什麼最好看

聖誕節到了畫什麼最好看

生活 更新时间:2024-09-28 18:16:48

前段時間,我們一位三年級的小學員為了向媽媽表達愛意,給AC柴提了一個要求:“老師,下節課我要學畫愛心,畫好多好多的愛心”。可AC柴作為一條害羞腼腆的編程狗,從來沒有畫過半個愛心啊。于是AC柴硬着頭皮,開始了畫愛心之旅~

首先,編程狗是有追求的,所以AC柴堅決不用現成的愛心表情包,明明能用輸入法打出的[心],偏偏要用代碼來畫。經過一番激烈的選型,他決定采用一種三年級小朋友也能上手的編程方式來畫,那就是Processing!!!,Procesisng号稱是編程界的藝術大師

1 做好畫畫的準備

打開它的界面,一個空白文檔呈現在AC柴面前,這個界面雖然不好說美觀,但是足夠簡潔直觀,代碼往空白的地方寫,寫完了點一下左上角第一個圖标(就兩個圖标),就可以查看畫出的玩意兒,當然現在還什麼都沒畫呢。

聖誕節到了畫什麼最好看(聖誕節前的暴擊)1

界面

AC柴開始大展身手,它打下了一行代碼,這麼一行代碼就幫我們創建了一個長方形的畫布,長800px,寬600px。點擊“運行”,彈出一個灰色的窗口,它就是我們的畫布。

size(800, 600);

聖誕節到了畫什麼最好看(聖誕節前的暴擊)2

運行結果

小同學審美在線,說灰不拉秋真難看。要求修改畫布的顔色,并且給了AC柴三個數字 218 182 250, 然後AC柴接着寫了一行 background(218,182,250); 這行代碼就是把畫布的背景顔色設為RGB(218,182,250)對應的顔色,這樣,我們就把畫布給弄好了

size(800,600); background(218,182,250);

聖誕節到了畫什麼最好看(聖誕節前的暴擊)3

2 趕快畫愛心吧

前一節課AC柴和小同學一起學了怎麼畫圓,所以我們決定用圓畫出一個愛心,怎麼畫?看圖說話!

聖誕節到了畫什麼最好看(聖誕節前的暴擊)4

我們先要準備一個6行9列的長方形,标出要畫圓的格子。AC柴讓小同學标記出了要畫圓的格子,記下格子的行号和列号,做出下面的表

第幾行

第幾列要畫圓

1

2、3、 7、8

2

1、2、3、4、 6、7、8、9

3

2、3、4、5、6、7、8

4

3、4、5、6、7

5

4、5、6

6

5

然後我們用 變量 i 表示行号,用 變量 j 表示列号,那麼每一個格子都可以表示為( i , j )的形式,比如(1,2)這個格子我們要畫,(1,3)也要畫,(1、4)就不用畫

确定了哪些格子要畫,AC柴和小同學迅速地開始動手,先搭了一個雙重for循環的框架

for (int i = 1; i <= 6; i ) { for (int j = 1; j <= 9; j ) { // 汪汪汪 } }

什麼?!雙重for循環不知道是啥?上節課白學啦?!好吧,本柴再來解釋一下,敲黑闆

[666] 雙重for循環可以用來遍曆多行多列,外層的for循環先去鎖定某一行/列,然後通過内層的for循環一個一個去檢查這一行/列裡的每一列/行 [666]

言歸正傳,//汪汪汪 這邊寫什麼呢?“畫圓呗”,小同學脫口而出。好,這就畫給你看。AC柴用 ellipse(j*50, i*50, 50, 50) 來代替 //汪汪汪,點一點運行,發生了什麼呢?

聖誕節到了畫什麼最好看(聖誕節前的暴擊)5

小同學敏銳地意識到,我們隻需要在前面表格中記錄的格子裡畫圓,而不需要每一個都畫。

沒錯,有條件地畫,就得用上條件判斷語句,本柴給你畫第一行打個樣例啊,看仔細

size(800,600); background(218,182,250); for (int i = 1; i <= 6; i ) { for (int j = 1; j <= 9; j ) { if ( i == 1 & ( j == 2 || j == 3 || j == 7 || j == 8)) { ellipse(j*50, i*50, 50, 50); } } }

聖誕節到了畫什麼最好看(聖誕節前的暴擊)6

第一行

類似的,對于第2到6行,我們也是隻在部分格子畫。AC柴把剩下的5行交給小學員去打,小學員打到第二和第三行的時候傻了眼。讓我們再來看看前面的表。哇哦,第2、3行有好多列要畫

第幾行

第幾列要畫圓

1

2、3、 7、8

2

1、2、3、4、 6、7、8、9

3

2、3、4、5、6、7、8

4

3、4、5、6、7

5

4、5、6

6

5

别怕,給你個簡單的方法,如果要畫的格子太多了,那麼不畫的格子就少。所以我們可以反過來,用條件語句指定列号不等于幾的時候要畫。比如對第二行的格子來說,列号不等于5時要畫。再給你寫第二行啊,看着

size(800,600); background(218,182,250); for (int i = 1; i <= 6; i ) { for (int j = 1; j <= 9; j ) { if ( i == 1 & ( j == 2 || j == 3 || j == 7 || j == 8)) { ellipse(j*50, i*50, 50, 50); } if (i == 2 & ( j != 5)) { ellipse(j*50, i*50, 50, 50); } } }

聖誕節到了畫什麼最好看(聖誕節前的暴擊)7

第1、2行

經過一番敲敲打打,AC柴和小同學終于打完了,最後出來了下面的效果。

聖誕節到了畫什麼最好看(聖誕節前的暴擊)8

小同學繼續審美上線,白色圓多醜啊,于是親自在前面加了一行 fill(234,158, 245),fill(R,G,B)用來給圖像填充某種顔色

聖誕節到了畫什麼最好看(聖誕節前的暴擊)9

填充顔色後

大功告成!這是一種方式

用方塊拼愛心

小同學靈機一動,既然圓可以拼,正方形不是也可以拼嗎?于是她隻修改了一個地方,把ellipse(j*50,i*50,50,50)替換成了rect(j*50,i*50,50,50)

聖誕節到了畫什麼最好看(聖誕節前的暴擊)10

心髒線

給大家講個很扯的故事

Christine是十七世紀時瑞典的一位公主,她美麗善良,而且很聰明,尤其很喜歡數學。她遇到一個窮困潦倒的小夥子,這個小夥子隻能靠乞讨為生,還沉迷于研究數學問題。

這個公主看到之後把他請過來作為自己的數學老師,和她一起讨論數學問題。兩個人相愛了。國王覺得小夥子配不上自己的女兒,于是把他驅逐出國,扣押了他們之間所有的書信。公主收不到小夥子的信件,以為他抛棄了自己。

沒想到有一天,她收到了一封小夥子的信件。原來這封信 國王和大臣誰也讀不懂,所以拿去給公主試試看,信裡面隻有一行公式 r =a (1 - sin θ) 。公主根據這個公式,在畫紙上描畫。最後,一個愛心赫然呈現在她眼前。于是她一下子就懂了,可是小夥子寒病交加,不久就去世了

size(800,600); fill(255,0,0); float step = 0.1; float r = 100; translate(width/2, height/2); rotate(-PI/2); for (float i = 0; i < PI*2; i = step) { line(r*(2*cos(i)-cos(2*i)), r*(2*sin(i)-sin(2*i)), r*(2*cos(i step)-cos(2*i 2*step)), r*(2*sin(i step)-sin(2*i step*2)) ); }

聖誕節到了畫什麼最好看(聖誕節前的暴擊)11

心髒線

畫完之後,小同學把這些愛心發給了媽媽,媽媽為她續報了一年的課程……

好吧,藍色的話隻是AC柴的幻想,不過看到小同學和她的媽媽都很開心,并且學到了一些東西,我們也挺滿足。汪汪!!我們安排Processing的課程作為進階到C 語法之前的補充,最後的目标是帶孩子參加科技節比賽,打信奧。

如果你也在打算讓孩子學編程、參加比賽,卻不知道如何入手,歡迎點擊下方鍊接,加入交流群或者直接聯系AC柴 ~ 明年3月的青少年等級考試安排出爐,正好可以拿來練手哦~

戳戳戳 向 青少年等級考試最新安排出爐!要報名的同學趕快看過來~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved