| Refresh | Home EGTry.com

draw 3d cylinder with actionscript


cylinder cylinder

DrawCylinder.as

package {
	import flash.display.Graphics;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.geom.Point;
	
	public class DrawCylinder extends Sprite
	{

		
		public function DrawCylinder()
		{
			
			var p1:Point=new Point(10,50);
			var w:Number=75;
			var h:Number=100;
			var endH:Number=30; 
			
			

			
			 
			var bottomH:Number=endH;
			var bottom:Shape=drawBottom(p1.x, p1.y+h-bottomH/2, w, bottomH);
			
			drawSides( p1,w,h);
			
			var topH:Number=endH;
			var top:Shape=drawTopEclipse(p1.x,p1.y-topH/2,w,topH);
			
			


		}
		
		private function drawSides( p1:Point, w:Number, h:Number):Shape {
			var shape:Shape=new Shape();
			addChild(shape);
			var g:Graphics=shape.graphics;
			g.lineStyle(1,0xffffff,0);
			g.beginFill(0xffffff,1);
			g.drawRect(p1.x, p1.y,w,h);
			g.endFill();
			
			g.lineStyle(1,0x000000,1);
			
			g.moveTo(p1.x, p1.y);
			g.lineTo(p1.x, p1.y+h);
			
			g.moveTo(p1.x+w, p1.y);
			g.lineTo(p1.x+w, p1.y+h);
			

			return shape;
		}
		private function drawTopEclipse(x:Number, y:Number, w:Number, h:Number):Shape {	
			var shape:Shape=new Shape();		
			var g:Graphics=shape.graphics;
			g.lineStyle(1,0x000000);
			addChild(shape);
			g.drawEllipse(x,y,w,h); 
			return shape;
		}
		
		private function drawBottom(x:Number, y:Number, w:Number, h:Number):Shape {	
			var shape:Shape=new Shape();		
			var g:Graphics=shape.graphics;
			addChild(shape);
			g.lineStyle(1,0x000000);
			g.drawEllipse(x,y,w,h);
			/*
			g.moveTo(x,y+h/2);
			g.curveTo(x,y+h, x+w/2,y+h);
			g.curveTo(x+w,y+h, x+w,y+h/2);
			*/ 
			return shape;
		}
	}
}