課題
タートルグラフィクスで七色の虹を描くプログラムを作成して提出してください.
- 配列と繰り返し処理を利用することでプログラムを構造化することを想定しています.
- 虹の7つの帯は円環の半分(幅のある半円)で描くことにします.
(※ 帯を太い線として描くことは避けてください) - 虹の大きさ,各色の帯の幅は適宜決めてください.
- 帯の色は外側から「赤,橙,黄,緑,青,藍,紫」の順です. 色データの見本を以下に示します(必ずしもこの通りでなくても構いません).
- キャンバスの背景は白(255,255,255)です.
| 色 | R | G | B |
|---|---|---|---|
| 赤 | 237 | 26 | 61 |
| 橙 | 243 | 152 | 0 |
| 黄 | 255 | 212 | 0 |
| 緑 | 0 | 148 | 0 |
| 青 | 0 | 103 | 191 |
| 藍 | 35 | 71 | 148 |
| 紫 | 167 | 87 | 168 |
プログラムテンプレート
次に示すプログラムのテンプレート(雛型)を使ってください. このプログラムは名前を適宜変えた上で保存して利用してください.
Tips
- 配列による色データの扱い
色データは3要素の配列によって指定できます. さらに色データ(つまり配列)を配列でまとめることもできます(パレット,カラーマップ).class Turtle # パレット(3色) # (注意) 「メソッドの外」で定義すること(メソッドの中で定義するとエラーになる) PALETTE=[ [255, 0, 0], [ 0,255, 0], [ 0, 0,255] ] def draw set_color(PALETTE[0]) # 色データを配列で指定できる end end
- 配列の要素数(size)
配列の要素の個数はsizeで取得できます.ary = [8,1,25,6,7,1,6] y = ary.size # y == 7 b_dist = [["O",31],["A",38],["B",22],["AB",9]] t = b_dist.size # t == 4
- 円弧と扇形の描画(arc)
arc(r,a,false)で半径r,中心角a度の円弧(3つ目の引数は「false」そのものです), arc(r,a,true)で半径r,中心角a度の扇形(3つ目の引数は「true」そのものです)を描くことができます. 亀が円弧の端点にいると仮定して,亀が向いている方向から左向き(a > 0)か右向き(a < 0)で円弧を描きます. 扇型の場合は円の中心を経て,最初の点に戻ります.このとき亀の向きも描き始めるときの向きに戻ります.# 円弧(左回り) arc(100,60,false) # 扇形(右回り,塗りつぶす) fill { arc(100,-60,true) }
日置尋久(HIOKI Hirohisa)
Last modified: Fri Nov 14 12:35:38 JST 2025