easygraphics.processing包

模仿Processing(http://processing.org)的动画模块。

from easygraphics import *
from easygraphics.processing import *
import math

x_spacing = 16  # How far apart should each horizontal location be spaced
theta = 0  # Start angle at 0
amplitude = 75  # Height of wave
period = 500  # How many pixels before the wave repeats

dx = (2 * math.pi / period) * x_spacing

def setup():
    global w
    set_size(640, 360)
    translate(0, get_height() // 2)
    set_background_color("black")
    set_fill_color("white")
    w = get_width() + 16  # Width of entire wave

def draw():
    global theta
    theta += 0.02
    clear_device()
    x = theta
    for i in range(w // x_spacing):
        y = math.sin(x) * amplitude
        fill_circle(i * x_spacing, y, 8)
        x += dx

run_app(globals())
../_images/sine.wave.png

函数列表

主程序

run_app(_globals) 运行Processing程序。

待自定义(覆写)函数

draw() 绘制一帧动画。
setup() 设置Processing环境。
on_mouse_clicked() 鼠标点击事件处理函数(方法)。
on_mouse_dragged() 鼠标拖动事件处理函数(方法)。
on_mouse_pressed() 按下鼠标按钮事件处理函数(方法)。
on_mouse_released() 松开鼠标按钮事件处理函数(方法)。
on_mouse_wheel(e) 鼠标滚轮事件处理函数(方法)。

控制与设置

full_screen() 打开一个全屏幕大小的画布。
get_frame_rate() 获取动画的帧率(fps)。
loop() 开始动画循环。
mouse_pressed bool(x) -> bool
mouse_x int([x]) -> integer int(x, base=10) -> integer
mouse_y int([x]) -> integer int(x, base=10) -> integer
noloop() 停止动画循环。
prev_mouse_x int([x]) -> integer int(x, base=10) -> integer
prev_mouse_y int([x]) -> integer int(x, base=10) -> integer
redraw() 调用一次draw()函数,来绘制动画的一帧。
set_frame_rate(fps) 获取动画的帧率(fps)。
set_size(width, height) 打开指定大小的画布(canvas)窗口。

函数

easygraphics.processing.redraw()

调用一次draw()函数,来绘制动画的一帧。

不要自定义(覆写)该函数!

easygraphics.processing.loop()

开始动画循环。

easygraphics.processing.noloop()

停止动画循环。

easygraphics.processing.run_app(_globals)

运行Processing程序。

参数:_globals – python的全局变量字典
easygraphics.processing.set_size(width: int, height: int)

打开指定大小的画布(canvas)窗口。

参数:
  • width – 画布的宽度
  • height – 画布的高度
easygraphics.processing.full_screen()

打开一个全屏幕大小的画布。

easygraphics.processing.draw()

绘制一帧动画。

你应该在程序中重新定义该函数。

返回:
easygraphics.processing.setup()

设置Processing环境。

你应该在程序中重新定义该函数。

easygraphics.processing.set_frame_rate(fps: int)

获取动画的帧率(fps)。

参数:fps – 帧率
easygraphics.processing.get_frame_rate() → int

获取动画的帧率(fps)。

返回:帧率
easygraphics.processing.on_mouse_wheel(e: PyQt5.QtGui.QWheelEvent)

鼠标滚轮事件处理函数(方法)。

你应该在程序中重新定义该函数,以处理鼠标滚轮事件。

easygraphics.processing.on_mouse_dragged()

鼠标拖动事件处理函数(方法)。

你应该在程序中重新定义该函数,以处理鼠标拖动事件。

easygraphics.processing.on_mouse_released()

松开鼠标按钮事件处理函数(方法)。

你应该在程序中重新定义该函数,以处理松开鼠标按钮事件。

easygraphics.processing.on_mouse_pressed()

按下鼠标按钮事件处理函数(方法)。

你应该在程序中重新定义该函数,以处理按下鼠标按钮事件。

easygraphics.processing.on_mouse_clicked()

鼠标点击事件处理函数(方法)。

你应该在程序中重新定义该函数,以处理鼠标点击事件。

class easygraphics.processing.ProcessingWidget(*args, auto_start=True, **kwargs)

仿Processing窗口组件。

draw()

绘制一帧动画。

你应该覆写该方法。

full_screen()

将画布设置为全屏幕大小。

get_canvas() → easygraphics.image.Image

获取画布图片对象

返回:图标图片对象
get_frame_rate() → int

获取动画的帧率(fps)。

返回:帧率
keyPressEvent(self, QKeyEvent)
loop()

开始动画循环。

mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, QMouseEvent)
noloop()

停止动画循环。

on_mouse_clicked()

鼠标点击事件处理函数(方法)。

你可以覆写它,以处理鼠标点击事件。

on_mouse_dragged()

鼠标拖动事件处理函数(方法)。

你可以覆写它,以处理鼠标拖动事件。

on_mouse_pressed()

按下鼠标按钮事件处理函数(方法)。

你可以覆写它,以处理按下鼠标按钮事件。

on_mouse_released()

松开鼠标按钮事件处理函数(方法)。

你可以覆写它,以处理松开鼠标按钮事件。

on_mouse_wheel(e: PyQt5.QtGui.QWheelEvent)

鼠标滚轮事件处理函数(方法)。

你可以覆写它,以处理鼠标滚轮事件。

paintEvent(self, QPaintEvent)
redraw()

调用一次draw()函数,来绘制动画的一帧。

set_frame_rate(fps)

获取动画的帧率(fps)。

参数:fps – 帧率
set_size(width: int, height: int)

设置画布大小。

参数:
  • width – 画布的宽度。
  • height – 画布的高度。
setup()

设置动画环境。

你应该覆写该方法。

start()

手动开始准备动画环境,开始动画循环。

wheelEvent(self, QWheelEvent)