12.円柱クラス1

よーく見てみると

円柱のモデル

モデルとなった「円柱」をよく観察してみると、そんなキレイな円柱ではありません。両端部分に斜めになっている部分があります(右図)。

ほんとかよ?とお思いなら、今晩、じっくりと手にとってまじまじと眺めてみて下さい(そんな奴いねーよ)。

ともかく、端の部分が両端とも斜めになっている部分があるんですよね、、、

ここをすっぱりと円柱 − つまり側板と端の円だけ − として表現すると、スクリプトは簡単になりますが、それらしく見えないですよね、きっと、、、

端部パーツ構成

端部パーツ構成

結局、この斜めの部分は、右図のようなパーツで構成することでごまかしてます(^^;

二つの楕円を描いて、楕円2と同色の三角形を左右両方に描いています。

この三角形の斜めの線は二つの楕円の接線です。

こうすると、この斜め部分に絵を描けないものの、それらしく見えるのではないかな、と。

ようやく完成

そんなこんなでようやく円柱を描くクラスが完成。

実行結果を見てみる

メインになるスクリプトがあって、そこから、角度を指定して描画してます。

メインになる部分だけ書くとこんな感じ。

実際にはボタンがあったりするのですが、省いてます。

//サンプル
public class main extends Sprite {

private var can1:can = new can(1);//缶クラスからオブジェクトを作ってます

private var nco:int=0;
private var kaku1:Number=20;//おじぎ角
private var kaku2:Number=55;//自転角

public function test() {// コンストラクタ

addChild(can1.canbox);//canboxというところに円柱を描いていますので
can1.canbox.x=200;
can1.canbox.y=100;

addEventListener( Event.ENTER_FRAME, moving );

}
private function moving(eventObject:Event):void {
can1.setcanbox(kaku1,kaku2);//このメソッドで描画します
kaku1+=1;
kaku2+=1;
}
}

クラスからオブジェクトを作るとき引数を1としています。

この番号を変えると違うデザインの円柱になる、という予定ですが今のところ1番しかありません(^^;

→12.円柱クラス2

11.円柱側面の表現←