⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 line2d.as

📁 flex3d 的源码
💻 AS
字号:
package engine.geom
{

    /** Line in 2D space */
    public class Line2D
    {
        public var a:Number;
        public var b:Number;
        public var c:Number;

        public function Line2D(a:Number, b:Number, c:Number)
        {
            this.a = a;
            this.b = b;
            this.c = c;
        }

        public static function from2points(v0:Vector, v1:Vector):Line2D
        {
            var a:Number = v1.y - v0.y;
            var b:Number = v0.x - v1.x;
            var c:Number = -(b*v0.y + a*v0.x);

            return new Line2D(a, b, c);
        }

        public static function cross(u:Line2D, v:Line2D):Vector
        {
            var det:Number = u.a*v.b - u.b*v.a;
            var xd:Number = u.b*v.c - u.c*v.b;
            var yd:Number = v.a*u.c - u.a*v.c;

            return new Vector(xd / det, yd / det, 0);
        }

        public function sideV(v:Vector):Number
        {
            return a*v.x + b*v.y + c;
        }

        public function side(x:Number, y:Number):Number
        {
            return a*x + b*y + c;
        }

        public function distance(v:Vector):Number
        {
            return sideV(v) / Math.sqrt(a*a + b*b);
        }

        public function toString():String
        {
            return "line{ a: "+a+" b: "+b+" c:"+c+" }";
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -