星条旗でポイント獲得【開催終了】

夏休みの特別企画!
長期休暇の特別企画!processingで星条旗を描こう!
提出者には VALON POINT 50pt〜1,500pt をプレゼントします。
期間限定なのでチャレンジはお早めに!

正確に描きたい場合は、下記の図とURLを参考にしましょう。
非常に難しいので、おとうさん、おかあさんに協力してもらっても大丈夫です!

計算して少数が出た場合は、四捨五入などして整数に揃えましょう。

また、計算すると分かりますが、四捨五入することにより青い部分と赤いストライプが揃わなくなってしまいます。下記の比率はあくまで目安なので、実情に合わせて変更してください。例えば、Aの縦の高さは200pxですが、実情に合わせると195pxになると思います。

processingには星を描く命令がないので、こちらでオリジナルの命令を作りました。使い方は下部のサンプルを見てください。

wwwj-quickref-flag1
https://americancenterjapan.com/aboutusa/profile/2770/
比率200倍にして作りましょう
A1.0200px
B1.9380px
C青い部分 縦0.5385
D青い部分 横0.76
E星の中心から 縦0.054
F8区画0.054
G星の中心から 横0.063
H10区画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/

2件のコメント

コメントする