課題
六芒星を描くメソッドを定義して,それを利用して描画を行うプログラムを作成して提出して下さい.
- 六芒星を描くメソッドstar(cx,cy,r,theta)を定義して下さい
- (同じプログラムの中で)六芒星を使った絵を描いてください
- アニメーションやインタラクションの機能はつけてもつけなくても構いません
六芒星描画メソッドの仕様
メソッドは次の形式で定義することにします.
def star(cx,cy,r,theta) end
各引数は次のように解釈します.
- (cx,cy): 中心座標
- r: 半径(中心から外側の頂点までの距離)
- theta: 姿勢(x軸から左回りで最初に現れる外側の頂点の方向)
thetaの単位は度(degree)でも弧度(radian)でも構いません.
テンプレート,サンプルプログラム
プログラムテンプレートを使って構いません.
次にサンプルプログラムを示します.
技術情報
プログラムで利用するかもしれない情報を提供します.必ずしもすべてを使わなくても構いません.なお図形は重ねて描画できます.
# 三角関数(引数はラジアンで指定する) Math.sin(x) Math.cos(x) # 円周率(※末尾の2文字は大文字でピー,アイ) Math::PI # xの平方根 Math.sqrt(x) # (1つ以上の)三角形の描画(内部で指定する頂点3つずつで定まる三角形を順に描く) GL.Begin(GL::TRIANGLES) : GL.End() # 凸多角形の描画 GL.Begin(GL::POLYGON) : GL.End()
プログラムの作成に必要であれば以下も使って下さい.
- sleep(t)
t秒間処理を停止する(tは小数値で指定可能) - rand(n)
nは非負整数.n >= 1のときは,0,1,...,n-1のうちいずれかの整数をランダムに一つ発生させる(つまりn=1の場合は0のみが発生することになる). n=0のときは,0以上1未満の数値をランダムに一つ発生させる.