package cn.ndl.test {
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class BitmapTrianglesUV3 extends Sprite {
[Embed(source="http://www.cnblogs.com/../image.jpg")]
private var img:Class;
private var ver:Vector.<Number>=new Vector.<Number>;
private var ind:Vector.<int>=new Vector.<int>;
private var uvt:Vector.<Number>=new Vector.<Number>;
private var bm:Bitmap;
private var res:Number=100;
private var cols:int=5;
private var row:int=4;
public function BitmapTrianglesUV3() {
super();
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
init();
}
private function init():void {
bm=new img();
makeTrinagle();
graphics.beginBitmapFill(bm.bitmapData);
graphics.drawTriangles(ver, ind, uvt);
graphics.endFill();
graphics.lineStyle(0);
graphics.drawTriangles(ver, ind);
}
private function makeTrinagle():void {
for (var i:int=0; i < row; i++) {
for (var j:int=0; j < cols; j++) {
ver.push(j * res, i * res);
uvt.push(j / (cols - 1),i / (row - 1));
if (i < row - 1 && j < cols - 1) {
trace(i * cols + j, i * cols + j + 1, (i + 1) * cols + j);
trace(i * cols + j + 1, (i + 1) * cols + j + 1, (i + 1) * cols + j);
/**
*
*
* 逆三角
**/
//ind.push(i * cols + j, i * cols + j + 1, (i + 1) * cols + j);
//ind.push(i * cols + j + 1, (i + 1) * cols + j + 1, (i + 1) * cols + j);
/**
* 顺三角
* */
ind.push(i * cols + j, i * cols + j + 1, i * cols + j + 1 + cols);
ind.push(i * cols + j + 1 + cols, i * cols + j + cols, i * cols + j);
}
}
trace("========================");
}
}
}
}