"""

Example "Arcade" library code.

This example shows the drawing primitives and how they are used.

It does not assume the programmer knows how to define functions or classes

yet.

API documentation for the draw commands can be found here:

https://api.arcade.academy/en/latest/quick_index.html

A video explaining this example can be found here:

https://vimeo.com/167158158

If Python and Arcade are installed, this example can be run from the command line with:

python -m arcade.examples.drawing_primitives

"""

# Import the Arcade library. If this fails, then try following the instructions

# for how to install arcade:

# https://api.arcade.academy/en/latest/install/index.html

import arcade

# Open the window. Set the window title and dimensions (width and height)

arcade.open_window(600, 600, "Drawing Primitives Example")

# Set the background color to white

# For a list of named colors see

# https://api.arcade.academy/en/latest/arcade.color.html

# Colors can also be specified in (red, green, blue) format and

# (red, green, blue, alpha) format.

arcade.set_background_color(arcade.color.WHITE)

# Start the render process. This must be done before any drawing commands.

arcade.start_render()

# Draw a grid

# Draw vertical lines every 120 pixels

# 绘制 竖线 间隔 120 像素

for x in range(0, 601, 120):

arcade.draw_line(x, 0, x, 600, arcade.color.BLACK, 2)

# Draw horizontal lines every 200 pixels

# 绘制横线 间隔 200 像素

for y in range(0, 601, 200):

arcade.draw_line(0, y, 800, y, arcade.color.BLACK, 2)

# Draw a point

# 绘制文本

arcade.draw_text("draw_point", 3, 405, arcade.color.BLACK, 12)

# 绘制点

arcade.draw_point(60, 495, arcade.color.RED, 10)

# Draw a set of points

# 绘制文本

arcade.draw_text("draw_points", 123, 405, arcade.color.BLACK, 12)

point_list = ((165, 495),

(165, 480),

(165, 465),

(195, 495),

(195, 480),

(195, 465))

# 绘制多个点

arcade.draw_points(point_list, arcade.color.ZAFFRE, 10)

# Draw a line

# 绘制一条线

arcade.draw_text("draw_line", 243, 405, arcade.color.BLACK, 12)

arcade.draw_line(270, 495, 300, 450, arcade.color.WOOD_BROWN, 3)

# Draw a set of lines

# 绘制多个线

arcade.draw_text("draw_lines", 363, 405, arcade.color.BLACK, 12)

point_list = ((390, 450),

(450, 450),

(390, 480),

(450, 480),

(390, 510),

(450, 510)

)

arcade.draw_lines(point_list, arcade.color.BLUE, 3)

# Draw a line strip

# 连续点的连线

arcade.draw_text("draw_line_strip", 483, 405, arcade.color.BLACK, 12)

point_list = ((510, 450),

(570, 450),

(510, 480),

(570, 480),

(510, 510),

(570, 510)

)

arcade.draw_line_strip(point_list, arcade.color.TROPICAL_RAIN_FOREST, 3)

# Draw a polygon

# 绘制多边形轮廓线

arcade.draw_text("draw_polygon_outline", 3, 207, arcade.color.BLACK, 9)

point_list = ((30, 240),

(45, 240),

(60, 255),

(60, 285),

(45, 300),

(30, 300))

arcade.draw_polygon_outline(point_list, arcade.color.SPANISH_VIOLET, 3)

# Draw a filled in polygon

# 绘制多边形填充图像

arcade.draw_text("draw_polygon_filled", 123, 207, arcade.color.BLACK, 9)

point_list = ((150, 240),

(165, 240),

(180, 255),

(180, 285),

(165, 300),

(150, 300))

arcade.draw_polygon_filled(point_list, arcade.color.SPANISH_VIOLET)

# Draw an outline of a circle

# 绘制一个圆的轮廓线

arcade.draw_text("draw_circle_outline", 243, 207, arcade.color.BLACK, 10)

arcade.draw_circle_outline(300, 285, 18, arcade.color.WISTERIA, 3)

# Draw a filled in circle

# 绘制一个圆的填充图像

arcade.draw_text("draw_circle_filled", 363, 207, arcade.color.BLACK, 10)

arcade.draw_circle_filled(420, 285, 18, arcade.color.GREEN)

# Draw an ellipse outline, and another one rotated

# 绘制一个椭圆的轮廓线,并绘制另一个旋转的椭圆

arcade.draw_text("draw_ellipse_outline", 483, 207, arcade.color.BLACK, 10)

arcade.draw_ellipse_outline(540, 273, 15, 36, arcade.color.AMBER, 3)

arcade.draw_ellipse_outline(540, 336, 15, 36,

arcade.color.BLACK_BEAN, 3, 45)

# Draw a filled ellipse, and another one rotated

# 绘制一个椭圆的填充图像

arcade.draw_text("draw_ellipse_filled", 3, 3, arcade.color.BLACK, 10)

arcade.draw_ellipse_filled(60, 81, 15, 36, arcade.color.AMBER)

arcade.draw_ellipse_filled(60, 144, 15, 36,

arcade.color.BLACK_BEAN, 45)

# Draw an arc, and another one rotated

# 绘制一个弧线,和绘制一个旋转的弧线填图像

arcade.draw_text("draw_arc/filled_arc", 123, 3, arcade.color.BLACK, 10)

arcade.draw_arc_outline(150, 81, 15, 36,

arcade.color.BRIGHT_MAROON, 90, 360)

arcade.draw_arc_filled(150, 144, 15, 36,

arcade.color.BOTTLE_GREEN, 90, 360, 45)

# Draw an rectangle outline

# 绘制一个矩形的轮廓线和填充矩形

arcade.draw_text("draw_rect", 243, 3, arcade.color.BLACK, 10)

arcade.draw_rectangle_outline(295, 100, 45, 65,

arcade.color.BRITISH_RACING_GREEN)

arcade.draw_rectangle_outline(295, 160, 20, 45,

arcade.color.BRITISH_RACING_GREEN, 3, 45)

# Draw a filled in rectangle

arcade.draw_text("draw_filled_rect", 363, 3, arcade.color.BLACK, 10)

arcade.draw_rectangle_filled(420, 100, 45, 65, arcade.color.BLUSH)

arcade.draw_rectangle_filled(420, 160, 20, 40, arcade.color.BLUSH, 45)

# Load and draw an image to the screen

# Image from kenney.nl asset pack #1

# 加载并绘制图像到屏幕上

arcade.draw_text("draw_bitmap", 483, 3, arcade.color.BLACK, 12)

texture = arcade.load_texture(":resources:images/space_shooter/playerShip1_orange.png")

scale = .6

arcade.draw_scaled_texture_rectangle(540, 120, texture, scale, 0)

arcade.draw_scaled_texture_rectangle(540, 60, texture, scale, 45)

# Finish the render.

# Nothing will be drawn without this.

# Must happen after all draw commands

arcade.finish_render()

# Keep the window up until someone closes it.

arcade.run()

这段代码是一个使用Arcade库进行2D图形绘制的Python程序。Arcade是一个用于创建2D视频游戏的Python库,它提供了丰富的绘图和游戏开发功能。下面是代码的逐行描述:

导入arcade模块,这是使用Arcade库进行绘图的基础。 调用arcade.open_window函数来创建一个宽600像素、高600像素,标题为“Drawing Primitives Example”的窗口。 使用arcade.set_background_color函数设置窗口的背景颜色为白色。 调用arcade.start_render开始渲染过程,在执行任何绘图命令之前必须调用这个函数。 使用两个for循环绘制一个网格,竖线每隔120像素绘制一次,横线每隔200像素绘制一次。 使用arcade.draw_text函数在屏幕上绘制文本“draw_point”,表示接下来要绘制一个点。 调用arcade.draw_point函数在指定位置(60, 495)绘制一个点,颜色为红色,大小为10像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_points”,表示接下来要绘制一系列点。 定义一个点列表point_list,包含一系列点的坐标。 调用arcade.draw_points函数绘制point_list中的所有点,颜色为ZAFFRE色,大小为10像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_line”,表示接下来要绘制一条线。 调用arcade.draw_line函数绘制一条从(270, 495)到(300, 450)的线,颜色为WOOD_BROWN色,线宽为3像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_lines”,表示接下来要绘制一系列线。 定义一个点列表point_list,包含一系列线段的起点和终点坐标。 调用arcade.draw_lines函数绘制point_list中的所有线段,颜色为蓝色,线宽为3像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_line_strip”,表示接下来要绘制一系列连续的点。 定义一个点列表point_list,包含一系列连续点的坐标。 调用arcade.draw_line_strip函数绘制point_list中的点,并将它们连成线,颜色为TROPICAL_RAIN_FOREST色,线宽为3像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_polygon_outline”,表示接下来要绘制一个多边形的轮廓线。 定义一个点列表point_list,包含多边形的顶点坐标。 调用arcade.draw_polygon_outline函数绘制point_list定义的多边形轮廓线,颜色为SPANISH_VIOLET色,线宽为3像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_polygon_filled”,表示接下来要绘制一个填充的多边形。 定义一个点列表point_list,包含另一个多边形的顶点坐标。 调用arcade.draw_polygon_filled函数绘制point_list定义的多边形填充图像,颜色为SPANISH_VIOLET色。 使用arcade.draw_text函数在屏幕上绘制文本“draw_circle_outline”,表示接下来要绘制一个圆的轮廓线。 调用arcade.draw_circle_outline函数绘制一个圆的轮廓线,圆心在(300, 285),半径为18像素,颜色为WISTERIA色,线宽为3像素。 使用arcade.draw_text函数在屏幕上绘制文本“draw_circle_filled”,表示接下来要绘制一个填充的圆。 调用arcade.draw_circle_filled函数绘制一个填充的圆,圆心在(420, 285),半径为18像素,颜色为绿色。 使用arcade.draw_text函数在屏幕上绘制文本“draw_ellipse_outline”,表示接下来要绘制一个椭圆的轮廓线。 调用arcade.draw_ellipse_outline函数绘制两个椭圆的轮廓线,一个在(540, 273),另一个旋转45度。 使用arcade.draw_text函数在屏幕上绘制文本“draw_ellipse_filled”,表示接下来要绘制一个填充的椭圆。 调用arcade.draw_ellipse_filled函数绘制两个填充的椭圆,一个在(60, 81),另一个旋转45度。 使用arcade.draw_text函数在屏幕上绘制文本“draw_arc/filled_arc”,表示接下来要绘制一个弧线和填充的弧线。 调用arcade.draw_arc_outline函数绘制一个弧线的轮廓,从90度开始到360度结束,位置在(150, 81)。 调用arcade.draw_arc_filled函数绘制一个填充的弧线,也是从90度开始到360度结束,位置在(150, 144),并且旋转了45度。 使用arcade.draw_text函数在屏幕上绘制文本“draw_rect”,表示接下来要绘制一个矩形的轮廓线。 调用arcade.draw_rectangle_outline函数绘制两个矩形的轮廓线,一个在(295, 100),另一个在(295, 160)并且旋转了45度。 使用arcade.draw_text函数在屏幕上绘制文本“draw_filled_rect”,表示接下来要绘制一个填充的矩形。 调用arcade.draw_rectangle_filled函数绘制两个填充的矩形,一个在(420, 100),另一个在(420, 160)并且旋转了45度。 使用arcade.draw_text函数在屏幕上绘制文本“draw_bitmap”,表示接下来要绘制一个位图图像。 使用arcade.load_texture函数加载一个图像资源,这个图像是玩家飞船的图片。 定义一个缩放比例scale。 调用arcade.draw_scaled_texture_rectangle函数两次,分别在(540, 120)和(540, 60)的位置绘制加载的图像,并且应用了缩放和旋转。 调用arcade.finish_render函数完成渲染,这是所有绘图命令完成后的必须步骤。 调用arcade.run函数启动Arcade的应用程序,这将显示窗口并开始事件循环,保持窗口打开直到用户关闭它。 这个程序展示了Arcade库中各种绘图原语的使用方法,包括点、线、多边形、圆、椭圆、弧线、矩形和图像的绘制。这些原语是创建更复杂图形和游戏场景的基础。

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。