Показать сообщение отдельно
Старый 04.03.2013, 18:57
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
с родным drawTriangles ничего этого нельзя - ни выборочно рисовать, ни посмотреть код, ни модифицировать
остается рисовать треугольники с пустым lineSyle(), а затем линии обычным lineTo
если данные для drawTriangles составляются по каким-то определенным правилам, то можно все это в какую-то утилиту завернуть
например, для варианта когда диагональ обязательно последняя в каждой тройке
Код AS3:
public function Main():void 
{
 
	var vertices:Vector.<Number> = Vector.<Number>([10, 10, 100, 10, 100, 100, 10, 100]);
	var indices:Vector.<int> = Vector.<int>([0, 1, 3, 2, 3, 1]);
	graphics.beginFill(0xC0C0C0);
	drawEdgedTriangles(graphics, vertices, indices, 0, 0xFF0000);
 
}
static public function drawEdgedTriangles(graphics:Graphics, vertices:Vector.<Number>, indices:Vector.<int>, thickness:Number=0,color:uint=0x0):void
{
 
	graphics.drawTriangles(vertices, indices);
	graphics.lineStyle(thickness, color);
 
	for (var i:int = 0; i < indices.length; i+=3) 
	{
		graphics.moveTo(vertices[2 * indices[i]], vertices[2 * indices[i] + 1]);
		graphics.lineTo(vertices[2 * indices[i + 1]], vertices[2 * indices[i + 1] + 1]);
		graphics.moveTo(vertices[2 * indices[i]], vertices[2 * indices[i] + 1]);
		graphics.lineTo(vertices[2 * indices[i + 2]], vertices[2 * indices[i + 2] + 1]);
 
	}
 
}