From 7ea9f0a09349ab12eb046e9245e94d47788f9e06 Mon Sep 17 00:00:00 2001 From: ChenX Date: Tue, 9 Oct 2018 15:35:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=9B=B4=E7=BA=BF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E8=BF=91=E7=82=B9=E5=8F=82=E6=95=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98,=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __test__/Interest/line.test.ts | 7 +++++++ src/DatabaseServices/Line.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/__test__/Interest/line.test.ts b/__test__/Interest/line.test.ts index 0d4799afb..90507c34f 100644 --- a/__test__/Interest/line.test.ts +++ b/__test__/Interest/line.test.ts @@ -42,3 +42,10 @@ test('直线相交', () => pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendBoth); expect(pts.length).toBe(1); }); + + +test('直线参数', () => +{ + let l1 = new Line(new Vector3(0, 0, 0), new Vector3(5, 5, 0)); + expect(l1.GetClosestAtPoint(new Vector3(10, 10), false).param).toBe(1); +}); diff --git a/src/DatabaseServices/Line.ts b/src/DatabaseServices/Line.ts index 88dc99da4..27cc0e2c7 100644 --- a/src/DatabaseServices/Line.ts +++ b/src/DatabaseServices/Line.ts @@ -203,7 +203,7 @@ export class Line extends Curve else if (param > length) { closestPt = this.EndPoint; - param = 1; + param = length; } else closestPt = sp.add(direction.multiplyScalar(param));