运用python语言写一个关于easyguig的小练习 功能如下: 运行程序开始界面出现三个按钮,按下第一个按钮会询问是画椭圆或者圆形,点击椭圆或者圆会画出对应的图形,等画完后再次点击回到初始的三个按钮选择,按下第二个按钮会画出一个色彩鲜艳的风车,按下第三个按钮会出现正三角形到到正12边形的所有图形
时间: 2024-04-08 22:33:42 浏览: 72
Sure! 下面是一个使用EasyGui库编写的实现你描述功能的小练习代码:
```python
import easygui as eg
import turtle
def draw_ellipse():
# 画椭圆
turtle.penup()
turtle.goto(-50, 0)
turtle.pendown()
turtle.color("red")
turtle.begin_fill()
turtle.circle(100, 90)
turtle.circle(50, 90)
turtle.left(90)
turtle.circle(100, 90)
turtle.circle(50, 90)
turtle.end_fill()
def draw_circle():
# 画圆形
turtle.penup()
turtle.goto(0, -100)
turtle.pendown()
turtle.color("blue")
turtle.begin_fill()
turtle.circle(100)
turtle.end_fill()
def draw_windmill():
# 画风车
colors = ["red", "green", "blue", "yellow"]
angle = 0
for i in range(4):
turtle.color(colors[i])
turtle.fillcolor(colors[i])
turtle.begin_fill()
turtle.setheading(angle)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(135)
turtle.forward(142)
turtle.right(135)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.end_fill()
angle += 90
def draw_polygons():
# 画正多边形
sides = eg.integerbox(msg='请输入边数(3-12):', title='正多边形', lowerbound=3, upperbound=12)
angle = 360 / sides
for i in range(sides):
turtle.forward(100)
turtle.right(angle)
def main():
while True:
choice = eg.buttonbox(msg='请选择要画的图形', title='绘图', choices=['椭圆/圆形', '风车', '正多边形'])
turtle.clear()
if choice == '椭圆/圆形':
shape = eg.buttonbox(msg='请选择要画的图形', title='椭圆/圆形', choices=['椭圆', '圆形'])
if shape == '椭圆':
draw_ellipse()
elif shape == '圆形':
draw_circle()
elif choice == '风车':
draw_windmill()
elif choice == '正多边形':
draw_polygons()
if __name__ == "__main__":
turtle.speed(3)
turtle.setup(500, 500)
turtle.hideturtle()
main()
```
这个程序使用了turtle库来绘制图形,并使用EasyGui库创建了简单的GUI界面。在运行程序时,会弹出一个窗口,显示三个按钮供你选择。点击不同的按钮会执行相应的绘图代码。绘图完成后,可以再次点击按钮进行新的选择。其中,绘制椭圆和圆形使用了turtle库的circle函数,绘制风车使用了turtle库的forward和right函数,绘制正多边形使用了turtle库的forward和right函数以及EasyGui库的integerbox函数。
阅读全文