gpt4 book ai didi

python - 有没有办法围绕一个圆圈(或在圆圈内)旋转文本?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:36 26 4
gpt4 key购买 nike

typical spinning wheel我正在用 Python tKinter 制作纺车。通常,当您旋转转盘时,您会落在转盘上的随机切片上,其中随机选择是切片上显示的文本。我找不到在切片上旋转文本的方法。

我尝试在 create_text 函数 中使用角度选项,只是它围绕圆心旋转文本:

for x in range(len(spinList)):
color = "#"+("%06x"%random.randint(0,16777215))
c.create_arc(xy, start=90+((360/size)*x), extent=(360/size), fill=color, outline='black', width=2)
c.create_text(200, 200, text=spinList[x], angle=90+((180/size)*x))

我想要的预期结果是文本显示在纺车的每个单独切片上,但它围绕中点旋转。有没有办法避免这种情况发生?

最佳答案

作为文本 block 沿圆形路径旋转的简单示例,您可以这样做。

import math
import tkinter as tk


def rotate(angle=0):
x = math.cos(angle) * 200 + 250
y = math.sin(angle) * 200 + 250
canvas.coords(txt, x, y)
canvas.after(100, rotate, angle+0.1)

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)

txt = canvas.create_text(250, 50, text='around and around')
rotate()
canvas.pack()
root.mainloop()

[编辑] 基于@Novel 的建议,tcl8.6 添加了一个rotate 功能,这里是一个文本沿圆形路径旋转的示例,并改变方向:

import math
import tkinter as tk


def rotate(angle1=0, angle2=0):
dx = math.cos(angle1) * 200 + 250
dy = math.sin(angle1) * 200 + 250
canvas.coords(txt, dx, dy)
canvas.itemconfig(txt, angle=angle2)
canvas.after(100, rotate, angle1+0.1, angle2-15)

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)

txt = canvas.create_text(250, 50, text='around and around')
rotate()
canvas.pack()
root.mainloop()

关于python - 有没有办法围绕一个圆圈(或在圆圈内)旋转文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com