【初心者向け】Processing Pythonのfor文を使った繰り返しで模様を描こう

Processing python

初めまして、ダダです

Processingを初めて約半年ぐらいがたちました

ブログの中で書いてあるような内容が少しずつ身についてきている感覚もあります

そんな私ですが最近少し悩んでいます、図形は書けるようになってきてロゴも作れるようになりました

図形の記事についてはこちらから

ロゴの記事についてはこちらから

しかーし

何かが物足りない、プログラミングだからできる作品を作ってみたい

どういうこと?

と思われる方も多いと思います

理由は簡単で、図形や線を描くことは別にプログラミングじゃなくてもできるよねってことです

せっかくプログラミングでやっているならプログラミングでできることをやってみたい

ということで今回はプログラミングの基礎にある

for文(繰り返し文)を使って以下のようなものを作っていきます

この記事はProcessingというソフトを使用しています

設定はJavaではなくPythonに変更してください

Java設定だとエラーが出る場合があるので注意してください

↓↓↓Processingって何?という方はこちらの記事を↓↓↓

↓↓↓Processingのインストールや設定の変更についてはこちらの記事を↓↓↓

for文(繰り返し分)とは

Pythonでは指定した回数をや指定した中身をfor文で繰り返すことができます

for文コード

for i in range(10):
    繰り返し処理

といった形になります

とは言っても少しわかりにくいと思うので実際に図形を使いながらやっていきます

一つ図形を作ろう

まずは丸い図形を作ります

size(1000,1000)

ellipse(100, 100, 100, 100)

この左上にある丸をfor文を使って増やしていきます

for文を使ってみよう増やしてみよう

コード入力

size(1000,1000)

for i in range(10):
    ellipse(100*i, 100, 100, 100)

実行

10個増えました

最初の一個は見切れていますが理由があり、数字の指定を行うと0~始まるので最初の座標が0になるので見切れます

コードの説明

図で説明していくとこのようになります

繰り返す数を指定して変数へ代入します

その変数を使用して繰り返しを行っていきます

これが基本的な使い方です

では、ここから応用で模様やデザインを作成していきます

for文の応用

では、for文の使い方でどのようなものがあるかいろいろ試していこうと思います

繰り返しを繰り返す

丸を作るときには横にどんどん増えていきました

それをさらに縦に繰り返してさらに丸の数を増やしていきましょう

コード作成

size(1000,1000)

for i in range(11):
    ellipse(100*i, 100, 100, 100)
    
    for r in range(11):
        ellipse(100*i, 100*r, 100, 100)

入力・実行

色を繰り返す

丸の数がかなり増えましたね

色がないので味気ないので色を付けてきます

その時に少し色にも繰り返しを使ってみます

コード作成

size(1000,1000)

for i in range(11):
  fill(0, 0, 100+(i*10).80)
    ellipse(100*i, 100, 100, 100)
    
    for r in range(11):
        ellipse(100*i, 100*r, 100, 100)

入力・実行

少しグラデーションっぽくなりましたね

最後に模様っぽくするために幅を狭くしていきます

模様っぽくしてみよう

丸の間隔を狭くしていくと若干模様っぽくなります

コード作成

size(1000,1000)

for i in range(11):
    fill(0, 0, 100+(i*10),80)
    ellipse(100/2*(i), 100/3, 100, 100)
    
    for r in range(11):
        ellipse(100/2*(i), 100/3*r, 100, 100)

入力・実行

ぎゅっとなって模様っぽくなったのですが、模様がない範囲が多いのでなんかもの足りませんよね

数を増やしてみます

range()の部分の数を変更していきました

11⇒33へ変更

コード作成

size(1000,1000)

for i in range(33):
    fill(0, 0, 100+(i*10),80)
    ellipse(100/2*(i), 100/3, 100, 100)
    
    for r in range(33):
        ellipse(100/2*(i), 100/3*r, 100, 100)

入力・実行

これで模様っぽくなりましたかね

少し応用していくと

こんな感じの作品も作ることができます

まとめ

パソコンは繰り返し行う作業が得意なようです

図形を少しずらして繰り返すだけでも、模様のようになり作品ができると思います

これは自分で書いていこうと思うとなかなか骨が折れる作業ではないでしょうか?

こんな感じでできる作品は素敵だなーっと思うのでいろいろ試していきたいです

コメント

タイトルとURLをコピーしました