使用 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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告