近年來關(guān)注圖形趣味編程的用戶越來越多,小編整理了關(guān)于c語言圖形編程的教程書,圖形化編程軟件,開心一刻:30張編程領(lǐng)域的趣圖,第10章 隨機山水畫(《Python趣味創(chuàng)意編程》教學(xué)視頻),趣味編程,用Scratch和Python畫勾股樹??,供您參考
1、圖形編程都是用的純C函數(shù)庫, 比如Windows的GDI,還有DirectX,以及開源的OpenGL。這些都是純C庫,也就是說會C語言就能開發(fā)圖形界面和游戲了。C++當(dāng)然也可以調(diào)用這些函數(shù)庫,但不是必要的。2、學(xué)GDI的話*的書是《Windows程序設(shè)計.chm》這個文檔,這東西網(wǎng)上到處都有。學(xué)OpenGL的話,有個網(wǎng)站Nehe有完整的教學(xué)。人翻譯了這個教程的中文版,google “Nehe opengl” 就能找到了。
一直陪著孩子成長,開始買了EV3,和孩子一起搭一起編程,后來讓他自己玩scratch junior,都玩得挺好,后來上了一年,老婆要求配孩子編程,scratch更多得感覺是游戲,而且多線程和基于事件得編程風(fēng)格,我個人覺得對孩子學(xué)習(xí)編程知識也有些問題,因為這些都應(yīng)該高級開發(fā)的知識,而且許多基本的編程知識,比如變量作用域等,scratch就比較差,最重要編出來的東西大部分是游戲是我比較反感的。因為自己一直是做圖形化編程控制硬件,一直使用圖形化工具,自己平時空閑時間,也做了一套圖形化編程的軟件,趁著今年疫情,就把這個軟件改成了一個可以讓孩子學(xué)習(xí)編程的工具,然后和孩子一起學(xué)了三個多月,*的兒子目前學(xué)會了程序的各種基礎(chǔ)知識,比如變量、作用域、循環(huán)、邏輯、函數(shù)、遞歸等。這個編程工具,和scratch等圖形化編程工具一樣,都可以通過拖放完成程序的編寫。不過和已有編程工具區(qū)別很大,主要包含以下幾點:1 支持所有代碼知識,比如變量、變量作用域、支持函數(shù)和遞歸、全部四則運算、數(shù)組等全部代碼知識,去掉顏色,其實就是代碼,所以孩子可以學(xué)到更多代碼知識。特別是循環(huán),scratch等只能學(xué)到循環(huán)幾次和無限循環(huán),這個工具使用的真正代碼的for和while循環(huán),學(xué)會了這些知識,可以降低孩子轉(zhuǎn)移到代碼需要的精力。2 支持運行時候顯示具體步驟和數(shù)值,讓孩子理解程序運行的方法3 支持錯誤時候定位到具體代碼,方便孩子查找程序問題4 和真正代碼編輯一樣,運行后結(jié)果和真正代碼一摸一樣,出現(xiàn)黑色命令提示符窗口,或者畫板等,讓孩子熟悉編程真正的樣子。5 支持?jǐn)?shù)據(jù)結(jié)構(gòu),比如堆棧、丟列等,讓孩子也了解些數(shù)據(jù)結(jié)構(gòu)知識6 支持畫板,孩子可以在畫板里,繪制各種有趣圖形。7 支持機器人的控制,目前只實現(xiàn)了樂高 EV3 Mindstorm機器人,讓圖形化編程可以做更多事情。8 為了提高孩子的興趣,還增加文本轉(zhuǎn)語音、翻譯、數(shù)學(xué)庫等功能下邊是孩子寫的一些程序,包括質(zhì)因子計算、素數(shù)計算、進制轉(zhuǎn)換、數(shù)組排序等下邊是我寫的一些例子,畫圖、堆棧使用和EV3控制如果大家有興趣,可以到微軟商店搜索“圖形編程編輯器”下載,或者訪問
編程是一項有趣的工作,每位程序員在職業(yè)生涯中都會發(fā)生很多有趣的事情,本文收集了一些與程序員有關(guān)的圖,希望能給你帶來一時的輕松與快樂。1、每位程序員都有過這樣的時候2、通過調(diào)試代碼查找問題的根本原因時3、當(dāng)某人寫了 500 行代碼卻忘記保存時4、程序很混亂,但*卻編譯成功5、代碼注釋就像6、當(dāng)你工作了一天準(zhǔn)備去睡覺的時候7、用戶如何看待程序員 vs. 程序員如何看待用戶8、while 和 do...while 循環(huán)的區(qū)別9、當(dāng)程序員試圖修復(fù)一個小 bug10、當(dāng)程序員周五留下少量工作并準(zhǔn)備下周一完成時11、當(dāng)程序員在修復(fù) bug 時取得了一些進展12、當(dāng) Chrome 和計算機上其他應(yīng)用程序一起運行時13、當(dāng)嘲諷 IE 的速度慢時14、用于 Web 開發(fā)的語言之間的斗爭15、有史以來最鼓舞人心的報價16、當(dāng)程序員嘗試從代碼中刪除所有錯誤時17、當(dāng)有人說自己是 HTML 程序員時18、當(dāng)一名程序員準(zhǔn)備在改好代碼后吃午飯19、當(dāng)程序員發(fā)現(xiàn)某個應(yīng)用程序未托管在 Linux 服務(wù)器上20、當(dāng)你嘗試在上線當(dāng)天修復(fù)產(chǎn)品中的某些內(nèi)容時21、當(dāng)所有瀏覽器舉行聚會時22、當(dāng)程序員為宕機而向用戶解釋道歉時23、年度*24、當(dāng)代碼沒有出現(xiàn)任何異常,一切都按計劃進行時25、當(dāng)前端和后端在考試中作弊時26、在線課程承諾你會學(xué)到的和你最終學(xué)到的27、大家在一起分析問題的原因時28、軟件公司中的不同角色29、前端與后端30、調(diào)試了 7 個小時卻依舊沒有看懂自己的代碼如果看完感覺還不錯的話,記得點個贊哦~
(圖書介紹:童晶:《Python趣味創(chuàng)意編程》新書預(yù)告)本章我們將繪制隨機山水畫,如圖所示。首先學(xué)習(xí)HSB顏色模型,并實現(xiàn)天空顏色漸變的效果;接著利用柏林噪聲,實現(xiàn)云朵和山脈的繪制;然后學(xué)習(xí)隨機種子函數(shù),實現(xiàn)鼠標(biāo)點擊更新隨機畫面;*學(xué)習(xí)帶參數(shù)的函數(shù),改進實現(xiàn)的代碼。視頻教程:最終代碼: def setup(): size(800, 600) # 設(shè)定畫面寬度、高度 colorMode(HSB, 360, 100, 100) # 色相、飽和度、亮度 顏色模型 def draw(): cClouds = color(330, 25, 100) # 云的顏色 cSky = color(220, 50, 50) # 天空的顏色 cFurther = color(230, 25, 90) # 遠山的顏色 cCloser = color(210, 70, 10) # 近山的顏色 (cFurther) # 背景為遠山的顏色 drawSky(cSky,cFurther) # 畫出天空顏色漸變效果 (cClouds) # 畫出彩色云朵效果 (cFurther,cCloser) # 畫出山脈效果 def (): # 鼠標(biāo)按鍵時 noiseSeed(*int(random(10))) # 用幀數(shù)初始化隨機數(shù)種子 def drawSky(colSky,): # 畫出天空顏色漸變效果 for y in range(height/2): # 從頂部開始繪制畫面上半部分 (1) # 線粗細為1 # 顏色插值,從天空顏色逐漸變成遠山顏色 stroke(lerpColor(colSky,, float(y)/(height/2))) line(0, y, width, y) # 橫著的一條線 def (colClouds): # 畫出彩色云朵效果 noStroke() # 不繪制線條 for y in range(height/3): # 在上面三分之一部分 for x in range(0,width,2): # 橫向遍歷 = noise(x*0.004,y*0.02) # 柏林噪聲 ration = map(y, 0, height/3, 150, 5) # 越向下、云越透明 fill(colClouds, ration*) # 設(shè)置透明度 circle(x, y, 2) # 畫圓 def (,colCloser): # 畫出山脈效果 = 8 # 一共畫8層山 for n in range(): # 每一層山的y坐標(biāo)的最小值 yMin = map(n,0,,height*0.2,height*0.8) # 山的顏色由遠向近漸變 fill(lerpColor(,colCloser, float(n+1)/)) () # 開始畫一些頂點組成的圖形 vertex(0, height) # *個點在左下角 for x in range(0,width+1,2): # 從左到右遍歷 # 柏林噪聲 = noise(x*0.005,yMin*0.02) + 0.03*noise(x*0.3,yMin*0.2) # x橫坐標(biāo)對應(yīng)的高度,越近的山,高度越向下 yMountain = map(, 0, 1, yMin, yMin+height/2) vertex(x, yMountain) # 添加這個點 vertex(width, height) # *一個點在右下角 endShape(CLOSE) # 結(jié)束畫一些頂點組成的封閉圖形生成圖片也用在了《C和C++游戲趣味編程》第14章 火柴人的無盡冒險 游戲中,作為不同關(guān)卡的隨機背景:對應(yīng)游戲開發(fā)教程可以參看:
趣味編程,用Scratch和Python畫勾股樹 - 少兒編程網(wǎng)勾股樹,又稱為畢達哥拉斯樹。它是由古希臘數(shù)學(xué)家畢達哥拉斯根據(jù)勾股定理畫出的一個可以無限重復(fù)的圖形,因為重復(fù)多次以后的形狀像一棵樹,因此得名。這種圖形也被稱為分形圖,它們中的一個部分和它的整體或者其它部分都十分相似,分形體內(nèi)任何一個相對獨立的部分,在一定程度上都是整體的再現(xiàn)和縮影。這就是分形圖的自相似的特性。 我國古代把直角三角形稱為勾股形,并且直角邊中較小者為勾,另一長直角邊為股,斜邊為弦,所以把這個定理稱為勾股定理。公元前六世紀(jì),古希臘數(shù)學(xué)家畢達哥拉斯證明了勾股定理,因而西方人都習(xí)慣地稱這個定理為畢達哥拉斯定理。勾股定理的定義是,在平面上的一個直角三角形中,兩個直角邊邊長的平方加起來等于斜邊長的平方。用數(shù)學(xué)語言表達為用圖形來表達如下圖所示以勾股定理圖為基礎(chǔ),讓兩個較小的正方形按勾股定理繼續(xù)“生長”,又能畫出新一代的勾股定理圖,如此一直畫下去,最終得到一棵完全由勾股定理圖組成的樹狀圖形,稱之為勾股樹,再恰當(dāng)不過。在《Scratch趣味編程進階》一書的第7章7.5節(jié)“勾股樹”中,介紹了使用Scratch繪制勾股樹分形圖的方法:1. 先畫出大正方形作為基本形狀;2. 再以大正方形的上邊作為直角三角形的斜邊,分別在三角形的兩條直角邊上畫出兩個小正方形;3. 重復(fù)在每一個正方形的上邊分別畫出兩個小正方形,最終得到一個樹狀的圖形。上圖展示的是一棵勾股樹的部分“生長”過程,最終圖形如下圖所示。通過上面兩個不同的勾股樹分形圖可以看到,它們的區(qū)別是最基礎(chǔ)的勾股定理圖中間的三角形,一個是普通的直角三角形,一個是等腰直角三角形。由此可知,通過改變勾股定理圖中的直角三角形的兩個銳角的大小,將能構(gòu)造出不同形狀的勾股樹。下面我們以前面所介紹的勾股定理圖為基礎(chǔ),分別使用Scratch和Python來編寫繪圖程序,代碼如下。上面的Scratch程序使用到了遞歸方法來繪制勾股樹分形圖,對于遞歸編程不熟悉的朋友可以閱讀《Scratch編程從入門到精通》一書,書中第5章“過程”中對函數(shù)(過程、自定義積木)和遞歸調(diào)用進行了詳細的介紹。上面的Python程序來自蘇老師正在編寫的一本Python圖書《Python????》(書名待定),預(yù)計明年春天萬事物生長之時出版發(fā)行,有興趣的朋友可以留意一下。劇透完畢,我們接著說勾股樹。使用Scratch和Python繪制的勾股樹分形圖如下。Python中內(nèi)置了小海龜繪圖庫,提供了和Scratch類似的畫筆功能,可以用來繪制平面圖形。經(jīng)過對比,Python小海龜?shù)睦L圖速度遠遜于Scratch,使用加速模式也沒有Scratch的快,但是填充功能則是Scratch沒有的。因此,用Python小海龜繪制的勾股樹更漂亮一些。勾股樹、分形圖等是非常有趣的話題,對此感興趣的朋友可以閱讀《Scratch趣味編程進階》一書的第7章《神奇分形圖》,其中介紹了幾種常見的分形圖的構(gòu)造方法。會Python的朋友,可以嘗試著將Scratch代碼翻譯為Python代碼,感受一下使用Python的小海龜進行繪圖的樂趣。
如果以上內(nèi)容沒有幫到您,歡迎電話聯(lián)系我們,或者聯(lián)系在線客服咨詢