ワタタク
今回の記事の目的はProcessingの「ceil()関数」を理解し、自分なりに使ってみること。
目次
【Processing】ceil()関数について
ceil()関数について
- ceilは「ceiling」の略で、英語で「天井」を意味する
- ceil()関数は、数値を切り上げて最も近い整数にする関数
- 数値を切り上げるので、天井というceilという意味もイメージしやすい
- ceil()関数は、ゲームでキャラクターを座標に移動させるときや、グラフの表示で小数点を扱わないときに便利
- ceil()関数は「切り上げる」というのが大事。四捨五入ではない。
- 切り上げ (rounding up): 常に次の整数にする
- 3.1も3.8もどちらも4にする
- 四捨五入 (rounding): 数字を最も近い整数にする
- 3.2は3に、3.8は4になる。0.5以上の端数は切り上げ、0.5未満の端数は切り捨てる
【Processing】ceil()関数の書き方【構文】
ceil()関数の書き方【構文】
ceil(n)
ceil(n)
のn
は、数値を意味する英語の「number」または「numeric value」の略
【Processing】ceil()関数の使い方【画像とコード】
切り上げた数値をコンソールに表示させる
float num = 3.2;
int roundedNum = ceil(num);
println(roundedNum); // 出力は4になる
num
は数値を意味する “number” の略で、ここでは切り上げ対象の数値 3.2
を表しています。
roundedNum
は切り上げた後の数値を意味する “rounded number” の略で、ここでは ceil()
関数を使って切り上げられた数値、つまり 4
。
だから、このプログラムでは num
が元の数値、roundedNum
が切り上げた後の数値になります。
ceil()を使って円を描き、切り上げた数値をコンソールに出るようにする
ランダムな位置に表示させているので、下にあるコードをコピーして実行すると違う配置になります。
ランダムな位置に表示させているので、下にあるコードをコピーして実行すると違う表示になります。
void setup() {
size(400, 400);
background(255);
for (int i = 0; i < 10; i++) {
float size = random(10, 50); // ランダムなサイズ
int roundedSize = ceil(size); // 切り上げ
ellipse(random(width), random(height), roundedSize, roundedSize);
}
}
コードの解説。
- キャンバスの設定:
size(400, 400);
で幅400、高さ400の画面を作る - 背景を白に設定:
background(255);
で背景を白に。255は白色の値。 - 繰り返し処理:
for (int i = 0; i < 10; i++)
は、10回繰り返すためのループ。i
は回数を数える変数。 - ランダムな大きさの円を作成:
float size = random(10, 50);
で、10から50の間のランダムな大きさを選ぶ。 - 大きさを整数に切り上げる:
int roundedSize = ceil(size);
で、選んだ数値を切り上げて整数にする。 - 円を描く:
ellipse(random(width), random(height), roundedSize, roundedSize);
でランダムな位置に円を描く。width
とheight
はキャンバスの幅と高さ。
【Processing】ceil()関数で図形を描くメリット
- 簡単で正確な計算:小数点以下を切り上げることで、計算が簡単になる。特に、位置やサイズを整数で扱うときに役立つ。
- グラフィックスの整合性:整数値にすることで、図形やオブジェクトがピクセル単位で正確に表示される。これで、ずれたりぼやけたりすることが少なくなる。
- パフォーマンスの向上:小数点の計算はコンピュータにとって少しだけ重い処理。整数で計算すると、少しだけ処理が速くなることがある。
- 一貫性のある出力:切り上げを使うと、結果が常に期待通りの整数になる。これで予測しやすく、バグも減る。
【Processing】ceil()関数はどんな表現で使えそうか
僕は図形表現で使ってみようと思います。
【Processing】ceil()関数を使ってみた感想
小数点をすべて切り上げて整数に統一するのは面白いと感じました。
Processingはいろんなことができて本当にすごい。
それでは今日もレッツワクワクコーディング。