HSP 3.6を使って円を等分する点の上に縦50×横10の四角形を配置します。
以下のコードで6等分の場合が完成することを確認しました。
#const vert 50 // 縦の長さ #const hori 10 // 横の長さ #const r1 100 // 円の半径 val1 = sqrt(3) screen 1, ginfo_dispx, ginfo_dispy color 0, 0, 0 // 6等分 boxf ginfo_dispx/2-hori/2, ginfo_dispy/2-r1-vert/2, ginfo_dispx/2+hori/2, ginfo_dispy/2-r1+vert/2 boxf ginfo_dispx/2+r1/2*val1-hori/2, ginfo_dispy/2-r1/2-vert/2, ginfo_dispx/2+r1/2*val1+hori/2, ginfo_dispy/2-r1/2+vert/2 boxf ginfo_dispx/2+r1/2*val1-hori/2, ginfo_dispy/2+r1/2-vert/2, ginfo_dispx/2+r1/2*val1+hori/2, ginfo_dispy/2+r1/2+vert/2 boxf ginfo_dispx/2-hori/2, ginfo_dispy/2+r1-vert/2, ginfo_dispx/2+hori/2, ginfo_dispy/2+r1+vert/2 boxf ginfo_dispx/2-r1/2*val1-hori/2, ginfo_dispy/2+r1/2-vert/2, ginfo_dispx/2-r1/2*val1+hori/2, ginfo_dispy/2+r1/2+vert/2 boxf ginfo_dispx/2-r1/2*val1-hori/2, ginfo_dispy/2-r1/2-vert/2, ginfo_dispx/2-r1/2*val1+hori/2, ginfo_dispy/2-r1/2+vert/2
同じように12等分で1〜3つ目まで進めたところ、
1番目と3番目は表示されるのに、2番目の四角形は画面に表示されないことに気がつきました。
#const r2 200 // 円の半径 // 12等分 boxf ginfo_dispx/2-hori/2, ginfo_dispy/2-r2-vert/2, ginfo_dispx/2+hori/2, ginfo_dispy/2-r2+vert/2 // 1番目 boxf ginfo_dispx/2+r2/2-hori/2, ginfo_dispy/2-r2/2*val1-vert/2, ginfo_dispx/2+r2/2+hori/2, ginfo_dispy/2-r2/2*val1+vert/2 // 2番目 boxf ginfo_dispx/2+r2/2*val1-hori/2, ginfo_dispy/2-r2/2-vert/2, ginfo_dispx/2+r2/2*val1+hori/2, ginfo_dispy/2-r2/2+vert/2 // 3番目
また、sin, cos関数を使って試みると、
2番目が表示されないことに加え、3番目の位置が変わってしまいました。
val2 = sin(Π/6) val3 = cos(Π/6) boxf ginfo_dispx/2-hori/2, ginfo_dispy/2-r2-vert/2, ginfo_dispx/2+hori/2, ginfo_dispy/2-r2+vert/2 // 1番目 boxf ginfo_dispx/2+r2*val2-hori/2, ginfo_dispy/2-r2*val3-vert/2, ginfo_dispx/2+r2*val2+hori/2, ginfo_dispy/2-r2*val3+vert/2 // 2番目 boxf ginfo_dispx/2+r2*val3-hori/2, ginfo_dispy/2-r2*val2-vert/2, ginfo_dispx/2+r2*val3+hori/2, ginfo_dispy/2-r2*val2+vert/2 // 3番目
なぜ2番目の四角形は表示されないのでしょうか。
分かる方いらっしゃいましたら助言お願いいたします。
10等分などの場合も予定しているので、
sin, cos関数を利用したコードについても助けていただけると幸いです。
よろしくお願いいたします。