Python – graphics
目录
简介与源代码
graphics库的设计是为了让初学者很容易地以面向对象的方式尝试计算机图形学,该包是Tkinter的包装器,应该在其上运行任何可以使用Tkinter的平台.
下载源代码: graphics.py
对象参考
- GrapgWin 对象表示屏幕上可绘制图像图像的窗口
方法 | 参考 |
---|
GraphWin(title="Grapthics Window", width=200, height=200, autoflush=True) | 构造一个新的图形窗口, autoflush 用于自动刷新画面 |
plot(x, y, color="black") | 在窗口中 (x,y) 处绘制一个 color 色彩的像素 |
plotPixel(x, y, color="black") | 在原始位置 (x,y) 处绘制像素,忽略 setCoords() 设置的任何坐标变换 |
setBackground(color) | 设置窗口背景色 |
close() | 关闭屏幕 |
getMouse() | 暂停等待用户在窗口中点击鼠标,并用 Point 对象返回鼠标单击的位置 |
checkMouse() | 与 getMouse() 类似,但不会暂停等待用户单击返回鼠标点击的最后一个点,如果上次调用 checkMouse() 或 getMouse() 后未点击窗口,则返回None |
setCoords(x1, y1, x2, y2) | 设置窗口的坐标系,从左下角 (x1,y1) 到右上角 (x2,y2) |
- GraphicsObject 是所有可绘制对象的基类
方法 | 参考 |
---|
setFill(color) | 设置填充颜色 |
setOutline(color) | 设置轮廓颜色 |
setWidth(width) | 设置轮廓宽度 (像素) |
draw(graphwin) | 将对象绘制到指定窗口 |
undraw() | 擦除对象 |
move(dx, dy) | 在 x 轴上移动 dx 单位, 在 y 轴上移动 dy 单位,如果对象当前已绘制,则将图像重新调整到新位置 |
clone() | 返回对象的副本 |
- GraphicsObject 子类- GraphicsObject 是所有可绘制对象的基类
对象 | 描述 | 方法 | 参考 |
---|
Point | 表示点 | Point(x, y) | 创建点对象 |
---|
getX() | 返回点的 X 坐标 |
getY() | 返回点的 Y 坐标 |
Line | 表示线段 | Line(p1, p2) | 构造从 p1 到 p2 的线段 |
---|
setArrow(option) | 设置线段的箭头状态, option in ["first","last","both","none"] |
getCenter() | 返回圆心的克隆 |
getP1() | 返回内切圆外正方形左下角顶点的克隆 |
getP2() | 返回内切圆外正方形右上角顶点的克隆 |
Circle | 表示圆 | Circle(center, radius) | 构造以 center 为圆心,半径为 radius 的圆 |
---|
getCenter() | 返回圆心的克隆 |
getRadius() | 返回圆的半径 |
getP1() | 返回内切圆外正方形左下角顶点的克隆 |
getP2() | 返回内切圆外正方形右上角顶点的克隆 |
Rectangle | 表示矩形 | Rectangle(p1, p2) | 构造一个对角点在 p1 和 p2 的矩形 |
---|
getCenter() | 返回矩形中心点的克隆 |
getP1() | 返回 p1 对角点的克隆 |
getP2() | 返回 p2 对角点的克隆 |
Oval | 表示椭圆 | Oval(p1, p2) | 在由 p1 和 p2 确定的边界框中构造一个椭圆 |
---|
getCenter() | 返回椭圆型的中心点的克隆 |
getP1() | 返回 p1 对角点的克隆 |
getP2() | 返回 p2 对角点的克隆 |
Polygon | 表示多边形 | Polygon(*points) | 构造一个以指定点为顶点的多边形 (可以接受列表) |
---|
getPoints() | 返回顶点组成的列表 |
Text | 表示文本 | Text(p, text) | 构造一个文本对象,显示以 p 点为中心的文本字符串,文本水平显示 |
---|
setText(text) | 设置文本 |
getText() | 返回文本 |
getAnchor() | 返回描点的克隆 |
setFace(face) | 设置字体为指定的系列, face in ['helvetica','arial','courier','times roman'] |
setSize(size) | 设置字体尺寸, 有效区间为[5,36] |
setStyle(style) | 设置字体样式, style in ['bold','normal','italic', 'bold italic'] |
setTextColor(color) | 设置文本的颜色 (等价于 setFill()) |
Entry | 表示文本输入框 | Entry(p, width) | 构造具有指定中心点和宽度的文本输入框 |
---|
getAnchor() | 返回输入框居中点的克隆 |
getText() | 返回当前在输入框内的文本 |
setText(t) | 设置文本框内的文本 |
setFace(face) | 设置字体为指定的系列, face in ['helvetica','arial','courier','times roman'] |
setSize(size) | 设置文本宽度 |
setStyle(style) | 设置文本样式, style in ['bold','normal','italic', 'bold italic'] |
setTextColor(color) | 设置文本颜色 |
Image | 表示图像 | Image(p, *pixmap) | 构造一个以 p 点为中心的图像, *pixmap 接受文件路径或 width 和 height 创建一个透明图 |
---|
getAnchor() | 返回图像的中点的克隆 |
getWidth() | 返回图像的跨度 |
getHeight() | 返回图像的高度 |
getPixel(x,y) | 返回位置 (x,y) 处的像素的RGB值 (像素位置相对于图像本身,左上角始终是 (0,0)) |
setPixel(x,y,color) | 设置位置 (x,y) 处的像素为指定颜色 |
save(filename) | 将图像保存为文件 |
方法 | 参考 |
---|
color_rgb(r,g,b) | 用于产生RGB常量 |
update() | 强制刷新画面 |
实战
import Scripts.luwspylib.graphics as graphics
win = graphics.GraphWin(title="Test",width=400,height=600)
running = True
while running:
try:
win.getMouse()
except graphics.GraphicsError:
running = False
else:
print("--END--")
win.close()
'''
Output:
>>> --END--
'''