📄 line2d.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 + -