line2d.as
来自「著名的flash 3d引擎 away 3d的源代码」· AS 代码 · 共 59 行
AS
59 行
package away3d.core.draw{ /** 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:ScreenVertex, v1:ScreenVertex):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):ScreenVertex { 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 ScreenVertex(xd / det, yd / det, 0); } public function sideV(v:ScreenVertex):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:ScreenVertex):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 + =
减小字号Ctrl + -
显示快捷键?