3d顺三角和逆三角

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("========================");
            }

        }




    }
}
posted @ 2012-06-27 15:21  ndljava  阅读(181)  评论(0)    收藏  举报