用代码制作一个外围带有360个刻度线的圆,在圆心处有1个90°的扇形框,标识为G1。在圆上有1个随机的黑点,此系统拥有翻转按钮,按下此按钮,就将G1移动到黑点处,并将G1变成红色.
时间: 2024-05-04 18:15:11 浏览: 203
画一个圆的代码
这是一个可能的实现:
```python
import random
import math
import tkinter as tk
# 创建窗口和画布
root = tk.Tk()
canvas = tk.Canvas(root, width=600, height=600)
canvas.pack()
# 绘制圆和刻度线
center = (300, 300)
radius = 250
for angle in range(0, 360, 10):
x = center[0] + radius * math.cos(math.radians(angle))
y = center[1] + radius * math.sin(math.radians(angle))
canvas.create_line(center[0], center[1], x, y)
canvas.create_oval(center[0]-radius, center[1]-radius, center[0]+radius, center[1]+radius)
# 随机生成黑点
black_dot = (random.randint(center[0]-radius, center[0]+radius), random.randint(center[1]-radius, center[1]+radius))
canvas.create_oval(black_dot[0]-5, black_dot[1]-5, black_dot[0]+5, black_dot[1]+5, fill='black')
# 绘制扇形框
g1_angle = 90
g1_radius = 50
g1_start = (center[0] + g1_radius * math.cos(math.radians(g1_angle)),
center[1] + g1_radius * math.sin(math.radians(g1_angle)))
g1_end = (center[0] + g1_radius * math.cos(math.radians(g1_angle+90)),
center[1] + g1_radius * math.sin(math.radians(g1_angle+90)))
canvas.create_arc(center[0]-g1_radius, center[1]-g1_radius, center[0]+g1_radius, center[1]+g1_radius,
start=g1_angle, extent=90, outline='black', tag='g1')
# 定义按钮的回调函数
def flip_g1():
canvas.move('g1', black_dot[0]-g1_start[0], black_dot[1]-g1_start[1])
canvas.itemconfig('g1', outline='red')
# 创建按钮
flip_button = tk.Button(root, text='Flip', command=flip_g1)
flip_button.pack()
# 进入消息循环
root.mainloop()
```
这个代码使用`tkinter`库创建了一个窗口,并在窗口中绘制了圆和刻度线,随机生成了黑点,并绘制了扇形框。然后定义了一个按钮,当按钮被点击时,将扇形框移动到黑点处并将其变成红色。最后进入消息循环,等待用户交互。
阅读全文