7月2日(お絵描き2)

ページ名:7月2日(お絵描き2)

今日の資料

https://drive.google.com/file/d/13ynNgUTHNo8wUxXqltdtYlH8MSD7uF_p/view?usp=sharing

タートルのマニュアル

https://docs.python.org/ja/3/library/turtle.html

マウスやキーボードで操作する

from turtle import *
reset()
 
def turn(x, y):
    left(90)
def red():
    color('red')
def black():
    color('black')
 
onscreenclick(turn) #左クリックで90度回転
onkey(red, 'r') #rを押すと赤になる
onkey(black, 'b') #bを押すと黒になる
listen()
 
while True:
    forward(1)
 
g を押したら線が緑になるようにしましょう

2 を押したら線が太くなるように、1 を押したら線が細くなるようにしましょう
 

お絵描きをする

from turtle import *
def jump(x, y):
    penup()
    speed(0)
    goto(x, y)
    pendown()
 
def red():
    color('red')
 
def black():
    color('black')
 
reset()
listen()
shape('circle')
pensize(5)
onscreenclick(jump)
ondrag(goto)
onkey(red, 'r')
onkey(black, 'b')
mainloop()
 
☆ cを押したら画面をリセットするようにしましょう

複数の亀が動く

 
import turtle
import random
screen = turtle.Screen()
screen.clearscreen()
turtle.speed(0)
turtle.listen()
 
def newturtle(): #新しい亀を作る
    t = turtle.Turtle()
    t.left(random.randrange(0,360))
    t.shape('turtle')
 
 
turtle.shape('turtle')
turtle.onkey(newturtle, 't') #tが押されたら新しい亀を作る
 
while True: #亀はそれぞれランダムな動きをする
    for t in screen.turtles():
        t.forward(1)
        t.left(random.randrange(-10,10))
 
mainloop()
 

アニメーション

from turtle import *
import random
reset()
shape('circle') #タートルの形を丸にする
shapesize(3,3,1) #タートルを大きい丸にする
speed(0) #一瞬で角度を変えるようにする
takasa = window_height() #画面の高さ
haba = window_width() #画面の幅
penup() #線は描かない
left(random.randrange(0, 360)) #ランダムな角度でスタート
 
while True: #永遠に繰り返す
    forward(3)
    if abs(xcor()) >= haba / 2: #左右の壁にぶつかったとき
        left((90 - heading()) * 2)
        forward(10)
    elif abs(ycor()) >= takasa / 2: #上下にぶつかったとき
        left(heading() * -2)
        forward(10)
 

木を描く(再帰)

from turtle import *
reset()
def tree(length):
    if length > 5:
        forward(length)
        right(20)
        tree(length - 15)
        left(40)
        tree(length - 15)
        right(20)
        backward(length)
pensize(3)
color("green")
left(90)
backward(150)
tree(100)
 
 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧