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())
函数列表¶
待自定义(覆写)函数¶
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)¶
-