库函数参考

函数和常量概览

初始化和关闭图形系统

close_graph() 关闭绘图窗口。
init_graph(width, height, headless) 初始化easygraphics系统,显示绘图窗口。

绘图设置

get_background_color(image) 获取图片的背景色。
get_color(image) 获取指定的图片的前景色(画笔颜色)。
get_composition_mode(image) 获取指定图片的合成模式(Composition mode)。
get_drawing_pos(image) 获取指定图片的“当前绘图位置”。
get_fill_color(image) 获取指定图片的填充色。
get_fill_rule(image) 获取填充多边形时所用的算法。
get_fill_style(image) 获取指定图片的填充样式。
get_font(image) 获取指定图片的字体。
get_font_size(image) 获取指定图片的字体大小。
get_height(image) 获取指定图片的高度。
get_line_style(image) 获取指定图片的(画笔)线型。
get_line_width(image) 获取指定图片的(画笔)线宽。
get_width(image) 获取指定图片的宽度。
get_write_mode(image) 获取指定图片的合成模式(Composition mode)。
get_drawing_x(image) 获取指定图片”当前绘图位置”的横坐标x。
get_drawing_y(image) 获取指定图片”当前绘图位置”的纵坐标y。
reset_view_port(image) 恢复缺省的视口设置。
reset_window(image) 恢复缺省的逻辑窗口设置。
restore_settings(image) 恢复之前保存的绘图设置。
save_settings(image) 保存当前的绘图设置。
set_background_color(color, image) 设置和修改背景色。
set_caption(title) 设置绘图窗口的标题
set_clip_rect(left, top, right, bottom, image) 设置矩形剪裁区域。
set_clipping(clipping, image) 设置是否启用剪裁。
set_color(color, image) 设置指定图片的前景色。
set_composition_mode(mode, image) 获取指定图片的合成模式(Composition mode)。
set_fill_color(color, image) 设置指定图片的填充色。
set_fill_rule(rule, image) 设置填充多边形时所用的算法。
set_fill_style(style, image) 设置指定图片的填充样式。
set_font(font, image) 设置指定图片的字体。
set_font_size(size, image) 设置指定图片的字体大小。
set_line_style(line_style, image) 设置指定图片的线型。
set_line_width(width, image) 设置指定图片的线宽。
set_view_port(left, top, right, bottom, …) 设置指定图片的视口。
set_window(left, top, width, height, image) 设置指定图片的逻辑窗口。
set_write_mode(mode, image) 获取指定图片的合成模式(Composition mode)。
text_height(image) 返回指定图片的文字(字体)高度。
text_width(text, image) 返回文字在指定图片中完整显示需要的宽度。

基本绘图函数

arc(x, y, start_angle, end_angle, radius_x, …) 绘制一条椭圆弧,起始角度为“start_angle”,结束角度为“end_angle”。
bezier(x0, y0, x1, y1, x2, y2, x3, y3, image) 绘制一条三次贝塞尔曲线(cubic bezier curve)。
chord(x, y, start_angle, end_angle, …) 绘制一个空心椭圆弓形(弧+弦),起始角度为“start_angle”,结束角度为“end_angle”。
circle(x, y, r, image) 画一个空心圆,圆心位于点(x,y)半径为r的。
clear_device(image) 清除指定图片上已经绘制的内容(露出背景色)。
clear_view_port(image) 清除视口中已经绘制的内容(露出背景色)。
draw_arc(x, y, start_angle, end_angle, …) 绘制一条椭圆弧,起始角度为“start_angle”,结束角度为“end_angle”。
draw_bezier(x0, y0, x1, y1, x2, y2, x3, y3, …) 绘制一条三次贝塞尔曲线(cubic bezier curve)。
draw_chord(x, y, start_angle, end_angle, …) 绘制一个空心椭圆弓形(弧+弦),起始角度为“start_angle”,结束角度为“end_angle”。
draw_circle(x, y, r, image) 以点(x,y)为圆心,r为半径画圆。
draw_ellipse(x, y, radius_x, radius_y, image) 以点(x,y)为中心,radius_x为x轴方向半径,radius_y为y轴方向半径,画矩形。
draw_line(x1, y1, x2, y2, image) 在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。
draw_lines(*points, image) 画多条直线。
draw_pie(x, y, start_angle, end_angle, …) 画一个椭圆饼,起始角度为start_angle,结束角度为end_angle。
draw_point(x, y, image) 在指定图片的点(x,y)处画一个点。
draw_poly_line(*end_points, image) 画一条折线(ploy line)。
draw_polygon(*vertices, image) 画一个多边形。
draw_rect(left, top, right, bottom, image) 画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。
draw_rect_text(x, y, width, height, *args[, …]) 在指定的矩形区域中打印文字。
draw_rounded_rect(left, top, right, bottom, …) 绘制圆角矩形,其左上角位于点(left,top)处,右下角位于(right,bottom)处。
draw_text(x, y, *args[, sep]) 在给定的位置(x,y)处打印文字。
ellipse(x, y, radius_x, radius_y, image) 画一个空心椭圆,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y。
fill_chord(x, y, start_angle, end_angle, …) 绘制一个空心椭圆弓形(弧+弦),起始角度为“start_angle”,结束角度为“end_angle”。
fill_circle(x, y, r, image) 填充一个实心圆,圆心位于点(x,y),半径为r。
fill_ellipse(x, y, radius_x, radius_y, image) 填充一个实心椭圆,圆心位于点(x,y),x轴方向半径为radius_x, y轴方向为radius_y。
fill_pie(x, y, start_angle, end_angle, …) 填充一个椭圆扇形,它的起始角度为start_angle,结束角度为eng_angle。
fill_polygon(*vertices, image) 填充一个多边形。
fill_rect(left, top, right, bottom, image) 画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。
fill_rounded_rect(left, top, right, bottom, …) 填充一个圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。
flood_fill(x, y, border_color, image) 使用泛洪(Flood fill)算法填充封闭图形。
get_pixel(x, y, image) 获取指定像素的颜色。
line(x1, y1, x2, y2, image) 在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。
line_rel(dx, dy, image) 从当前绘图位置(x,y)到(x+dx,y+dy)画线,然后将当前绘图位置更新为(x+dx,y+dy)。
line_to(x, y, image) 从当前绘图位置到(x,y)画线,然后将当前绘图位置更新为(x,y)。
lines(*points, image) 画多条直线。
move_rel(dx, dy, image) 将绘图位置在x轴方向移动dx,在y轴方向移动dy。
move_to(x, y, image) 设置当前绘图位置到(x,y)。
pie(x, y, start_angle, end_angle, radius_x, …) 画一个空心椭圆扇形,起始角度为“start_angle”,结束角度为“end_angle”。
poly_line(*end_points, image) 画一条折线(ploy line)。
polygon(*vertices, image) 画一个空心多边形。
put_pixel(x, y, color, image) 将指定像素设为指定的颜色。
rect(left, top, right, bottom, image) 画一个空心矩形,左上角位于点(left,top),右下角位于(right,bottom)。
rounded_rect(left, top, right, bottom, …) 画一个空心圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。

几何变换(Transform)

flip(x, y, x1, y1, image) 以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。
get_transform(image) 获取图片的几何变换(transform)对象。
mirror(x, y, x1, y1, image) 以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。
pop_transform(image) 从栈(stack)中取出最近一次压入的几何变换,并将其设置为图片的当前变换。
push_transform(image) 将当前的几何变换(transform)压入栈(stak)中。
reflect(x, y, x1, y1, image) 以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。
reset_transform(image) 重置(取消)所有几何变换。
rotate(degree, x, y, image) 顺时针绕点(x,y)旋转坐标系。
scale(sx, sy, image) 坐标轴沿x轴方向缩放(scale)sx倍,沿y轴方向缩放sy倍。
set_flip_y(flip_y, image) Reflect without texts using the x-axis as the axis (image upside down).
set_origin(offset_x, offset_y, image) 将坐标轴平移指定的位移。
set_transform(transform, image) 设置图片的几何变换(transform)对象。
shear(sh, sv, x, y, image) 绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。
skew(sh, sv, x, y, image) 绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。
translate(offset_x, offset_y, image) 将坐标轴平移指定的位移。

动画处理

delay(milliseconds) 程序暂停指定的时间(毫秒)。
delay_fps(fps) 通过暂停程序来控制动画的FPS(Frame per seconds)。
delay_jfps(fps[, max_skip_count]) 通过暂停程序来控制动画的FPS(Frame per seconds)。带跳帧判断。
get_render_mode() 设置绘图窗口的绘制模式
is_run() 检查图形系统是否在运行。
set_render_mode(mode) 设置绘图窗口的绘制模式

图片处理

add_record(image, **options)
begin_recording()
capture_screen(left, top, right, bottom, …) 在图形窗口上截取指定区域的内容保存到图片中。
close_image(image) 关闭并清理指定的图片。
create_image(width, height) 创建一个新图片。
draw_image(x, y, src_image, src_x, src_y, …) 将来源图片(src_image)复制到目的图片(dst_image)。
end_recording()
get_target() 获取当前的绘制目标(target)。
load_image(filename) 读取图片文件。
put_image(x, y, src_image, src_x, src_y, …) 将来源图片(src_image)复制到目的图片(dst_image)。
save_image(filename[, with_background]) 保存图片到文件。
save_recording(filename)
set_target(image) 设置绘制目标(target)

键盘与鼠标

contains_left_button(buttons) 检查是否包含鼠标左键。
contains_mid_button(buttons) 检查是否包含鼠标中键。
contains_right_button(buttons) 检查是否包含鼠标右键。
get_char() 读取键盘输入的字符。(阻塞程序)
get_click() 获取鼠标点击信息。(阻塞程序)
get_cursor_pos() 获取鼠标光标的位置。(非阻塞)
get_key() 获取键盘按下的键信息。(阻塞程序)
get_mouse_msg() 获取鼠标按钮按下或者松开信息。(阻塞)
has_kb_hit() 检查过去100毫秒内是否有字符从键盘输入。
has_kb_msg() 检查过去100毫秒内键盘是否有键被按下。
has_mouse_msg() 检查过去100毫秒内是否有鼠标按钮被按下或者松开。
pause() 暂停程序,等待鼠标点击或者键盘按任意键继续。

颜色和工具

cart2pol(x, y) 从笛卡尔坐标转换为极坐标。
color_cmyk(c, m, y, k, alpha) 创建CMYK颜色。
color_hsv(h, s, v, alpha) 创建HSV颜色。
color_rgb(red, green, blue, alpha) 创建RGB颜色。
pol2cart(rho, theta) 从极坐标转换为笛卡尔坐标。
rgb(red, green, blue, alpha) 创建RGB颜色。
show_image(image) 在qtconsole或者notebook中显示图片
to_alpha(new_color, alpha) 用所给的颜色和alpha值创建新颜色。

常量

Color 这些是预定义的颜色常量。
CompositionMode 定义了绘图时的合成模式。
FillStyle 这些是draw_xxx和fill_xxx函数使用的填充模式。
FillRule 填充多边形时用的算法
LineStyle 这些是绘制线条时的线型。
MouseMessageType 这些是鼠标信息类型。
RenderMode 这些是图形窗口的渲染模式。
TextFlags 这些是文本绘制标志。

API详情

class easygraphics.Color

这些是预定义的颜色常量。

BLACK = 2

黑色

BLUE = 9

蓝色

BROWN = <PyQt5.QtGui.QColor object>

褐色

CYAN = 10

青色

DARK_BLUE = 15

深蓝色

DARK_CYAN = 16

深青色

DARK_GRAY = 4

深灰色

DARK_GREEN = 14

深绿色

DARK_MAGENTA = 17

深紫红色

DARK_RED = 13

深红色

DARK_YELLOW = 18

深黄色

GREEN = 8

绿色

LIGHT_BLUE = <PyQt5.QtGui.QColor object>

浅蓝色

LIGHT_CYAN = <PyQt5.QtGui.QColor object>

浅青色

LIGHT_GRAY = <PyQt5.QtGui.QColor object>

浅灰色

LIGHT_GREEN = <PyQt5.QtGui.QColor object>

浅绿色

LIGHT_MAGENTA = <PyQt5.QtGui.QColor object>

浅紫红色

LIGHT_RED = <PyQt5.QtGui.QColor object>

浅红色

LIGHT_YELLOW = <PyQt5.QtGui.QColor object>

浅黄色

MAGENTA = <PyQt5.QtGui.QColor object>

紫红色

RED = 7

红色

TRANSPARENT = 19

透明

WHITE = 3

白色

YELLOW = 12

黄色

class easygraphics.FillStyle

这些是draw_xxx和fill_xxx函数使用的填充模式。

NULL_FILL = 0

不填充。

SOLID_FILL = 1

使用填充色填充。见set_fill_color()。

class easygraphics.LineStyle

这些是画线时的线型。可用的线型包括:

qpen-solid qpen-dash qpen-dot
LineStyle.SOLID_LINE LineStyle.DASH_LINE LineStyle.DOT_LINE
qpen-dashdot qpen-dashdotdot  
LineStyle.DASH_DOT_LINE LineStyle.DASH_DOT_DOT_LINE LineStyle.NO_PEN
DASH_DOT_DOT_LINE = 5

一横,两点,一横,两点。

DASH_DOT_LINE = 4

交替短横和点。

DASH_LINE = 2

虚线。

DOT_LINE = 3

点虚线。

NO_PEN = 0

不画线。

SOLID_LINE = 1

实线

class easygraphics.RenderMode

这些是图形窗口的渲染模式。

RENDER_AUTO = 0

每次绘制后,绘图窗口都会刷新以显示出新绘制的内容。

RENDER_MANUAL = 1

只有在等待、延迟或者阻塞函数被调用时,绘图窗口才会更新。

class easygraphics.CompositionMode

定义了绘图时的合成模式。

合成模式控制在绘制时,如何对来源色彩和目标色彩进行合成以得到结果颜色。

注意,光栅运算(Raster operations)/位运算(bitwise operations)合成模式要求来源色彩和目标色彩都不透明。

CLEAR = 2

(Alpha合成)目标像素被设置为完全透明。

CLEAR_DEST = 35

(光栅运算)目标像素被设置为全零。

COLOR_BURN = 19

(混合)目标色被来源色加深(变暗)。来源色为白色时,目标颜色不变。

COLOR_DODGE = 18

(混合)目标色被来源色变浅(变亮)。来源色为黑色时,目标颜色不变。

DARKEN = 16

(混合)使用目标色和来源色中最暗的一个作为结果色。

DESTINATION = 4

(Alpha合成)保持目标像素原始颜色不变。

DESTINATION_AT_TOP = 10

(Alpha合成)把目标像素放在来源像素上进行合成,用目的像素的alpha值减去来源像素alpha值。

DESTINATION_IN = 6

(Alpha合成)输出目标像素,其alpha值与来源像素相减。

DESTINATION_OUT = 8

(Alpha合成)输出目标像素,其alpha值与来源像素的反值(inverse)相减。

DESTINATION_OVER = 1

(Alpha合成)用目标像素的alpha值来与来源像素合成。

DIFFERENCE = 22

(混合)将目标色与来源色中的较深色减去较浅色。使用白色作为来源色,将反转(inverse)目标色;使用黑色作为来源色,则目标色保持不变。

EXCLUSION = 23

(混合)与DIFFERENCE类似,但是对比度更低。使用白色作为来源色,将反转(inverse)目标色;使用黑色作为来源色,则目标色保持不变。

HARD_LIGHT = 20

(混合)根据来源色的不同,进行相乘或者遮罩(Screen)运算。浅的来源色将会使目标色变浅,深的来源色会使目标色变深。

LIGHTEN = 17

(混合)选择来源色与目标色中较浅的作为结果色。

MULTIPLY = 13

(混合)目标色与来源色相乘。与白色相乘,原色保持不变;与黑色相乘,原色变为黑色。

NOT_DEST = 37

(光栅运算)目标像素按位取反(NOT dst)。

NOT_SRC = 30

(光栅运算)来源像素按位取反(NOT src)。

NOT_SRC_AND_DEST = 31

(光栅运算)来源像素按位取反后,与目标像素按位与((NOT src) AND dst)。

NOT_SRC_AND_NOT_DEST = 27

(光栅运算)来源像素与目的像素进行位NOR运算((NOT src) AND (NOT dst))。

NOT_SRC_OR_DEST = 33

(光栅运算)来源像素按位取反后,与目标像素按位或((NOT src) OR dst)。

NOT_SRC_OR_NOT_DEST = 28

(光栅运算)目标像素与来源像素进行NAND运算((NOT src) OR (NOT dst))。

NOT_SRC_XOR_DEST = 29

(光栅运算)目标像素按位取反后,与目标像素按位异或((NOT src) XOR dst)。

OVERLAY = 15

“(混合)根据目标颜色的不同,进行相乘(multiply)或者遮罩(screen)运算。目标色与来源色混合,以反映目标的亮度(lightness)或暗度(darkness)。

Plus = 12

(混合)来源色和目标色的色彩和alpha值相加。

SCREEN = 14

(混合)来源和目标色取反(inverted)后相乘(multiplied)。使用白色遮罩,产生白色,使用黑色遮罩保持原色不变。

SET_DEST = 36

(光栅运算) 目标像素被设为全1(白色).

SOFT_LIGHT = 21

(混合)根据来源色,加深或变浅目标色。与HARD_LIGHT类似。

SOURCE = 3

(Alpha合成)使用来源像素替代目标像素。

SOURCE_AT_TOP = 9

(Alpha合成)。来源像素在上,与目标像素混合。用来源像素的alpha值减去目标像素的。

SOURCE_IN = 5

(Alpha合成)输出来源像素,其alpha值被目标像素的alpha值减少。

SOURCE_OUT = 7

(Alpha合成)输出来源像素,其alpha值被目标像素alpha值的反值(inverse)减少。

SOURCE_OVER = 0

(Alpha合成)缺省的合成模式。将来源像素的色彩和alpha值叠加到目标像素上(类似于将一块彩色玻璃覆盖到目标图上)。

SRC_AND_DEST = 25

(光栅运算)来源像素与目标像素按位与(src AND dst)。

SRC_AND_NOT_DEST = 32

(光栅运算)目标像素按位取反后,与来源像素按位与(src AND (NOT dst))。

SRC_OR_DEST = 24

(光栅运算)来源像素与目标像素按位与。

SRC_OR_NOT_DEST = 34

(光栅运算)目标像素按位取反后,与来源像素按位或(src OR (NOT dst))。

SRC_XOR_DEST = 26

(光栅运算)来源像素与目标像素按位异或(src XOR dst)。

XOR = 11

(Alpha合成)来源像素,其alpha值与目标像素alpha值的反值(inverse)相减;目标像素,其alpha值与来源像素alpha值的反值(inverse)相减;然后对两者进行合并。注意该运算与光栅运算中的异或运算不一样。

class easygraphics.TextFlags

这些是文本绘制标志。

ALIGN_BOTTOM = 64

垂直居上。

ALIGN_CENTER = 132

水平和垂直同时居中。

ALIGN_HCENTER = 4

水平居中。

ALIGN_JUSTIFY = 8

两端对齐。

ALIGN_LEFT = 1

水平居左。

ALIGN_RIGHT = 2

水平居右。

ALIGN_TOP = 32

垂直居上。

ALIGN_VCENTER = 128

垂直居中。

TEXT_DONT_CLIP = 512

如果在指定的边界内无法容纳,多余的内容显示在边界外。

TEXT_EXPAND_TABS = 1024

启用制表符(ASCII tab)。

TEXT_SINGLE_LINE = 256

将所有内容打印在一行上。

TEXT_WORD_WRAP = 4096

自动分行。

class easygraphics.MouseMessageType

这些是鼠标信息类型。

NO_MESSAGE = 0
PRESS_MESSAGE = 1
RELEASE_MESSAGE = 2
class easygraphics.FillRule

填充多边形时用的算法

ODD_EVEN_FILL = 0

使用奇偶填充算法(odd even fill rule)。

WINDING_FILL = 1

使用Winding算法(non zero winding rule)。

class easygraphics.ShapeMode
CENTER = 2
CORNER = 1
CORNERS = 0
RADIUS = 3
class easygraphics.VertexType
LINES = 2
POINTS = 1
POLY_LINE = 0
QUADS = 6
QUAD_STRIP = 7
TRIANGLES = 3
TRIANGLE_FAN = 4
TRIANGLE_STRIP = 5
easygraphics.set_line_style(line_style, image: easygraphics.image.Image = None)

设置指定图片的线型。

线型用于画线和形状轮廓。在LineStyle中定义了可用的线型常量,如LineStyle.SOLID_LINE等

参数:
  • line_style – 线型
  • image – 要设置线型的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_line_style(image: easygraphics.image.Image = None) → int

获取指定图片的(画笔)线型。

画线和轮廓时使用的线型。

参数:image – 要获取线型的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的线型
easygraphics.set_line_width(width: float, image: easygraphics.image.Image = None)

设置指定图片的线宽。

会用它来画线或轮廓线。

参数:
  • width – 线宽
  • image – 要设置线宽的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_line_width(image: easygraphics.image.Image = None) → float

获取指定图片的(画笔)线宽。

会用它来画线或轮廓线。

参数:image – 要获取线宽的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的线宽
easygraphics.get_color(image: easygraphics.image.Image = None) → PyQt5.QtGui.QColor

获取指定的图片的前景色(画笔颜色)。

会用它来画线或者轮廓线。

参数:image – 要获取前景色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的前景色
easygraphics.set_color(color, image: easygraphics.image.Image = None)

设置指定图片的前景色。

会用它画线或者轮廓。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:
  • color – 前景色
  • image – 要设置前景色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_fill_color(image: easygraphics.image.Image = None) → PyQt5.QtGui.QColor

获取指定图片的填充色。

会用它来填充图形。

参数:image – 要获取填充色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的填充色
easygraphics.set_fill_color(color, image: easygraphics.image.Image = None)

设置指定图片的填充色。

会用它来填充图形。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:
  • color – 填充色
  • image – 要设置填充色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_fill_style(image: easygraphics.image.Image = None) → int

获取指定图片的填充样式。

会用它来填充图形。

参数:image – 要获取填充样式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的填充样式
easygraphics.set_fill_style(style, image: easygraphics.image.Image = None)
设置指定图片的填充样式。

用它来填充图形。FillStyle中定义了相关的常量。

参数:
  • style – 填充样式
  • image – 要设置填充样式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:

easygraphics.get_background_color(image: easygraphics.image.Image = None) → PyQt5.QtGui.QColor

获取图片的背景色。

参数:image – 要获取背景色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的背景色
easygraphics.set_background_color(color, image: easygraphics.image.Image = None)

设置和修改背景色。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:
  • color – 背景色
  • image – 要设置背景色的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.set_font(font: PyQt5.QtGui.QFont, image: easygraphics.image.Image = None)

设置指定图片的字体。

参数:
  • font – 要用的字体
  • image – 要设置字体的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_font(image: easygraphics.image.Image = None) → PyQt5.QtGui.QFont

获取指定图片的字体。

参数:image – 要获取字体的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的字体
easygraphics.set_font_size(size: int, image: easygraphics.image.Image = None)

设置指定图片的字体大小。

参数:
  • size – 指定图片的字体大小
  • image – 要获取绘图模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_font_size(image: easygraphics.image.Image = None) → int

获取指定图片的字体大小。

参数:image – 要获取绘图模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:指定图片的字体大小
easygraphics.set_composition_mode(mode, image: easygraphics.image.Image = None)

获取指定图片的合成模式(Composition mode)。

合成模式控制绘制的内容如何和图片上的原有内容进行合成。

参数:
  • mode – 合成模式
  • image – 要设置合成模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_composition_mode(image: easygraphics.image.Image = None) → int

获取指定图片的合成模式(Composition mode)。

绘图时,合成模式决定绘制的内容如何和图片上原有内容进行合成。

参数:image – 要获取合成模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:合成模式
easygraphics.get_drawing_x(image: easygraphics.image.Image = None) → float

获取指定图片”当前绘图位置”的横坐标x。

部分函数会使用“当前绘图位置”进行绘制(参见line_to(),line_rel(),move_to()和move_rel())。

参数:image – 要获取当前绘图位置的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:当前绘图位置的x坐标
easygraphics.get_drawing_y(image: easygraphics.image.Image = None) → float

获取指定图片”当前绘图位置”的纵坐标y。

部分函数会使用“当前绘图位置”进行绘制(参见line_to(),line_rel(),move_to()和move_rel())。

参数:image – 要获取当前绘图位置的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:当前绘图位置的y坐标。
easygraphics.set_view_port(left: int, top: int, right: int, bottom: int, clip: bool = True, image: easygraphics.image.Image = None)

设置指定图片的视口。

视口是图片上的绘图区域。

>>> from easygraphics import *
>>> init_graph(800,600)
>>> draw_rect(100,100,300,300)
>>> set_view_port(100,100,300,300)
>>> circle(100,100,50)
>>> circle(100,100,100)
>>> circle(100,100,120)
>>> pause()
>>> close_graph()
参数:
  • left – 视口左边位置的坐标
  • top – 视口顶部的坐标
  • right – 视口右边位置的坐标
  • bottom – 视口底部的坐标
  • clip – 如果为True,绘制时超出视口范围的内容会被裁掉。
  • image – 要获取视口的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.reset_view_port(image: easygraphics.image.Image = None)

恢复缺省的视口设置。

参数:image – 要重置视口的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.set_origin(offset_x: float, offset_y: float, image: easygraphics.image.Image = None)

将坐标轴平移指定的位移。

参数:
  • offset_x – offset on the x coordinate
  • offset_y – offset on the y coordinate
  • image – the target image to be translated. None means it is the target image (see set_target() and get_target()).
easygraphics.get_fill_rule(image: easygraphics.image.Image = None) → int

获取填充多边形时所用的算法。

参数:image – 要获取填充算法的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:填充多边形所用的算法
easygraphics.set_fill_rule(rule, image: easygraphics.image.Image = None)

设置填充多边形时所用的算法。

参数:
  • rule – 填充多边形时要用的算法
  • image – 要设置填充算法的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:

easygraphics.set_render_mode(mode: int)

设置绘图窗口的绘制模式

该模式会控制绘图窗口如何刷新。

可用的值有:

  • RenderMode.RENDER_AUTO (缺省值) 每次绘制内容后立即刷新绘图窗口。
  • RenderMode.MANUAL 只有在pause()/delay()/delay_fps()/delay_jfps()等会暂停程序执行的函数被调用时才刷新绘图窗口。

RenderMode.MANUAL用于制作动画或游戏。

参数:mode – 刷新模式
easygraphics.get_render_mode()

设置绘图窗口的绘制模式

该模式控制绘图窗口如何刷新。参阅set_render_mode()。

返回:刷新模式
easygraphics.get_drawing_pos(image: easygraphics.image.Image = None) -> (<class 'float'>, <class 'float'>)

获取指定图片的“当前绘图位置”。

部分函数会使用“当前绘图位置”进行绘制(参见line_to(),line_rel(),move_to()和move_rel())。

参数:image – 要获取当前绘图位置的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:当前绘图位置(x,y)
easygraphics.set_clip_rect(left: int, top: int, right: int, bottom: int, image: easygraphics.image.Image = None)

设置矩形剪裁区域。

绘制在裁剪区域外的内容会被裁掉。

参数:
  • left – 裁剪区域左边的坐标
  • top – 裁剪区域顶部的坐标
  • right – 裁剪区域右边的坐标
  • bottom – 裁剪区域底部的坐标
  • image – 要获取矩形剪裁区域的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.set_clipping(clipping: bool, image: easygraphics.image.Image = None)

设置是否启用剪裁。

使用set_clip_rect()来设置裁剪区域。

参数:
  • clipping – True会打开裁剪;False会关闭裁剪
  • image – 要设置剪裁开关的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.set_window(left: int, top: int, width: int, height: int, image: easygraphics.image.Image = None)

设置指定图片的逻辑窗口。

逻辑上讲,所有的内容首先绘制在逻辑窗口中,然后再映射到视口。映射时逻辑窗口的四个顶点会被拉伸,以和视口的对应顶点对齐。

如果你的视口是200x200大,然后使用set_window(-50,-50,100,100),将逻辑窗口设为左上角在(-50,-50),长宽均为100。那么逻辑窗口的左上角(-50,50)(逻辑坐标)就对应视口的(0,0),右下角(50,50)就对应视口的(200,200)。逻辑窗口中所有点都依此映射到视口上。

如果你只是需要对视图进行几何变换,可使用set_origin()/translate()/rotate()/scale()等函数。

画在逻辑窗口外的内容不会被裁掉。如果你希望剪裁,使用set_clip_rect()。

参数:
  • left – 逻辑窗口左上角的x坐标
  • top – 逻辑窗口左上角的y坐标
  • width – width of the logical window
  • height – 逻辑窗口的高度
  • image – 要设置逻辑窗口的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.reset_window(image: easygraphics.image.Image = None)

恢复缺省的逻辑窗口设置。

参见set_window()。

参数:image – 要重置逻辑窗口的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.translate(offset_x: float, offset_y: float, image: easygraphics.image.Image = None)

将坐标轴平移指定的位移。

参数:
  • offset_x – offset on the x coordinate
  • offset_y – offset on the y coordinate
  • image – the target image to be translated. None means it is the target image (see set_target() and get_target()).
easygraphics.rotate(degree: float, x: float = 0, y: float = 0, image: easygraphics.image.Image = None)

顺时针绕点(x,y)旋转坐标系。

参数:
  • degree – 旋转角度(单位为角度)
  • x – 旋转中心的x轴坐标
  • y – 旋转中心的y轴坐标
  • image – 要旋转的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.scale(sx: float, sy: float, image: easygraphics.image.Image = None)

坐标轴沿x轴方向缩放(scale)sx倍,沿y轴方向缩放sy倍。

参数:
  • sx – x轴方向的缩放因子
  • sy – y轴方向的缩放因子
  • image – 要缩放的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.skew(sh: float, sv: float, x: float = 0, y: float = 0, image: easygraphics.image.Image = None)

绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。

参数:
  • sh – x轴方向的错切比例
  • sv – y轴方向的错切比例
  • x – 错切中心的x轴坐标
  • y – 错切中心的y轴坐标
  • image – 要错切的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.shear(sh: float, sv: float, x: float = 0, y: float = 0, image: easygraphics.image.Image = None)

绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。

参数:
  • sh – x轴方向的错切比例
  • sv – y轴方向的错切比例
  • x – 错切中心的x轴坐标
  • y – 错切中心的y轴坐标
  • image – 要错切的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.set_flip_y(flip_y: bool, image: easygraphics.image.Image = None) → None

Reflect without texts using the x-axis as the axis (image upside down).

文字不会被翻转。

在用set_flip_y()打开垂直翻转后,请不要再进行平移。如果需要改变原点位置,应先进行平移,再set_flip_y()。

注意:使用这个函数来代替reflect()/flip()/mirror(),如果你只是希望改用Y轴正向向上的坐标系来作图。

参数:
  • flip_y – True打开垂直翻转,False关闭。
  • image – 要垂直翻转的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.reflect(x: float, y: float, x1: float = 0, y1: float = 0, image: easygraphics.image.Image = None)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – x轴坐标
  • y – y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
  • image – 要反射的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.flip(x: float, y: float, x1: float = 0, y1: float = 0, image: easygraphics.image.Image = None)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – x轴坐标
  • y – y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
  • image – 要反射的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.mirror(x: float, y: float, x1: float = 0, y1: float = 0, image: easygraphics.image.Image = None)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – x轴坐标
  • y – y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
  • image – 要反射的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.reset_transform(image: easygraphics.image.Image = None)

重置(取消)所有几何变换。

参数:image – 要重置几何变换的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.save_settings(image: easygraphics.image.Image = None)

保存当前的绘图设置。

参阅restore_settings()。

注意:背景色和当前位置不会被保存。

参数:image – 要保存绘图设置的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.restore_settings(image: easygraphics.image.Image = None)

恢复之前保存的绘图设置。

参阅save_settings()。

注意:背景色和当前位置不会被保存。

参数:image – 要恢复绘图设置的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_width(image: easygraphics.image.Image = None) → int

获取指定图片的宽度。

参数:image – 要获取宽度的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:所指图片的宽度
easygraphics.get_height(image: easygraphics.image.Image = None) → int

获取指定图片的高度。

参数:image – 要获取宽度的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:所指图片的高度
easygraphics.get_write_mode(image: easygraphics.image.Image = None) → int

获取指定图片的合成模式(Composition mode)。

绘图时,合成模式决定绘制的内容如何和图片上原有内容进行合成。

参数:image – 要获取合成模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:合成模式
easygraphics.set_write_mode(mode, image: easygraphics.image.Image = None)

获取指定图片的合成模式(Composition mode)。

合成模式控制绘制的内容如何和图片上的原有内容进行合成。

参数:
  • mode – 合成模式
  • image – 要设置合成模式的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_transform(image: easygraphics.image.Image = None) → PyQt5.QtGui.QTransform

获取图片的几何变换(transform)对象。

参数:image – 要获取几何变换的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:几何变换(Transform)
easygraphics.set_transform(transform: PyQt5.QtGui.QTransform, image: easygraphics.image.Image = None)

设置图片的几何变换(transform)对象。

参数:
  • transform – 要设置的几何变换
  • image – 要获取几何变换的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.push_transform(image: easygraphics.image.Image = None)

将当前的几何变换(transform)压入栈(stak)中。

easygraphics.pop_transform(image: easygraphics.image.Image = None)

从栈(stack)中取出最近一次压入的几何变换,并将其设置为图片的当前变换。

easygraphics.set_rect_mode(mode, image: easygraphics.image.Image = None)
easygraphics.get_rect_mode(image: easygraphics.image.Image = None) → int
easygraphics.set_ellipse_mode(mode, image: easygraphics.image.Image = None)
easygraphics.get_ellipse_mode(image: easygraphics.image.Image = None) → int
easygraphics.draw_point(x: float, y: float, image: easygraphics.image.Image = None)

在指定图片的点(x,y)处画一个点。

参数:
  • x – 点的x坐标
  • y – 点的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.put_pixel(x: int, y: int, color, image: easygraphics.image.Image = None)

将指定像素设为指定的颜色。

参数:
  • x – 像素的x坐标
  • y – 像素的y坐标
  • color – 颜色
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.get_pixel(x: int, y: int, image: easygraphics.image.Image = None) → PyQt5.QtGui.QColor

获取指定像素的颜色。

参数:
  • x – 像素的x坐标
  • y – 像素的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:

像素的颜色

easygraphics.line(x1, y1, x2, y2, image: easygraphics.image.Image = None)

在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。

line()是本函数的别名。

参数:
  • x1 – 起始点的x坐标
  • y1 – 起始点的y坐标
  • x2 – 结束点的x坐标
  • y2 – 起始点的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_line(x1, y1, x2, y2, image: easygraphics.image.Image = None)

在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。

line()是本函数的别名。

参数:
  • x1 – 起始点的x坐标
  • y1 – 起始点的y坐标
  • x2 – 结束点的x坐标
  • y2 – 起始点的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.move_to(x: float, y: float, image: easygraphics.image.Image = None)

设置当前绘图位置到(x,y)。

当前绘图位置被line_to(), line_rel()和move_rel()等函数使用。

参数:
  • x – 新当前绘图位置的x坐标
  • y – 新当前绘图位置的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.move_rel(dx: float, dy: float, image: easygraphics.image.Image = None)

将绘图位置在x轴方向移动dx,在y轴方向移动dy。

如果旧位置是(x,y),那么新的位置将是(x+dx,y+dy)。

当前绘图位置被line_to()和line_rel()等函数使用。

参数:
  • dx – 新当前绘图位置的x轴方向位移
  • dy – 新当前绘图位置的y轴方向位移
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.line_to(x: float, y: float, image: easygraphics.image.Image = None)

从当前绘图位置到(x,y)画线,然后将当前绘图位置更新为(x,y)。

参数:
  • x – 新当前绘图位置的x坐标
  • y – 新当前绘图位置的y坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.line_rel(dx: float, dy: float, image: easygraphics.image.Image = None)

从当前绘图位置(x,y)到(x+dx,y+dy)画线,然后将当前绘图位置更新为(x+dx,y+dy)。

参数:
  • dx – 新当前绘图位置的x轴方向位移
  • dy – 新当前绘图位置的y轴方向位移
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.circle(x: float, y: float, r: float, image: easygraphics.image.Image = None)

画一个空心圆,圆心位于点(x,y)半径为r的。

画出的圆形是空心的。

参数:
  • x – 圆心的x坐标
  • y – 圆心的y坐标
  • r – 半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_circle(x: float, y: float, r: float, image: easygraphics.image.Image = None)

以点(x,y)为圆心,r为半径画圆。

画出的圆形为实心,且带有轮廓线。

参数:
  • x – 圆心的x坐标
  • y – 圆心的y坐标
  • r – 半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_circle(x: float, y: float, r: float, image: easygraphics.image.Image = None)

填充一个实心圆,圆心位于点(x,y),半径为r。

画出的圆形没有轮廓线。

参数:
  • x – 圆心的x坐标
  • y – 圆心的y坐标
  • r – 半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.ellipse(x, y, radius_x, radius_y, image: easygraphics.image.Image = None)

画一个空心椭圆,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y。

画出的椭圆是空心的。

参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_ellipse(x, y, radius_x, radius_y, image: easygraphics.image.Image = None)

以点(x,y)为中心,radius_x为x轴方向半径,radius_y为y轴方向半径,画矩形。

画出的椭圆是实心的,并且有轮廓线。

参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_ellipse(x, y, radius_x, radius_y, image: easygraphics.image.Image = None)

填充一个实心椭圆,圆心位于点(x,y),x轴方向半径为radius_x, y轴方向为radius_y。

画出的椭圆没有轮廓线。

参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.arc(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个椭圆弧,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弧的起始角度为start_angle,结束角度为end_angle。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 弧的起始角度
  • end_angle – 弧的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_arc(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个椭圆弧,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弧的起始角度为start_angle,结束角度为end_angle。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 弧的起始角度
  • end_angle – 弧的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.pie(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个空心椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼是空心的。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_pie(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼是实心的,有轮廓线。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_pie(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

填充一个椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼没有轮廓线。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.chord(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形是空心的。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_chord(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形是实心的,并且有轮廓。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_chord(x: float, y: float, start_angle: float, end_angle: float, radius_x: float, radius_y: float, image: easygraphics.image.Image = None)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形没有轮廓。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x – 椭圆圆心的x坐标
  • y – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • radius_x – 椭圆x轴方向半径
  • radius_y – 椭圆y轴方向半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.bezier(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, image: easygraphics.image.Image = None)

绘制一条三次贝塞尔曲线(cubic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

>>> from easygraphics import *
>>> init_graph(600,400)
>>> points=[300,50,200,50,200,200,100,200]
>>> draw_bezier(*points)
>>> pause()
>>> close_graph()
参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • x3 – 第四个控制点的x轴坐标
  • y3 – 第四个控制点的y轴坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_bezier(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, image: easygraphics.image.Image = None)

绘制一条三次贝塞尔曲线(cubic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

>>> from easygraphics import *
>>> init_graph(600,400)
>>> points=[300,50,200,50,200,200,100,200]
>>> draw_bezier(*points)
>>> pause()
>>> close_graph()
参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • x3 – 第四个控制点的x轴坐标
  • y3 – 第四个控制点的y轴坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.lines(*points, image: easygraphics.image.Image = None)

画多条直线。

参数“points”是一个2维点对的列表。里面应该包含偶数个点,每2个点组成一个点对(表示一条线段);每个点又包含x和y两个坐标。因此,如果你要画n条线段(n个点对),“points”列表中就应该有4n个数。

例如,如果“points”列表的值是[50,50,550,350, 50,150,550,450, 50,250,550,550],draw_lines()就会画三条线段,即:(50,50)到(550,350), (50,150)到(550,450), (50,250)到(550,550)。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> draw_lines(50, 50, 550, 350, 50, 150, 550, 450, 50, 250, 550, 550)
>>> pause()
>>> close_graph()
参数:
  • points – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_lines(*points, image: easygraphics.image.Image = None)

画多条直线。

参数“points”是一个2维点对的列表。里面应该包含偶数个点,每2个点组成一个点对(表示一条线段);每个点又包含x和y两个坐标。因此,如果你要画n条线段(n个点对),“points”列表中就应该有4n个数。

例如,如果“points”列表的值是[50,50,550,350, 50,150,550,450, 50,250,550,550],draw_lines()就会画三条线段,即:(50,50)到(550,350), (50,150)到(550,450), (50,250)到(550,550)。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> draw_lines(50, 50, 550, 350, 50, 150, 550, 450, 50, 250, 550, 550)
>>> pause()
>>> close_graph()
参数:
  • points – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.poly_line(*end_points, image: easygraphics.image.Image = None)

画一条折线(ploy line)。

参数“end_points”是端点列表。列表中的每对数是一个点的坐标。各端点依次连接,构成了一条折线。

例如,如果参数“end_points”的值是[50,50,550,350, 50,150,550,450, 50,250,550,550], draw_poly_line()会用5条线段依次连接点(50,50)、(550,350)、(50,150)、(550,450)、(50,250)和(550,550)。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> draw_poly_line(50,50,550,350,50,150,550,450,50,250,550,550)
>>> pause()
>>> close_graph()
参数:
  • end_points – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_poly_line(*end_points, image: easygraphics.image.Image = None)

画一条折线(ploy line)。

参数“end_points”是端点列表。列表中的每对数是一个点的坐标。各端点依次连接,构成了一条折线。

例如,如果参数“end_points”的值是[50,50,550,350, 50,150,550,450, 50,250,550,550], draw_poly_line()会用5条线段依次连接点(50,50)、(550,350)、(50,150)、(550,450)、(50,250)和(550,550)。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> draw_poly_line(50,50,550,350,50,150,550,450,50,250,550,550)
>>> pause()
>>> close_graph()
参数:
  • end_points – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.polygon(*vertices, image: easygraphics.image.Image = None)

画一个空心多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],polygon()会画一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形是空心的。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> set_color(Color.RED)
>>> polygon(50,50,550,350,50,150)
>>> pause()
>>> close_graph()
参数:
  • vertices – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_polygon(*vertices, image: easygraphics.image.Image = None)

画一个多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],draw_polygon()会画一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形是实心的,有轮廓。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> set_color(Color.RED)
>>> set_fill_color(Color.LIGHT_MAGENTA)
>>> draw_polygon(50,50,550,350,50,150)
>>> pause()
>>> close_graph()
参数:
  • vertices – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_polygon(*vertices, image: easygraphics.image.Image = None)

填充一个多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],fill_polygon()会填充一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形没有边框。

>>> from easygraphics import *
>>> init_graph(600,600)
>>> set_fill_color(Color.LIGHT_MAGENTA)
>>> fill_polygon(50,50,550,350,50,150)
>>> pause()
>>> close_graph()
参数:
  • vertices – 点坐标值列表
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.rect(left: float, top: float, right: float, bottom: float, image: easygraphics.image.Image = None)

画一个空心矩形,左上角位于点(left,top),右下角位于(right,bottom)。

画出的矩形是空心的。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_rect(left: float, top: float, right: float, bottom: float, image: easygraphics.image.Image = None)

画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。

画出的矩形是实心的,有边框。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_rect(left: float, top: float, right: float, bottom: float, image: easygraphics.image.Image = None)

画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。

画出的矩形没有边框。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.rounded_rect(left: float, top: float, right: float, bottom: float, round_x: float, round_y: float, image: easygraphics.image.Image = None)

画一个空心圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形是空心的。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • round_x – 边角椭圆弧在x轴方向上的半径
  • round_y – 边角椭圆弧在y轴方向上的半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_rounded_rect(left: float, top: float, right: float, bottom: float, round_x: float, round_y: float, image: easygraphics.image.Image = None)

画一个圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形是实心的,有边框。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • round_x – 边角椭圆弧在x轴方向上的半径
  • round_y – 边角椭圆弧在y轴方向上的半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_rounded_rect(left: float, top: float, right: float, bottom: float, round_x: float, round_y: float, image: easygraphics.image.Image = None)

填充一个圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形没有边框。

参数:
  • left – 左上角的x坐标。
  • top – 左上角的y坐标。
  • right – 右下角的x坐标。
  • bottom – 右下角的y坐标。
  • round_x – 边角椭圆弧在x轴方向上的半径
  • round_y – 边角椭圆弧在y轴方向上的半径
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.flood_fill(x: int, y: int, border_color, image: easygraphics.image.Image = None)

使用泛洪(Flood fill)算法填充封闭图形。

填充区域边界必须封闭,否则颜色会漏出到整个图片!

参数:
  • x – 起始点的x坐标
  • y – 起始点的y坐标
  • border_color – 填充区域边界的颜色。
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_image(x: int, y: int, src_image: easygraphics.image.Image, src_x: int = 0, src_y: int = 0, src_width: int = -1, src_height: int = -1, with_background=True, composition_mode=None, dst_image: easygraphics.image.Image = None)

将来源图片(src_image)复制到目的图片(dst_image)。

(x,y)指明绘制在目标图片的什么位置。

(x,y)指明来源图片中待复制区域的左上角位置。缺省为(0,0)。

(sw, sh)指明来源图片中待复制区域的宽度和高度。缺省(0,0)表示使用来源图片的宽度和高度。

如果参数“with_background”是False,来源图片的背景区域不会被复制。

最终结果取决于合成模式(compostion mode)和来源图片的背景。在缺省模式下(CompositionMode.SOURCE_OVER),源图中的透明区域不会覆盖目标图片上的原有内容。

参数:
  • x – 目标图片被覆盖区域的左上角x坐标
  • y – 目标图片被覆盖区域的左上角y坐标
  • src_image – the source image to be copied
  • src_x – 源图中复制区域的左上角x坐标
  • src_y – 源图中复制区域的左上角y坐标
  • src_width – 源图中复制区域的宽度
  • src_height – 源图中复制区域的高度
  • with_background – 是否连同背景一起复制
  • composition_mode – 如果是None,则使用目标图片的合成模式进行复制。
  • dst_image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.capture_screen(left: int, top: int, right: int, bottom: int, target_img: easygraphics.image.Image)

在图形窗口上截取指定区域的内容保存到图片中。

参数:
  • left – 截屏区域的左上角x坐标
  • top – 截屏区域的左上角y坐标
  • right – 截屏区域的右下角x坐标
  • bottom – 截屏区域的右上角y坐标
  • target_img – image to save the capture
easygraphics.clear_device(image: easygraphics.image.Image = None)

清除指定图片上已经绘制的内容(露出背景色)。

参数:image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.clear_view_port(image: easygraphics.image.Image = None)

清除视口中已经绘制的内容(露出背景色)。

参数:image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.quadratic(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, image: easygraphics.image.Image = None)

绘制一条二次贝塞尔曲线(quadratic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_quadratic(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, image: easygraphics.image.Image = None)

绘制一条二次贝塞尔曲线(quadratic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.fill_image(color, image: easygraphics.image.Image = None)

使用指定的颜色填充整个图片

参数:
  • color – 填充色
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.clear(image: easygraphics.image.Image = None)

清除指定图片上已经绘制的内容(露出背景色)。

参数:image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_curve(*points, image: easygraphics.image.Image = None)

绘制一条Catmull-Romy样条曲线。

参数:
  • points – 控制点坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.curve(*points, image: easygraphics.image.Image = None)

绘制一条Catmull-Romy样条曲线。

参数:
  • points – 控制点坐标
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.begin_shape(type=0, image: easygraphics.image.Image = None)
easygraphics.end_shape(close=False, image: easygraphics.image.Image = None)
easygraphics.vertex(x: float, y: float, image: easygraphics.image.Image = None)
easygraphics.bezier_vertex(x1: float, y1: float, x2: float, y2: float, x3: float, y3: float, image: easygraphics.image.Image = None)
easygraphics.quadratic_vertex(x1: float, y1: float, x2: float, y2: float, image: easygraphics.image.Image = None)
easygraphics.curve_vertex(x: float, y: float, image: easygraphics.image.Image = None)
easygraphics.draw_text(x, y, *args, sep=' ', image: easygraphics.image.Image = None)

在给定的位置(x,y)处打印文字。

参数:
  • x – 起始点的x坐标
  • y – 起始点的y坐标
  • args – 待打印的内容(与print()类似)
  • sep – 用来连接字符串的分隔符
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.draw_rect_text(x: int, y: int, width: int, height: int, *args, flags=132, sep: str = ' ', image: easygraphics.image.Image = None)

在指定的矩形区域中打印文字。

TextFlag中定义了可用的标志常量。可用按位或操作连接多个标志。

参数:
  • x – 输出区域的左上角x坐标
  • y – 输出区域的左上角y坐标
  • width – 输出区域的宽度
  • height – 输出区域的高度
  • args – 待打印的内容(与print()类似)
  • flags – 对齐标志
  • sep – 用来连接字符串的分隔符
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.text_width(text: str, image: easygraphics.image.Image = None) → int

返回文字在指定图片中完整显示需要的宽度。

参数:
  • text – 文字内容
  • image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:

返回文字在指定图片中完整显示需要的宽度。

easygraphics.text_height(image: easygraphics.image.Image = None) → int

返回指定图片的文字(字体)高度。

参数:image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
返回:返回指定图片的文字(字体)高度。
easygraphics.set_target(image: easygraphics.image.Image = None)

设置绘制目标(target)

参数:image – Easygraphics的“绘图目标”。设为None表示绘制在绘图窗口中。
easygraphics.get_target() → Union[easygraphics.image.Image, NoneType]

获取当前的绘制目标(target)。

返回:Easygraphics的“绘图目标”。设为None表示绘制在绘图窗口中。
easygraphics.create_image(width, height) → easygraphics.image.Image

创建一个新图片。

参数:
  • width – 新图片的宽度
  • height – 新图片的高度
返回:

创建的图片

easygraphics.save_image(filename: str, with_background=True, image: easygraphics.image.Image = None)

保存图片到文件。

将with_background参数设为False,可以得到一个透明背景的图片。

注意JPEG格式的文件不支持透明色。如果需要背景透明,使用PNG格式。

参数:
  • filename – 文件路径
  • with_background – True表示保存背景内容;False表示不保存背景(存为透明)。
  • image – 要保存的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.close_image(image: easygraphics.image.Image)

关闭并清理指定的图片。

参数:image – 要关闭的图片。
easygraphics.load_image(filename: str) → easygraphics.image.Image

读取图片文件。

参数:filename – 图片文件
返回:读入的图片
easygraphics.put_image(x: int, y: int, src_image: easygraphics.image.Image, src_x: int = 0, src_y: int = 0, src_width: int = -1, src_height: int = -1, with_background=True, composition_mode=None, dst_image: easygraphics.image.Image = None)

将来源图片(src_image)复制到目的图片(dst_image)。

(x,y)指明绘制在目标图片的什么位置。

(x,y)指明来源图片中待复制区域的左上角位置。缺省为(0,0)。

(sw, sh)指明来源图片中待复制区域的宽度和高度。缺省(0,0)表示使用来源图片的宽度和高度。

如果参数“with_background”是False,来源图片的背景区域不会被复制。

最终结果取决于合成模式(compostion mode)和来源图片的背景。在缺省模式下(CompositionMode.SOURCE_OVER),源图中的透明区域不会覆盖目标图片上的原有内容。

参数:
  • x – 目标图片被覆盖区域的左上角x坐标
  • y – 目标图片被覆盖区域的左上角y坐标
  • src_image – the source image to be copied
  • src_x – 源图中复制区域的左上角x坐标
  • src_y – 源图中复制区域的左上角y坐标
  • src_width – 源图中复制区域的宽度
  • src_height – 源图中复制区域的高度
  • with_background – 是否连同背景一起复制
  • composition_mode – 如果是None,则使用目标图片的合成模式进行复制。
  • dst_image – 要绘制的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.pause()

暂停程序,等待鼠标点击或者键盘按任意键继续。

>>> from easygraphics import *
>>> init_graph(800,600)
>>> pause()
>>> close_graph()
easygraphics.delay(milliseconds: int)

程序暂停指定的时间(毫秒)。

参数:milliseconds – 要等待的时间
easygraphics.delay_fps(fps: int)

通过暂停程序来控制动画的FPS(Frame per seconds)。

合理的fps值为1-1000。注意程序不会检查这个参数的合法性。

这个函数不会跳帧。

参数:fps – 期望的fps
返回:False表示绘图窗口已关闭(应退出程序);否则为True
easygraphics.delay_jfps(fps, max_skip_count=0)

通过暂停程序来控制动画的FPS(Frame per seconds)。带跳帧判断。

如果运行速度不够的话,会跳帧。

参数:
  • fps – 每秒帧数(最高1000)
  • max_skip_count – 每次最多跳帧数(0表示可无限跳帧)
返回:

True表示该帧未被跳过

easygraphics.is_run() → bool

检查图形系统是否在运行。

返回:True表示图形系统正在运行。
easygraphics.has_kb_msg() → bool

检查过去100毫秒内键盘是否有键被按下。

和get_key()一起使用。

返回:True表示有键被按下,False表示没有
easygraphics.has_kb_hit() → bool

检查过去100毫秒内是否有字符从键盘输入。

和get_char一起使用。

返回:True表示有键被按下,False表示没有
easygraphics.has_mouse_msg() → bool

检查过去100毫秒内是否有鼠标按钮被按下或者松开。

和get_mouse_msg()一起使用。

返回:True表示有鼠标消息,False表示没有
easygraphics.get_key() -> (<class 'int'>, <class 'int'>)

获取键盘按下的键信息。(阻塞程序)

如果在前100ms内没有任何键被按下,程序会暂停直到有键被按下为止。

返回:键盘码 , 键盘修饰码
easygraphics.get_char() → str

读取键盘输入的字符。(阻塞程序)

如果前100ms内没有任何字符输入,程序会暂停,直到有字符输入为止。

返回:键盘输入的字符
easygraphics.get_mouse_msg() -> (<class 'int'>, <class 'int'>, <class 'int'>, <class 'int'>)

获取鼠标按钮按下或者松开信息。(阻塞)

如果前100ms内没有任何鼠标按钮按下或松开事件,程序会暂停,直到有鼠标事件发生。

返回:光标位置x坐标,y坐标,事件类型,按下或松开的鼠标按钮
easygraphics.get_cursor_pos() -> (<class 'int'>, <class 'int'>)

获取鼠标光标的位置。(非阻塞)

返回:光标位置坐标(x,y)
easygraphics.get_click() -> (<class 'int'>, <class 'int'>, <class 'int'>)

获取鼠标点击信息。(阻塞程序)

如果前100ms内没有任何鼠标点击事件,程序会暂停,直到有鼠标点击事件发生。

返回:光标位置x坐标,y坐标,点击的鼠标按钮
easygraphics.contains_left_button(buttons) → bool

检查是否包含鼠标左键。

参数“buttons”应该是get_click()或get_mouse()返回的值

参数:buttons – 要测试的按钮
返回:是否包含鼠标左键
easygraphics.contains_right_button(buttons) → bool

检查是否包含鼠标右键。

参数“buttons”应该是get_click()或get_mouse()返回的值

参数:buttons – 要测试的按钮
返回:是否包含鼠标右键
easygraphics.contains_mid_button(buttons) → bool

检查是否包含鼠标中键。

参数“buttons”应该是get_click()或get_mouse()返回的值

参数:buttons – 要测试的按钮
返回:是否包含鼠标中键
easygraphics.init_graph(width: int = 800, height: int = 600, headless: bool = False)

初始化easygraphics系统,显示绘图窗口。

如果“headless”参数为True,easygraphics会以无窗口模式(headless模式)运行。在该模式下,不会显示绘图窗口。你可以使用该模式来绘制一张图片然后保存到文件中。

参数:
  • width – 绘图窗口的宽度(单位为像素)
  • height – 绘图窗口的高度(单位为像素)
  • headless – True表示以headless模式运行。
>>> from easygraphics import *
>>> init_graph(800,600) #prepare and show a 800*600 window
easygraphics.close_graph()

关闭绘图窗口。

程序也会结束。

>>> from easygraphics import *
>>> init_graph(800,600)
>>> pause()
>>> close_graph()
easygraphics.set_caption(title: str)

设置绘图窗口的标题

参数:title – 标题
easygraphics.get_graphics_window() → easygraphics.graphwin.GraphWin

获取绘图窗口。

返回:绘图窗口
easygraphics.show_image(image: easygraphics.image.Image = None)

在qtconsole或者notebook中显示图片

参数:image – 要显示的图片。None表示使用“绘图目标”图片(参见set_target()和get_target())
easygraphics.begin_recording()
easygraphics.save_recording(filename: str)
easygraphics.add_record(image: easygraphics.image.Image = None, **options)
easygraphics.end_recording()
easygraphics.color_gray(gray: int, alpha: int = 255) → PyQt5.QtGui.QColor

创建灰色

参数:
  • gray – 灰度值
  • alpha – 颜色的alpha通道值。255表示完全不透明
返回:

颜色

easygraphics.color_rgb(red: int, green: int, blue: int, alpha: int = 255) → PyQt5.QtGui.QColor

创建RGB颜色。

参数:
  • red – 红色分量(red)值
  • green – 绿色分量(green)值
  • blue – 蓝色分量(blue)值
  • alpha – 颜色的alpha通道值。255表示完全不透明
返回:

颜色

easygraphics.color_cmyk(c: int, m: int, y: int, k: int, alpha: int = 255) → PyQt5.QtGui.QColor

创建CMYK颜色。

参数:
  • c – 青色(cyan)分量值
  • m – 洋红色(magenta)分量值
  • y – 黄色(yellow)值
  • k – 黑色(black)值
  • alpha – 颜色的alpha通道值。255表示完全不透明
返回:

颜色

easygraphics.color_hsv(h: int, s: int, v: int, alpha: int = 255) → PyQt5.QtGui.QColor

创建HSV颜色。

参数:
  • h – 色调(hue)
  • s – 饱和度(saturation)
  • v – 明度(value)
  • alpha – 颜色的alpha通道值。255表示完全不透明
返回:

颜色

easygraphics.rgb(red: int, green: int, blue: int, alpha: int = 255) → PyQt5.QtGui.QColor

创建RGB颜色。

参数:
  • red – 红色分量(red)值
  • green – 绿色分量(green)值
  • blue – 蓝色分量(blue)值
  • alpha – 颜色的alpha通道值。255表示完全不透明
返回:

颜色

easygraphics.to_alpha(new_color, alpha: int = None) → PyQt5.QtGui.QColor

用所给的颜色和alpha值创建新颜色。

参数:
  • new_color – 基色
  • alpha – 新颜色的alpha值
返回:

用给定的基色和alpha值构建新颜色

easygraphics.pol2cart(rho, theta)

从极坐标转换为笛卡尔坐标。

参数:
  • rho – 点的极径rho(点到极点的距离)
  • theta – 点的极角theta(极轴和点到极点间线段的夹角,单位为弧度)
返回:

点的x,y轴坐标

easygraphics.cart2pol(x, y)

从笛卡尔坐标转换为极坐标。

参数:
  • x – 转换后点的x轴坐标
  • y – 转换后点的y轴坐标
返回:

极径rho(点到极点的距离), 极角theta(极轴和点到极点间线段的夹角,单位为弧度)

class easygraphics.Image(image: PyQt5.QtGui.QImage)

图片类。

使用PyQt的QImage来保存绘制的内容,QPainter作为绘图工具。

注意,Image对象内部保存并反复使用painter来绘图。因此,如果你希望直接在底层的qimage对象上画图,请使用get_painter()方法获取内部的painter对象,用它来绘制。还需要注意的时,因为Image对象内部还使用了另一个qimage对象来保存背景的掩码(mask),因此,你在自行绘制时必须正确设置掩码,否则set_background_color()和draw_image(with_background=False)会出错。

add_updated_listener(listener: Callable[[], NoneType])

Add a listener for updated event.

参数:listener – the listener to add
arc(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆弧,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y。弧的起始角为start_angle,结束角为end_angle。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 弧的起始角度
  • end_angle – 弧的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
begin_shape(type=0)
bezier(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float)

绘制一条三次贝塞尔曲线(cubic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • x3 – 第四个控制点的x轴坐标
  • y3 – 第四个控制点的y轴坐标
bezier_vertex(x1, y1, x2, y2, x3, y3)
chord(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形是空心的。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
clear()

清除指定图片上已经绘制的内容(露出背景色)。

clear_view_port()

清除视口中已经绘制的内容(露出背景色)。

close()

关闭并清理指定的图片。

参数:image – 要关闭的图片。
static create(width: int, height: int) → easygraphics.image.Image

创建一个新图片。

参数:
  • width – 新图片的宽度
  • height – 新图片的高度
返回:

创建的图片

static create_from_file(filename: str) → easygraphics.image.Image

读取图片文件。

参数:filename – 图片文件
返回:读入的图片
curve(*points)

绘制一条Catmull-Romy样条曲线。

参数:points – 控制点坐标
curve_vertex(x: float, y: float)
draw_arc(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆弧,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y。弧的起始角为start_angle,结束角为end_angle。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 弧的起始角度
  • end_angle – 弧的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
draw_bezier(x0: float, y0: float, x1: float, y1: float, x2: float, y2: float, x3: float, y3: float)

绘制一条三次贝塞尔曲线(cubic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
  • x3 – 第四个控制点的x轴坐标
  • y3 – 第四个控制点的y轴坐标
draw_chord(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形是实心的,并且有轮廓。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
draw_curve(*points)

绘制一条Catmull-Romy样条曲线。

参数:points – 控制点坐标
draw_ellipse(x1: float, y1: float, x2: float, y2: float)

以点(x,y)为中心,radius_x为x轴方向半径,radius_y为y轴方向半径,画矩形。

画出的椭圆是实心的,并且有轮廓线。

参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
draw_image(x: int, y: int, image: easygraphics.image.Image, src_x: int = 0, src_y: int = 0, src_width: int = -1, src_height: int = -1, with_background=True, composition_mode=None)

将来源图片(src_image)复制到目的图片(dst_image)。

(x,y)指明绘制在目标图片的什么位置。

(x,y)指明来源图片中待复制区域的左上角位置。缺省为(0,0)。

(sw, sh)指明来源图片中待复制区域的宽度和高度。缺省(0,0)表示使用来源图片的宽度和高度。

如果参数“with_background”是False,来源图片的背景区域不会被复制。

最终结果取决于合成模式(compostion mode)和来源图片的背景。在缺省模式下(CompositionMode.SOURCE_OVER),源图中的透明区域不会覆盖目标图片上的原有内容。

参数:
  • x – 目标图片被覆盖区域的左上角x坐标
  • y – 目标图片被覆盖区域的左上角y坐标
  • image – the source image to be copied
  • src_x – 源图中复制区域的左上角x坐标
  • src_y – 源图中复制区域的左上角y坐标
  • src_width – 源图中复制区域的宽度
  • src_height – 源图中复制区域的高度
  • with_background – 是否连同背景一起复制
  • composition_mode – 如果是None,则使用目标图片的合成模式进行复制。
draw_line(x1: float, y1: float, x2: float, y2: float)

在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。

参数:
  • x1 – 起始点的x坐标
  • y1 – 起始点的y坐标
  • x2 – 结束点的x坐标
  • y2 – 起始点的y坐标
draw_lines(*points)

画多条直线。

参数“points”是一个2维点对的列表。里面应该包含偶数个点,每2个点组成一个点对(表示一条线段);每个点又包含x和y两个坐标。因此,如果你要画n条线段(n个点对),“points”列表中就应该有4n个数。

例如,如果“points”列表的值是[50,50,550,350, 50,150,550,450, 50,250,550,550],draw_lines()就会画三条线段,即:(50,50)到(550,350), (50,150)到(550,450), (50,250)到(550,550)。

参数:points – 点坐标值列表
draw_path(path: PyQt5.QtGui.QPainterPath)

画和填充一条路径

参数:path – 待绘制和填充的路径
draw_pie(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼是实心的,有轮廓线。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
draw_point(x: float, y: float)

在指定图片的点(x,y)处画一个点。

参数:
  • x – 点的x坐标
  • y – 点的y坐标
draw_poly_line(*end_points)

画一条折线(ploy line)。

参数“end_points”是端点列表。列表中的每对数是一个点的坐标。各端点依次连接,构成了一条折线。

例如,如果参数“end_points”的值是[50,50,550,350, 50,150,550,450, 50,250,550,550], draw_poly_line()会用5条线段依次连接点(50,50)、(550,350)、(50,150)、(550,450)、(50,250)和(550,550)。

参数:end_points – 点坐标值列表
draw_polygon(*vertices)

画一个多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],draw_polygon()会画一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形是实心的,有轮廓。

参数:vertices – 点坐标值列表
draw_quadratic(x0, y0, x1, y1, x2, y2)

绘制一条二次贝塞尔曲线(quadratic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
draw_rect(x1: float, y1: float, x2: float, y2: float)

画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。

画出的矩形是实心的,有边框。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
draw_rect_text(x: int, y: int, width: int, height: int, flags=132, *args, sep=' ')

在指定的矩形区域中打印文字。

TextFlag中定义了可用的标志常量。可用按位或操作连接多个标志。

参数:
  • x – 输出区域的左上角x坐标
  • y – 输出区域的左上角y坐标
  • width – 输出区域的宽度
  • height – 输出区域的高度
  • args – 待打印的内容(与print()类似)
  • flags – 对齐标志
  • sep – 用来连接字符串的分隔符
draw_rounded_rect(x1: float, y1: float, x2: float, y2: float, round_x: float, round_y: float)

画一个圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形是实心的,有边框。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
  • round_x – 边角椭圆弧在x轴方向上的半径
  • round_y – 边角椭圆弧在y轴方向上的半径
draw_text(x: int, y: int, *args, sep=' ')

在给定的位置(x,y)处打印文字。

参数:
  • x – 起始点的x坐标
  • y – 起始点的y坐标
  • args – 要打印的内容
  • sep – 用来连接字符串的分隔符
draw_to_device(device: PyQt5.QtGui.QPaintDevice)

将整个图片绘制到指定的绘图设备上。

参数:device – 要绘制到的设备
ellipse(x1: float, y1: float, x2: float, y2: float)

画一个空心椭圆,椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y。

画出的椭圆是空心的。

参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
end_shape(close=False)
fill_chord(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆弓形(chord),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;弓形的起始角度为start_angle,结束角度为end_angle。

画出的弓形没有轮廓。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 弓形的起始角度
  • end_angle – 弓形的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
fill_ellipse(x1: float, y1: float, x2: float, y2: float)

填充一个实心椭圆,圆心位于点(x,y),x轴方向半径为radius_x, y轴方向为radius_y。

画出的椭圆没有轮廓。

参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
fill_image(color)

使用指定的颜色填充整个图片

参数:color – 填充色
fill_path(path: PyQt5.QtGui.QPainterPath)

填充被路径包围的区域。

参数:path – 包围待填充区域的路径
fill_pie(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

填充一个椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼没有轮廓线。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
fill_polygon(*vertices)

填充一个多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],fill_polygon()会填充一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形没有边框。

参数:vertices – 点坐标值列表
fill_rect(x1: float, y1: float, x2: float, y2: float)

画一个矩形,其左上角位于点(left,top),右下角位于点(right,bottom)。

画出的矩形没有边框。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
fill_rounded_rect(x1: float, y1: float, x2: float, y2: float, round_x: float, round_y: float)

填充一个圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形没有边框。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
  • round_x – 圆角椭圆弧的x轴方向半径
  • round_y – 边角椭圆弧在y轴方向上的半径
flip(x: float, y: float, x1: float = 0, y1: float = 0)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – 第一个点的x轴坐标
  • y – 第一个点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
flood_fill(x: int, y: int, border_color)

使用泛洪(Flood fill)算法填充封闭图形。

填充区域边界必须封闭,否则颜色会漏出到整个图片!

参数:
  • x – 起始点的x坐标
  • y – 起始点的y坐标
  • border_color – 填充区域边界的颜色。
get_background_color()

获取图片的背景色。

返回:背景色
get_brush() → PyQt5.QtGui.QBrush

获取指定图片的画刷(brush)。

返回:画刷
get_color()

获取指定的图片的前景色(画笔颜色)。

用它来画线或者轮廓线。

返回:前景色
get_composition_mode()

获取指定图片的合成模式(Composition mode)。

绘图时,合成模式决定绘制的内容如何和图片上原有内容进行合成。
(使用来源色和目标色。)
返回:合成模式
get_ellipse_mode()
get_fill_color()

获取指定图片的填充色。

会用它来填充图形。

返回:填充色
get_fill_rule()

获取填充多边形时所用的算法。

返回:填充多边形所用的算法
get_fill_style()

获取指定图片的填充样式。

会用它来填充图形。

返回:填充样式
get_font() → PyQt5.QtGui.QFont

获取指定图片的字体。

返回:指定图片的字体
get_font_size() → int

获取指定图片的字体大小。

返回:指定图片的字体大小
get_height()

获取指定图片的高度。

返回:图片高度
get_image() → PyQt5.QtGui.QImage

获取内部的QImage对象

注意:Easygraphics不会在每次绘制时创建和释放qpainter对象。因此如果你要自己使用qpainter来绘图,请使用get_painter()方法来获取内部的QPainter对象.

返回:内部使用的QImage对象
get_line_style()

获取线型。

线型用于画线和形状轮廓。

返回:线型
get_line_width() → float

获取线宽。

用它来画线或者轮廓线。

返回:线宽
get_mask() → PyQt5.QtGui.QImage

获取背景掩码(mask)图片

返回:背景掩码图片
get_mask_painter() → PyQt5.QtGui.QPainter

获取背景掩码的qpainter对象

返回:内部使用的掩码qpainter对象
get_painter() → PyQt5.QtGui.QPainter

获取画图的QPainter对象。

返回:内部使用的画笔对象
get_pen() → PyQt5.QtGui.QPen

获取指定图片的画笔。

返回:画笔
get_pixel(x: int, y: int) → PyQt5.QtGui.QColor

获取指定像素的颜色。

参数:
  • x – 像素的x坐标
  • y – 像素的y坐标
返回:

像素的颜色

get_rect_mode()
get_transform() → PyQt5.QtGui.QTransform

获取图片的几何变换(transform)对象。

返回:几何变换(Transform)
get_width() → int

获取指定图片的宽度。

返回:图片宽度
get_x() → float

获取指定图片”当前绘图位置”的横坐标x。

部分函数会使用“当前绘图位置”进行绘制(参见line_to(),line_rel(),move_to()和move_rel())。

返回:当前绘图位置的x坐标
get_y() → float

获取指定图片”当前绘图位置”的纵坐标y。

部分画图函数会使用“当前绘图位置”来绘制。(参见line_to(),line_rel(),move_to(),move_rel())

返回:当前绘图位置的y坐标。
line(x1: float, y1: float, x2: float, y2: float)

在指定图片上画一条从点(x1,y1)到点(x2,y2)的线段。

参数:
  • x1 – 起始点的x坐标
  • y1 – 起始点的y坐标
  • x2 – 结束点的x坐标
  • y2 – 起始点的y坐标
line_rel(dx: float, dy: float)

从当前绘图位置(x,y)到(x+dx,y+dy)画线,然后将当前绘图位置更新为(x+dx,y+dy)。

参数:
  • dx – 新当前绘图位置的x轴方向位移
  • dy – 新当前绘图位置的y轴方向位移
line_to(x: float, y: float)

从当前绘图位置到(x,y)画线,然后将当前绘图位置更新为(x,y)。

参数:
  • x – 新当前绘图位置的x坐标
  • y – 新当前绘图位置的y坐标
lines(*points)

画多条直线。

参数“points”是一个2维点对的列表。里面应该包含偶数个点,每2个点组成一个点对(表示一条线段);每个点又包含x和y两个坐标。因此,如果你要画n条线段(n个点对),“points”列表中就应该有4n个数。

例如,如果“points”列表的值是[50,50,550,350, 50,150,550,450, 50,250,550,550],draw_lines()就会画三条线段,即:(50,50)到(550,350), (50,150)到(550,450), (50,250)到(550,550)。

参数:points – 点坐标值列表
mirror(x: float, y: float, x1: float = 0, y1: float = 0)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – 第一个点的x轴坐标
  • y – 第一个点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
move_rel(dx: float, dy: float)

将绘图位置在x轴方向移动dx,在y轴方向移动dy。

如果旧位置是(x,y),那么新的位置将是(x+dx,y+dy)。

当前绘图位置被line_to()和line_rel()等函数使用。

参数:
  • dx – 新当前绘图位置的x轴方向位移
  • dy – 新当前绘图位置的y轴方向位移
move_to(x, y)

设置当前绘图位置到(x,y)。

当前绘图位置被line_to(), line_rel()和move_rel()等函数使用。

参数:
  • x – 新当前绘图位置的x坐标
  • y – 新当前绘图位置的y坐标
path(path: PyQt5.QtGui.QPainterPath)

画一条路径(path)。

参数:path – 要绘制的路径
pie(x1: float, y1: float, start_angle: float, end_angle: float, x2: float, y2: float)

画一个空心椭圆饼(pie),椭圆圆心位于点(x,y),x轴坐标为radius_x,y轴坐标为radius_y;饼的起始角度为start_angle,结束角度为end_angle。

画出的饼是空心的。

说明:正的角度值为逆时针旋转;负的角度值为顺时针旋转。0度位于三点钟方向(X轴正向)。
参数:
  • x1 – 椭圆圆心的x坐标
  • y1 – 椭圆圆心的y坐标
  • start_angle – 饼的起始角度
  • end_angle – 饼的结束角度
  • x2 – 椭圆x轴方向半径
  • y2 – 椭圆y轴方向半径
poly_line(*end_points)

画一条折线(ploy line)。

参数“end_points”是端点列表。列表中的每对数是一个点的坐标。各端点依次连接,构成了一条折线。

例如,如果参数“end_points”的值是[50,50,550,350, 50,150,550,450, 50,250,550,550], draw_poly_line()会用5条线段依次连接点(50,50)、(550,350)、(50,150)、(550,450)、(50,250)和(550,550)。

参数:end_points – 点坐标值列表
polygon(*vertices)

画一个空心多边形。

参数“vertices”是多边形的顶点列表。列表中的每对数是一个顶点的坐标。各顶点依次首尾相连构成了一个多边形。

例如,如果“vertices”的值是[50,50,550,350, 50,150],polygon()会画一个三角形,其三个顶点分别位于(50,50)、(550,350)和(50,150)。

画出的多边形是空心的。

参数:vertices – 点坐标值列表
pop_transform()

从栈(stack)中取出最近一次压入的几何变换,并将其设置为图片的当前变换。

push_transform()

将当前的几何变换(transform)压入栈(stak)中。

put_pixel(x: int, y: int, color)

将指定像素设为指定的颜色。

参数:
  • x – 像素的x坐标
  • y – 像素的y坐标
  • color – 颜色
quadratic(x0, y0, x1, y1, x2, y2)

绘制一条二次贝塞尔曲线(quadratic bezier curve)。

点(x0,y0),(x1,y1),(x2,y2),(x3,y3)是曲线的4个控制点。

参数:
  • x0 – 第一个控制点的x轴坐标
  • y0 – 第一个控制点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个控制点的y轴坐标
  • x2 – 第三个控制点的x轴坐标
  • y2 – 第三个控制点的x轴坐标
quadratic_vertex(x1, y1, x2, y2)
rect(x1: float, y1: float, x2: float, y2: float)

画一个空心矩形,左上角位于点(left,top),右下角位于(right,bottom)。

画出的矩形是空心的。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
reflect(x: float, y: float, x1: float = 0, y1: float = 0)

以过原点(x1,y1)和点(x,y)的直线为轴,反射(reflect)坐标系。

注意,所有绘制的内容都会被反射,包括文字。如果你只是希望改用Y轴正向向上的坐标系绘图,可使用set_flip_y()。

参数:
  • x – 第一个点的x轴坐标
  • y – 第一个点的y轴坐标
  • x1 – 第二个点的x轴坐标
  • y1 – 第二个点的y轴坐标
remove_updated_listener(listener: Callable[[], NoneType])

Remove a updated event listener.

参数:listener – the listener to remove
reset_transform()

重置(取消)所有几何变换。

reset_view_port()

恢复缺省的视口设置。

reset_window()

恢复缺省的逻辑窗口设置。(参阅set_window())

restore_settings()

恢复之前保存的绘图设置。

参阅save_settings()。

注意:当前位置不会被保存。

rotate(degree: float, x: float = 0, y: float = 0)

顺时针绕点(x,y)旋转坐标系。

参数:
  • degree – 旋转角度(单位为角度)
  • x – 旋转中心的x轴坐标
  • y – 旋转中心的y轴坐标
rounded_rect(x1: float, y1: float, x2: float, y2: float, round_x: float, round_y: float)

画一个空心圆角矩形,左上角位于点(left,top),右下角位于(right,bottom)。边角椭圆弧在x轴方向上半径是“round_x”,在y轴方向上的半径是“round_y”。

画出的矩形是空心的。

参数:
  • x1 – 左上角的x坐标。
  • y1 – 左上角的y坐标。
  • x2 – 右下角的x坐标。
  • y2 – 右下角的y坐标。
  • round_x – 边角椭圆弧在x轴方向上的半径
  • round_y – 边角椭圆弧在y轴方向上的半径
save(filename: str, with_background=True)

保存图片到文件。

将with_background参数设为False,可以得到一个透明背景的图片。

注意JPEG格式的文件不支持透明色。如果需要背景透明,使用PNG格式。

参数:
  • filename – 文件路径
  • with_background – True表示保存背景内容;False表示不保存背景(存为透明)。
save_settings()

保存当前的绘图设置。

参阅restore_settings()。

注意:当前位置不会被保存。

scale(sx: float, sy: float)

坐标轴沿x轴方向缩放(scale)sx倍,沿y轴方向缩放sy倍。

参数:
  • sx – x轴方向的缩放因子
  • sy – y轴方向的缩放因子
set_background_color(background_color)

设置和修改背景色。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:background_color – 背景色
set_brush(brush: PyQt5.QtGui.QBrush)

设置画刷。

参数:brush – 画刷
set_clip_rect(left: int, top: int, right: int, bottom: int)

设置矩形剪裁区域。

绘制在裁剪区域外的内容会被裁掉。

参数:
  • left – 裁剪区域左边的坐标
  • top – 裁剪区域顶部的坐标
  • right – 裁剪区域右边的坐标
  • bottom – 裁剪区域底部的坐标
set_clipping(clipping: bool)

设置是否启用剪裁。

使用set_clip_rect()来设置裁剪区域。

参数:clipping – True会打开裁剪;False会关闭裁剪
set_color(color)

设置指定图片的前景色。

用它来画线或者轮廓线。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:color – 前景色
set_composition_mode(mode)

获取指定图片的合成模式(Composition mode)。

合成模式控制绘制的内容如何和图片上的原有内容进行合成。

参数:mode – 合成模式
set_ellipse_mode(mode)
set_fill_color(fill_color)

设置指定图片的填充色。

会用它来填充图形。

颜色可以使用Color类中定义的常量,颜色名,表示rgb的整数,也可以使用color_rgb()等函数创建。

参数:fill_color – 填充色
set_fill_rule(rule)

设置填充多边形时所用的算法。

参数:rule – 填充多边形时要用的算法
set_fill_style(fill_style)

设置指定图片的填充样式。

它被用于绘制和填充形状。在FillStyle中定义了可用的填充样式常量。

参数:fill_style – 填充样式
set_flip_y(flip_y: bool) → None

按X轴翻转图片(垂直翻转)。文字不会翻转。

在用set_flip_y()打开垂直翻转后,请不要再进行平移。如果需要改变原点位置,应先进行平移,再set_flip_y()。

注意:使用这个函数来代替reflect()/flip()/mirror(),如果你只是希望改用Y轴正向向上的坐标系来作图。

参数:flip_y – True打开垂直翻转,False关闭。
set_font(font: PyQt5.QtGui.QFont)

设置指定图片的字体。

参数:font – 要用的字体
set_font_size(size: int)

设置指定图片的字体大小。

参数:size – 指定图片的字体大小
set_line_style(line_style)

设置线型。

线型用于画线和形状轮廓。在LineStyle中定义了可用的线型常量,如LineStyle.SOLID_LINE等

参数:line_style – 线型
set_line_width(width: float)

设置线宽。

用它来画线或者轮廓线。

参数:width – 线宽
set_pen(pen: PyQt5.QtGui.QPen)

设置画笔

参数:pen – 要使用的画笔
返回:
set_rect_mode(mode)
set_transform(transform: PyQt5.QtGui.QTransform)

设置图片的几何变换(transform)对象。

参数:transform – 要设置的几何变换
set_view_port(left: int, top: int, right: int, bottom: int)

设置指定图片的视口。

视口是图片上的绘图区域。

绘制在视口范围外的内容不会被剪裁。如果你希望剪裁绘制内容,请使用set_clip_rect()方法。

**如果视口和逻辑窗口的宽度和高度不一致,绘制的内容会被缩放。**所以通常在set_view_port()后set_window(),以保持二者大小一致。

参数:
  • left – 视口左边位置的坐标
  • top – 视口顶部的坐标
  • right – 视口右边位置的坐标
  • bottom – 视口底部的坐标
set_window(left: int, top: int, width: int, height: int)

设置指定图片的逻辑窗口。

逻辑上讲,所有的内容首先绘制在逻辑窗口中,然后再映射到视口。映射时逻辑窗口的四个顶点会被拉伸,以和视口的对应顶点对齐。

如果你的视口是200x200大,然后使用set_window(-50,-50,100,100),将逻辑窗口设为左上角在(-50,-50),长宽均为100。那么逻辑窗口的左上角(-50,50)(逻辑坐标)就对应视口的(0,0),右下角(50,50)就对应视口的(200,200)。逻辑窗口中所有点都依此映射到视口上。

如果你只是需要对视图进行几何变换,可使用set_origin()/translate()/rotate()/scale()等函数。

画在逻辑窗口外的内容不会被裁掉。如果你希望剪裁,使用set_clip_rect()。

参数:
  • left – 逻辑窗口左上角的x坐标
  • top – 逻辑窗口左上角的y坐标
  • width – width of the logical window
  • height – 逻辑窗口的高度
shear(sh: float, sv: float, x: float = 0, y: float = 0)

绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。

参数:
  • sh – x轴方向的错切比例
  • sv – y轴方向的错切比例
  • x – 错切中心的x轴坐标
  • y – 错切中心的y轴坐标
skew(sh: float, sv: float, x: float = 0, y: float = 0)

绕点(x,y)沿x轴方向和y轴方向同时对图像做剪切(shear或者skew)sh和sv倍。

参数:
  • sh – x轴方向的错切比例
  • sv – y轴方向的错切比例
  • x – 错切中心的x轴坐标
  • y – 错切中心的y轴坐标
text_height() → int

返回指定图片的文字(字体)高度。

返回:返回指定图片的文字(字体)高度。
text_width(text: str) → int

返回文字在指定图片中完整显示需要的宽度。

参数:text – 文字内容
返回:返回文字在指定图片中完整显示需要的宽度。
to_bytes(with_background=True, format: str = 'PNG') → bytes

Convert the image to the specified format (i.e. PNG format) bytes.

参数:
  • with_background – True表示保存背景内容;False表示不保存背景(存为透明)。
  • format – format of the bytes content
返回:

以指定格式保存的二进制图片内容。

translate(offset_x: float, offset_y: float)

将坐标轴平移指定的位移。

参数:
  • offset_x – offset on the x coordinate
  • offset_y – offset on the y coordinate
vertex(x: float, y: float)