#python #python-turtle
#python #python-черепаха
Вопрос:
Я хочу написать функцию для создания круга, но пусть пользователь выбирает значения RGB для этого круга. Я пытался использовать функцию ввода python и текстовый ввод turtle, но, похоже, ни один из них не работает. Хотя, возможно, проблема не в этом. Помощь очень ценится.
import turtle
# my turtle
t = turtle.Turtle()
red = int(turtle.textinput("Color", "Choose a value between 0-255:"))
#green = int(input("choose a second value between 0 -255."))
#blue = int(input("choose a third value between 0 -255."))
# my colorful circle function
def colors(r,g,b):
t.color(r,g,b)
t.fillcolor(r,g,b)
t.begin_fill()
t.circle(100)
t.end_fill()
green = 0
blue = 0
# calling the function
colors(red,green,blue)
Ответ №1:
Основная проблема, которую я вижу в вашем коде, заключается в том, что вы используете значения RGB от 0 до 255, тогда как turtle.py который поставляется с Python, использует значения RGB 0.0 — 1.0, если вы не укажете иное, используя colormode()
:
from turtle import Screen, Turtle
def colors(r, g, b):
turtle.color(r, g, b)
turtle.begin_fill()
turtle.circle(100)
turtle.end_fill()
screen = Screen()
screen.colormode(255)
red = int(screen.numinput("Red", "Choose a value between 0-255", minval=0, maxval=255))
green = int(screen.numinput("Green", "Choose a second value between 0-255", minval=0, maxval=255))
blue = int(screen.numinput("Blue", "Choose a third value between 0-255", minval=0, maxval=255))
turtle = Turtle()
colors(red, green, blue)
screen.exitonclick()
Поскольку вам нужен числовой ввод, я переключился с textinput()
на numinput()
. Тем не менее, я сохранил int()
преобразование в виде numinput()
возвращаемых float
значений и желаемых функций цвета int
.
Некоторые нестандартные реализации turtle для Python предполагают значения RGB от 0 до 255, но, исходя из вашего использования textinput()
, я предполагаю, что вы используете стандартную черепаху Python 3. Если нет, укажите в своем вопросе, что (веб-сайт) Python, который вы используете.