2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Processing(python) マウスでなぞったところに円を描く!

Last updated at Posted at 2020-06-16

#Processing(python) マウスでなぞったところに円を描く!
今回は、自分の後輩に課題の質問をされて"python","processing"懐かしいなということで書いてみることにしました!
くれぐれもこれを見た後輩君たちは丸写ししないようにね!(俺が怒られちゃうから)

##やること!
現在のフレームから9フレーム前の座標まで中心とした円を描画!

##先に完成プログラム!(説明と照らし合わせて読んでね!)

sketch.py
decorate_x = []
decorate_y = []

def setup():
    size(800, 800)

def draw():    
    decorate_x.append(mouseX)
    decorate_y.append(mouseY)
    background(255)
    if len(decorate_x) == 10:
        for i in range(10):
            ellipse(decorate_x[9-i], decorate_y[9-i], 90, 90) 
        del decorate_x[0]
        del decorate_y[0]   

##意識しなければならないこと!!

  1. 現在から9フレーム前までの円を描写すること
  2. 前のフレームの座標を保存すること!
  3. 9フレーム描写したらいったん消すこと!

##書くための発想!

  1. 座標を保存!
  2. 座標を全部で9個保存
  3. 保存した新しい順番で9個描写
  4. 描写したものを削除!

###1.座標を保存!
今回保存するのに使うのはpythonlist
まず、listを宣言!
保存するには、list名.append(値)左のコードでリストに値を追加する!

###2.座標を全部で9個保存!
座標の保存方法はさっきの説明したがどうやって9個保存したかを確かめるか?
len()を使ってlistの中に何個値が入ってるかを調べる!
9個値が入ってるときだけ動くようにifで条件分岐を作ればok

###3.保存した新しい順番で9個描写
新しくリストに入った順に書くなんてどうするの!?ってところだけど、
for i in range(10)をやることでiには0から9までが順に入っていく、順番を逆にしてリストの中身を書きたいなら引いてしまえばいい!
ellipse(decorate_x[9-i], decorate_y[9-i], 90, 90)引くことで[]の中には9から0の順に変わる!

###4.描写したもの削除!
processingには描写したものを消すコードは存在しないが上書き保存することで消すことができる!
そこで背景を全部塗り替えちゃえってことで!background(255)をつかう!

結果映像!

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?