PyGame 2D繪圖

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

農曆新年到了,於是筆者幾天前用Python做了個文字小動畫,程式碼在此

做完後,心想也來發一篇和PyGame有關的2D繪圖吧。

基本繪圖
在PyGame要如何繪製直線、矩形、圓形、多邊形等常見的圖形呢?這些基本功能當然要先查API囉,所以來看一下PyGame Drawing API:http://www.pygame.org/docs/ref/draw.html 有提供那些功能。(底下文字取自 http://www.pygame.org/docs/ref/draw.html)



pygame.draw
pygame module for drawing shapes
pygame.draw.rectdraw a rectangle shape
pygame.draw.polygondraw a shape with any number of sides
pygame.draw.circledraw a circle around a point
pygame.draw.ellipsedraw a round shape inside a rectangle
pygame.draw.arcdraw a partial section of an ellipse
pygame.draw.linedraw a straight line segment
pygame.draw.linesdraw multiple contiguous line segments
pygame.draw.aalinedraw fine antialiased lines
pygame.draw.aalinesdraw a connected sequence of antialiased lines
簡短說明一下,rect是矩形、polygon是多邊形、circle是圓形、ellipse是橢圓形、arc是弧形、line是直線、lines是連續的直線線段、aaline是抗鋸齒的直線、aalines是抗鋸齒的直線線段。這些function呼叫的前兩個參數都是 Surface與Color。Surface是圖形呈現的地方,通常是screen。Color為圖形要顯示的顏色。

在電腦繪圖中,有一點需要注意的:「電腦座標系統」。和我們習慣的座標系統是不一樣的(見下圖,圖取自[2])

了解以上函式庫的使用方式以及電腦座標系統的觀念後,就可以開始著手設計要畫的圖案了。例如下圖(資料出處:[1])


更多的範例可參考 Program Arcade Games With Python And Pygame Chapter 5: Introduction to Graphics

參考資料:
[1] http://www.pygame.org/docs/ref/draw.html
[2] Program Arcade Games With Python And Pygame Chapter 5: Introduction to Graphics

沒有留言: