三角形类


 // Triangle Class

package {
    import flash.display.Graphics;
    public class Triangle {
        private var pointA:Point3D;
        private var pointB:Point3D;
        private var pointC:Point3D;
        private var color:uint;
        public function Triangle(a:Point3D, b:Point3D, c:Point3D, color:uint) {
            pointA = a;
            pointB = b;
            pointC = c;
            this.color = color;
        }
          public function draw(g:Graphics):void {
            if (isBackFace())
            {
                return;
            }
               g.beginFill(color);
            g.moveTo(pointA.screenX, pointA.screenY);
            g.lineTo(pointB.screenX, pointB.screenY);
            g.lineTo(pointC.screenX, pointC.screenY);
            g.lineTo(pointA.screenX, pointA.screenY);
            g.endFill();
          }
          
          private function isBackFace():Boolean {
            // 见 http://www.jurjans.lv/flash/shape.html
            var cax:Number = pointC.screenX - pointA.screenX;
            var cay:Number = pointC.screenY - pointA.screenY;
            var bcx:Number = pointB.screenX - pointC.screenX;
            var bcy:Number = pointB.screenY - pointC.screenY;
            return cax * bcy > cay * bcx;
        }
        public function get depth():Number {
           var zpos:Number = Math.min(pointA.z, pointB.z);
           zpos = Math.min(zpos, pointC.z);
           return zpos;
      }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值