表示と非表示のためにテキストをフェードする方法はありますか。または、他の描画を消去せずに画面の一部を消去します。
import turtle
#fade this text
turtle.write("Hello")
#clear some shape
turtle.fd(100)
表示と非表示のためにテキストをフェードする方法はありますか。または、他の描画を消去せずに画面の一部を消去します。
import turtle
#fade this text
turtle.write("Hello")
#clear some shape
turtle.fd(100)
テキストを薄くしたり、形状をクリアしたりする機能はありません。
テキストの上に新しい色でテキストを書くことはできますが、理想的ではありません。
import turtle
turtle.colormode(255)
for i in range(0,255,15):
turtle.pencolor(i,i,i)
turtle.write("Hello")
turtle.delay(100)
背景が白い場合は、同じ形を白い色で描くことで形をきれいにすることができます。しかし、それはあまりにも多くの仕事です。
他のスタンプを中断することなく、Python タートルからのテキスト ラベルのフェードをシミュレートする方法:
スタンプ/テキストを削除して明るい色で再描画することにより、これを自分で行う必要があります。次の例では、2 つのタートルを作成します。1 つは Alex という名前で動き回り、もう 1 つは という名前のディープ クローンalex
ですalex_text
。Alex テキストが画面に書き込まれ、その後クリアされます。次に、alex_text
アレックスを混乱させずにクリアするためのハンドルを提供する新しい場所までアレックスを追う別のタートルです。そのため、アレックスのスタンプは周りに書かれており、他のスタンプは削除され、白地に白になるまで白に近い色で再描画されました.
import turtle
import time
alex = turtle.Turtle()
alex_text = turtle.Turtle()
alex_text.goto(alex.position()[0], alex.position()[1])
alex_text.write("hello")
time.sleep(1)
alex_text.clear()
alex.goto(100, 100)
alex_text.goto(alex.position()[0], alex.position()[1])
alex_text.write("hello2")
time.sleep(1)
上の例では、黒から白に 1 ステップでフェードします。下の例では、テキストを 1 秒の遅延で 5 ステップで黒から白にフェードします。
import turtle
import time
alex = turtle.Turtle()
alex_text = turtle.Turtle()
alex_text.goto(alex.position()[0], alex.position()[1])
alex_text.pencolor((0, 0, 0))
alex_text.write("hello")
time.sleep(1)
alex_text.clear()
alex_text.pencolor((.1, .1, .1))
alex_text.write("hello")
time.sleep(1)
alex_text.pencolor((.5, .5, .5))
alex_text.write("hello")
time.sleep(1)
alex_text.pencolor((.8, .8, .8))
alex_text.write("hello")
time.sleep(1)
alex_text.pencolor((1, 1, 1))
alex_text.write("hello")
time.sleep(1)
alex_text.clear()
time.sleep(1)
pencolor メソッド、write メソッド、clear メソッド、position メソッド、goto メソッドについては、https://docs.python.org/3.3/library/turtle.html を参照してください。