Показать сообщение отдельно
Старый 04.03.2013, 20:58
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Как сделать видимыми только рёбра контура (а диагональные - невидимыми) - ?
Наложить растровую текстуру с контуром квадрата.

Добавлено через 19 минут
Модифицированный пример от Adobe
Код AS3:
package
{
	import flash.display.BitmapData;
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.geom.Rectangle;
	import flash.utils.getTimer;
 
	public class Triangles extends Sprite
	{
		// plane vertex coordinates (and t values) 
		private var x1:Number = -100,    y1:Number = -100,    z1:Number = 0,    t1:Number = 0; 
		private var x2:Number = 100,    y2:Number = -100,    z2:Number = 0,    t2:Number = 0; 
		private var x3:Number = 100,    y3:Number = 100,    z3:Number = 0,    t3:Number = 0; 
		private var x4:Number = -100,    y4:Number = 100,    z4:Number = 0,    t4:Number = 0; 
		private var focalLength:Number = 200;      
		// 2 triangles for 1 plane, indices will always be the same 
		private var indices:Vector.<int>; 
 
		private var container:Sprite;
 
		private var bitmapData:BitmapData;
 
		public function Triangles()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			indices =  new Vector.<int>(); 
			indices.push(0,1,3, 1,2,3);
 
			bitmapData = new BitmapData(200, 200, false, 0x00000000);
			bitmapData.fillRect(new Rectangle(2, 2, 196, 196), 0xFFFFFF);
 
			container = new Sprite(); // container to draw triangles in 
			container.x = 200; 
			container.y = 200;
			addChild(container);
 
			addEventListener(Event.ENTER_FRAME, rotatePlane); 
		}
 
		private function rotatePlane(event:Event):void { 
			// rotate vertices over time 
			var ticker:Number = getTimer()/400; 
			z2 = z3 = -(z1 = z4 = 100*Math.sin(ticker)); 
			x2 = x3 = -(x1 = x4 = 100*Math.cos(ticker)); 
 
			// calculate t values 
			t1 = focalLength/(focalLength + z1); 
			t2 = focalLength/(focalLength + z2); 
			t3 = focalLength/(focalLength + z3); 
			t4 = focalLength/(focalLength + z4); 
 
			// determine triangle vertices based on t values 
			var vertices:Vector.<Number> = new Vector.<Number>(); 
			vertices.push(x1*t1,y1*t1, x2*t2,y2*t2, x3*t3,y3*t3, x4*t4,y4*t4); 
			// set T values allowing perspective to change 
			// as each vertex moves around in z space 
			var uvtData:Vector.<Number> = new Vector.<Number>(); 
			uvtData.push(0,0,t1, 1,0,t2, 1,1,t3, 0,1,t4); 
 
			// draw 
			container.graphics.clear(); 
			container.graphics.beginBitmapFill(bitmapData); 
			container.graphics.drawTriangles(vertices, indices, uvtData); 
		} 
	}
}
__________________
משיח לא בא
משיח גם לא מטלפן