首页 > 编程知识 正文

Python内置graphics简介及应用

时间:2023-11-21 06:05:17 阅读:307899 作者:HITN

Python内置的graphics模块为开发者提供了强大的图形绘制功能。本文将从多个方面对该模块进行详细的阐述,希望能够帮助读者深入了解该模块的使用与应用。

一、绘制基本图形

1、绘制点

from graphics import *

mywin = GraphWin("绘制点", 500, 500)
p = Point(250, 250)
p.setFill("red")
p.draw(mywin)
mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在其中绘制了一个红色的点。

2、绘制直线

from graphics import *

mywin = GraphWin("绘制直线", 500, 500)
line = Line(Point(100, 100), Point(400, 400))
line.setWidth(2)
line.draw(mywin)
mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在其中绘制了一条起点坐标为(100, 100),终点坐标为(400, 400)的直线,并设置线宽为2。

3、绘制矩形

from graphics import *

mywin = GraphWin("绘制矩形", 500, 500)
rectangle = Rectangle(Point(100, 100), Point(400, 400))
rectangle.setFill("blue")
rectangle.setOutline("red")
rectangle.setWidth(2)
rectangle.draw(mywin)
mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在其中绘制了一个起点坐标为(100, 100),终点坐标为(400, 400)的蓝色矩形,边框为红色,线宽为2。

二、图形交互

1、点击获取坐标

from graphics import *

def get_mouse_click(win):
    p = win.getMouse()
    print("点击坐标:", p.getX(), p.getY())

mywin = GraphWin("点击获取坐标", 500, 500)
mywin.bind("", lambda event: get_mouse_click(mywin))
mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并通过点击鼠标左键来获取点击位置的坐标。

2、键盘交互

from graphics import *

def get_key_press(win):
    key = win.getKey()
    print("按下键盘按键:", key)

mywin = GraphWin("键盘交互", 500, 500)
mywin.bind("", lambda event: get_key_press(mywin))
mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并通过键盘按键来获取按下的键值。

三、动画效果

1、自由落体动画

from graphics import *
import time

mywin = GraphWin("自由落体动画", 500, 500)
circle = Circle(Point(250, 50), 30)
circle.setFill("red")
circle.draw(mywin)

for i in range(50):
    circle.move(0, i)
    time.sleep(0.1)

mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在窗口中绘制了一个红色的圆。通过循环移动圆的位置,实现了一个自由落体的动画效果。

2、图形变换动画

from graphics import *
import time

mywin = GraphWin("图形变换动画", 500, 500)
rectangle = Rectangle(Point(100, 100), Point(400, 400))
rectangle.setFill("blue")
rectangle.draw(mywin)

for i in range(10):
    rectangle.move(10, 0)
    rectangle.setWidth(rectangle.getWidth()*0.8)
    time.sleep(0.5)

mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在窗口中绘制了一个蓝色矩形。通过循环改变矩形的位置和大小,实现了一个图形变换的动画效果。

四、高级功能

1、图形互动

from graphics import *

mywin = GraphWin("图形互动", 500, 500)

rectangle = Rectangle(Point(100, 100), Point(400, 400))
rectangle.setFill("blue")
rectangle.draw(mywin)

while True:
    p = mywin.getMouse()
    x = p.getX()
    y = p.getY()
    if 100 < x < 400 and 100 < y < 400:
        rectangle.setFill("red")
    else:
        rectangle.setFill("blue")

mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在窗口中绘制了一个蓝色的矩形。通过鼠标交互,当鼠标点击在矩形区域内时,将矩形填充色改为红色,当鼠标点击在矩形外时,将矩形填充色改为蓝色。

2、图形合成

from graphics import *

mywin = GraphWin("图形合成", 500, 500)
circle = Circle(Point(250, 250), 100)
circle.setFill("red")
circle.draw(mywin)

rectangle = Rectangle(Point(200, 200), Point(300, 300))
rectangle.setFill("blue")
rectangle.draw(mywin)

mywin.mainloop()

这段代码创建了一个500x500大小的窗口,并在窗口中绘制了一个红色的圆和一个蓝色的矩形。通过绘制多个图形,实现了图形的合成效果。

五、总结

本文对Python内置的graphics模块进行了详细的阐述,包括绘制基本图形、图形交互、动画效果和高级功能等方面。通过学习和应用这些功能,我们可以快速、方便地实现图形绘制和图形操作。希望本文能够帮助读者更好地理解和使用Python内置的graphics模块。

示例代码仅为演示功能的简化版本,读者可以根据实际需求进行修改和扩展。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。