
夏休みの特別企画!
長期休暇の特別企画!processingで星条旗を描こう!
提出者には VALON POINT 50pt〜1,500pt をプレゼントします。
期間限定なのでチャレンジはお早めに!
正確に描きたい場合は、下記の図とURLを参考にしましょう。
非常に難しいので、おとうさん、おかあさんに協力してもらっても大丈夫です!
計算して少数が出た場合は、四捨五入などして整数に揃えましょう。
また、計算すると分かりますが、四捨五入することにより青い部分と赤いストライプが揃わなくなってしまいます。下記の比率はあくまで目安なので、実情に合わせて変更してください。例えば、Aの縦の高さは200pxですが、実情に合わせると195pxになると思います。
processingには星を描く命令がないので、こちらでオリジナルの命令を作りました。使い方は下部のサンプルを見てください。

| 比率 | 200倍にして作りましょう | ||
| A | 縦 | 1.0 | 200px |
| B | 横 | 1.9 | 380px |
| C | 青い部分 縦 | 0.5385 | |
| D | 青い部分 横 | 0.76 | |
| E | 星の中心から 縦 | 0.054 | |
| F | 8区画 | 0.054 | |
| G | 星の中心から 横 | 0.063 | |
| H | 10区画 | 0.063 | |
| K | 星の直径 | 0.0616 | |
| L | ストライプの幅 | 0.0769 |
下記のサンプルプログラムをコピーしてから作り始めましょう!
# ここから
# -------------------------------------------------------
def star(x = 100, y = 100, r = 100, angle = 0, vertex_num = 5):
r_out = r
r_in = r_out * 0.382
angle = TWO_PI/vertex_num
halfAngle = angle/2
beginShape()
for a in [angle*i-PI/2 for i in range(vertex_num)]:
# 外側頂点生成
sx_out = x + cos(a) * r_out
sy_out = y + sin(a) * r_out
vertex(sx_out, sy_out)
# 内側頂点生成
sx_in = x + cos(a+halfAngle) * r_in
sy_in = y + sin(a+halfAngle) * r_in
vertex(sx_in, sy_in)
endShape(CLOSE)
# -------------------------------------------------------
# ここまでは星を書くための命令です。消さずにそのままにしてください。
# ここから下にプログラムを書いてください。
size(380, 200)
# サンプル
fill(255, 0, 0)
star(100, 100, 50) # star(中心点X, 中心点Y, 半径)Scratchでチャレンジ
国旗の定義では星の大きさを直径で表していますがstar命令で指定する大きさは半径なので、注意してください。
ポイントは少し落ちますが、Scratchでチャレンジしたい方は下記のプログラムをリミックスして作りましょう!
Scratchには四角を描く命令と、星を描く命令がないので、こちらで命令を用意してあります。
https://scratch.mit.edu/projects/555837187/
ニャッハッハッハッハ←(パピルス?)
いや、、、、ムッズイって!!