用Go語言繪制Go語言地鼠吉祥物
Go語言是谷歌2009發布的第二款開源編程語言。Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進程。但Go語言除了擅長處理服務器端任務外,它還可以用來做圖。
package mainimport ( "log"
"github.com/fogleman/pt/pt" )
func main() { scene := pt.Scene{} wall := pt.SpecularMaterial(pt.HexColor(0xFCFAE1), 2) scene.Add(pt.NewSphere(pt.Vector{4, 7, 3}, 2, pt.LightMaterial(pt.Color{1, 1, 1}, 1, pt.NoAttenuation))) scene.Add(pt.NewCube(pt.Vector{-30, -1, -30}, pt.Vector{-8, 10, 30}, wall)) scene.Add(pt.NewCube(pt.Vector{-30, -1, -30}, pt.Vector{30, 0.376662, 30}, wall)) material := pt.GlossyMaterial(pt.Color{}, 1.5, pt.Radians(30)) mesh, err := pt.LoadOBJ("examples/gopher.obj", material) if err != nil { log.Fatalln("LoadOBJ error:", err) } mesh.SmoothNormals() scene.Add(mesh) camera := pt.LookAt(pt.Vector{8, 3, 0.5}, pt.Vector{-1, 2.5, 0.5}, pt.Vector{0, 1, 0}, 45) pt.IterativeRender("out%03d.png", 10, &scene, &camera, 2560/4, 1440/4, -1, 16, 4) }</pre>
上面這都簡潔的只有幾行的代碼運行后會輸出什么結果?也許會讓你吃驚。不信的話,你可以運行一下,運行時方法是:
go run examples/gopher.go輸出的結果是這樣的:
![]()
多么漂亮的地鼠呀,這個地鼠可不是一般的地鼠,它是Go語言的吉祥物。幾句簡單的代碼就能生成這么漂亮的圖案真是神奇吧。這寫代碼的作者是 Michael Fogleman ,除了這個地鼠外,下面這幾個圖片也是用Go語言繪制出來的,是不是有點不可思議?
![]()
![]()
![]()
![]()
</div> </div> 原文 http://www.techug.com/go-path-tracer
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!