02 四角形を描いてみよう-正方形

正方形並べる

QUAD-0200 正方形を全画面に並べます。画像サイズが400×400だと右と下に線が出なかったので、401×401にしています。

QUAD-0201 これに交互に色を付けて市松模様にしてみましょう。booleanを使って交互に色を付けていきます。

データ型 Boolean
構文boolean var
boolean var = booleanvalue
ブール値 true と false のデータ型
パラメータvar値を参照する変数名
booleanvalue真(true)か偽(false)か
論理演算子

論理演算子とは、真(true)または偽(false)の値を判定する演算子です。if文などの条件判定に使用されます。

構文!expressionNOT(論理否定) 式のブール値を反転します。式が偽の場合は真を返し、式が真の場合は偽を返します。
パラメータexpression有効な式

QUAD-0202 正方形を右下へずらして重ねてみます。

QUAD-0203 正方形に色を付けます。この場合は上記とは逆に重ねていきます。lerpColor()でグラデーションにします。また補間量をnorm()で0 から 1 の間の値に正規化します。

正規化 norm
構文norm(value, start, stop)別の範囲の数値を 0 から 1 の間の値に正規化します。正規化とは一定のルールに基づいてデータを整える(変形・変換する)ことです。範囲外の値は意図的で有用な場合が多いので、範囲外の数値は0と1に固定されません。
パラメータvalue(float) 変換対象の入力値
start(float) 現在の値の範囲の下限値
stop(float) 現在の値の範囲の上限値
for ( int i=0; i<50; i++) {
println(norm(i,0,49));
}
出力
0.0
0.020408163
0.040816326
︙(略)
0.9591837
0.97959185
1.0

QUAD-0204 正方形の大きさをランダムに設定します。

1
randomSeed()
 を使ってランダムシードを固定すると、毎回同じパターンしか生成されないため、見た目の良い画像を選びやすくする目的で、
1
second()
 を使ってシード値を変えることで、異なるパターンが生成されるようにしています。

日時等に関する値を返す

コンピュータの時計と通信して各値を取得します。

構文millis()スケッチを開始してからのミリ秒数(1000分の1秒)を返します。
戻り値int例)10047、10061、10079
構文second()現在の秒を0から59までの値で返します。
戻り値int0から59までの整数
構文minute()現在の分を0から59までの値で返します。
戻り値int0から59までの整数
構文hour()現在の時を0から59までの値で返します。
戻り値int0から59までの整数
構文day()現在の日を1から31までの値で返します。
戻り値int1から31までの整数
構文month()現在の月を1から12までの値で返します。
戻り値int1から12までの整数
構文year()現在の年を整数で返します。
戻り値int 例)2025、2026、2027

QUAD-0205 正方形を45度回転したものをずらして重ねます。各正方形ごとに座標と回転を独立して管理するためにpushMatrix()popMatrix()を使用します。

QUAD-0206 正方形をズームしたような同心円ならぬ同心四角?を描きます。

QUAD-0206 上記の正方形を並べてみます。

QUAD-0207 バックにランダムな色を付けてみましょう。

QUAD-0208 rectMode(CENTER)を外してデフォルトにしてみると。。。

正方形を回転させる

QUAD-0209 円の方程式を使って正方形を回転させます。

応用例
応用例
応用例

QUAD-0210 正方形を画面の中心に置いて、rotate()で回転させます。lerpColor()でグラデーションにして、不透明度を下げて奥行き感を出しています。

QUAD-0211 正方形の位置をずらして回転させています。これも上記と同じくlerpColor()と不透明度を操作しています。線も不透明度を下げています。

QUAD-0212 ランダムに正方形を描いてみます。

QUAD-0213 正方形の大きさもランダムにしてみます。

QUAD-0214 lerpColor()と不透明度を合わせてカラーを付けてみます。不透明度を使うことにより奥行きが出てきます。

ヘッダー画像はChatGTPで作成しました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次