使用 Arcade 庫 Python 繪製太陽


Python 是一種高度多用途的程式語言,擁有龐大的庫和框架網路,其功能超越了標準語言特性。Arcade 是用於建立圖形和處理使用者輸入的庫之一。它使用圓形和線條等基本形狀,漸變方法以及許多其他技術來建立吸引人的圖形。在本文中,我們將學習使用 Python 中的 Arcade 庫繪製太陽的不同方法。

Arcade 庫及其功能

Arcade 庫是一個基於 Pyglet(Python 的多媒體庫)構建的 Python 庫。它是一個用於開發 2D 遊戲和其他圖形應用程式的 Python 庫。它提供了對初學者友好的設計,同時也為經驗豐富的開發者提供了高階功能。它提供了許多功能,例如

Arcade 庫提供了各種繪圖函式,您可以從基本形狀(如線條、圓形、矩形和多邊形)開始,以及更復雜的形狀(如貝塞爾曲線)。

  • 它提供了一種簡單的方法來建立視窗並設定圖形上下文。

  • 它使用現代圖形硬體來快速有效地更改圖形。

  • 它還具有內建函式,用於新增聲音效果以使圖形更具吸引力。

  • 在您的遊戲中輕鬆載入檔案和其他資源。

  • 為了向您的遊戲或模擬新增逼真的物理效果,Arcade 庫為此提供了一個簡單的物理引擎。

  • 您可以使用 Arcade 庫提供的工具更改字型和樣式。

  • 它具有透過使用滑鼠和鍵盤事件處理使用者輸入的獨特功能。

因此,Arcade 是一個完整的庫,它提供了各種工具來在 Python 中建立互動式、吸引人和引人入勝的圖形應用程式。

使用 Arcade 庫繪製太陽

太陽是遊戲中和應用程式中經常使用的常見圖形元素。您可以透過多種方式使用 Arcade 庫繪製太陽,例如使用圓形和線條等基本形狀,但為了使其更真實和更具吸引力,您可以使用 Arcade 庫的各種函式。因此,讓我們從一個基本的太陽開始。

您需要安裝 Arcade 庫。您可以透過在系統命令提示符中輸入命令來執行此操作,即

pip install arcade 

示例

在此示例中,我們建立了一個基本且簡單的太陽,首先建立一個視窗來顯示太陽。

  • 視窗是透過使用 **arcade.open_window()** 函式建立的。

  • 然後,我們定義了一個函式 [def draw_sun():] 來繪製太陽,其中 **arcade.draw_circle_filled()** 方法用於在螢幕中央繪製一個填充的圓形。

您可以透過調整傳遞給 **arcade.draw_circle_filled()** 方法的引數來更改其大小和顏色來自定義物件。

import arcade
# Create a window, for the sun to be displayed in 
SCREEN_WIDTH = 500
SCREEN_HEIGHT = 500
window = arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT,"SUN")
# define the function to draw a sun 
def draw_sun():
    arcade.draw_circle_filled(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2, 200, arcade.color. ORANGE_RED) # the circle has radius of 200 pixels
@window.event()
def on_draw():
    arcade.start_render()
    draw_sun() # this function is called to add the sun to the window
arcade.run()

輸出

示例 2

在此第二個示例中,我們在 Python 中將 math 模組與 arcade 模組一起匯入。

  • 此 math 模組將幫助我們訪問各種數學函式,例如三角函式、對數等。在這裡,我們使用了 math.cos()、math.sin() 函式來根據角度計算每條光線的 x 和 y 座標。

  • 因此,它有助於計算每條光線的端點,並且每條光線都從太陽的中心發出。

  • main() 函式用於初始化 Arcade 視窗並呼叫 draw_sun() 以在中心繪製太陽。可以根據使用者的需要更改效果、顏色和大小。

import arcade
import math
# defined values for the screen
SCR_WIDTH = 640
SCR_HEIGHT = 400
RAYS_NUM = 50
RAY_LENGTH = 200
RAY_WIDTH = 5
def draw_sun(center_x, center_y, rays_num, ray_length, ray_width):
    angle_step = 2 * math.pi / rays_num
    for i in range(rays_num):
        angle = i * angle_step
        x1 = center_x + ray_length * math.cos(angle)
        y1 = center_y + ray_length * math.sin(angle)
        x2 = center_x + ray_length * math.cos(angle + math.pi)
        y2 = center_y + ray_length * math.sin(angle + math.pi)
# rays can be drawn using arcade.draw_line
        arcade.draw_line(x1, y1, x2, y2, arcade.color.ORANGE_RED, ray_width)
def main():
# create new window
    arcade.open_window(SCR_WIDTH, SCR_HEIGHT, "Spiraling Rays Method")
    arcade.set_background_color(arcade.color.SKY_BLUE)
    arcade.start_render()

    draw_sun(SCR_WIDTH // 2, SCR_HEIGHT // 2, RAYS_NUM, RAY_LENGTH, RAY_WIDTH)

    arcade.finish_render()
    arcade.run()
if __name__ == '__main__':
    main()

輸出

需要注意的事項

在繪製此類物件時,您應該牢記某些要點,例如:

  • 使用合適的視窗大小。

  • 正確的座標,用於在視窗中定位物件。

  • 在編寫程式碼時使用註釋,它可以幫助您記住,使其他人更容易理解,並且您以後可以除錯它。

結論

在本文中,我們使用了兩種不同的方法來使用 Python 中的 Arcade 庫繪製太陽。在第一種方法中,我們簡單地匯入了 arcade 庫,為視窗提供了常量,打開了一個新視窗,然後使用函式來繪製太陽。

而對於第二種方法,我們使用了 math 模組來繪製光線,這使得太陽看起來更具吸引力。以類似的方式,您可以更改樣式和光線,新增新的圖形,並嘗試在 Python 中建立不同的圖形應用程式。

更新於:2023-09-13

404 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告