Показать сообщение отдельно
Старый 19.03.2013, 01:51
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 6  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Цитата:
Сообщение от Tails Посмотреть сообщение
Но все-же, меня интересовало решение без использования методов сторонних классов, чистое решение.
Код AS3:
			var rotation:Number = 54;
			var x:Number        = 60;
			var y:Number        = 60;
			var width:Number    = 100;
			var height:Number   = 100;
			var scaleX:Number   = 0.9;
			var scaleY:Number   = 0.5;
 
			var sprite1:Sprite  = new Sprite();
			sprite1.graphics.beginFill(0xFF0000);
			sprite1.graphics.drawRect(-width * .5, -height * .5, width, height);
			sprite1.rotation = rotation;
			sprite1.scaleX = scaleX;
			sprite1.scaleY = scaleY;
			sprite1.x = x;
			sprite1.y = y;
			sprite1.alpha = 0.5;
			addChild(sprite1);
 
			var angle2Rad:Number           = rotation * Math.PI / 180;
			var sinT:Number                = Math.sin(angle2Rad);
			var cosT:Number                = Math.cos(angle2Rad);
			var scaledWidth:Number         = width * scaleX;
			var scaledHeight:Number        = height * scaleY;
			var centerX:Number             = scaledWidth * .5;
			var centerY:Number             = scaledHeight * .5;
			var wX:Number                  = scaledWidth - centerX;
			var hY:Number                  = scaledHeight - centerY;
			var cosX:Number                = cosT * centerX;
			var sinX:Number                = sinT * centerX;
			var cosWX:Number               = cosT * wX;
			var sinWX:Number               = sinT * wX;
			var cosY:Number                = cosT * centerY;
			var sinY:Number                = sinT * centerY;
			var cosWY:Number               = cosT * hY;
			var sinWY:Number               = sinT * hY;
 
			var vertexData:Vector.<Number> = new Vector.<Number>();
			vertexData[0] = x - cosX - sinWY;
			vertexData[1] = y - sinX + cosWY;
			vertexData[2] = x - cosX + sinY;
			vertexData[3] = y - sinX - cosY;
			vertexData[4] = x + cosWX + sinY;
			vertexData[5] = y + sinWX - cosY;
			vertexData[6] = x + cosWX - sinWY;
			vertexData[7] = y + sinWX + cosWY;
			var indexData:Vector.<int> = new <int>[0, 1, 2, 0, 2, 3];
 
			var sprite2:Sprite         = new Sprite();
			sprite2.graphics.beginFill(0x00FF00);
			sprite2.graphics.drawTriangles(vertexData, indexData);
			sprite2.alpha = 0.5;
			addChild(sprite2);