修复:曲线在右视图中求交错误

pull/1911/MERGE
ChenX 2 years ago
parent 3f391f9002
commit 71c148ffd5

@ -0,0 +1,15 @@
import { Curve } from "../../src/DatabaseServices/Entity/Curve";
import { IntersectOption } from "../../src/GraphicsSystem/IntersectWith";
import { LoadEntityFromFileData } from "../Utils/LoadEntity.util";
test('错误的使用2维点判断导致的交点丢失', () =>
{
let d =
{ "file": [2, "Polyline", 8, 2, 107, false, 1, 7, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 684.2249657064676, 1564.334705075446, -91.90672153635137, 1], 0, 0, true, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 684.2249657064676, 1564.334705075446, -91.90672153635137, 1], 0, 2, 4, [0, 0], 0, [600, 0], 0, [600, 2000], 0, [0, 2000], 0, true, "Circle", 8, 2, 108, false, 1, 7, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 684.2249657064676, 2164.334705075446, 908.0932784636486, 1], 0, 0, true, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 684.2249657064472, 518.1069958847737, 0, 1], 0, 1, 308.64197530864226], "basePt": { "x": 684.2249657064676, "y": 1564.334705075446, "z": -91.90672153635137 }, "ucs": [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1] };
let cus = LoadEntityFromFileData(d) as Curve[];
let ipts = cus[0].IntersectWith2(cus[1], IntersectOption.ExtendNone);
expect(ipts.length).toBe(2);
});

@ -6,7 +6,7 @@ import { Curve } from '../DatabaseServices/Entity/Curve';
import { Ellipse } from '../DatabaseServices/Entity/Ellipse';
import { Line } from '../DatabaseServices/Entity/Line';
import { Polyline } from '../DatabaseServices/Entity/Polyline';
import { ComparePointFnGenerate, equaln, equalv2, equalv3 } from '../Geometry/GeUtils';
import { ComparePointFnGenerate, equaln, equalv3 } from '../Geometry/GeUtils';
/**
* .
@ -459,7 +459,7 @@ export function IntersectPolylineAndCurve(pl: Polyline, cu: Curve, extType: Inte
let fn = ComparePointFnGenerate("xyz", tolerance);
intRes.sort((p1, p2) => fn(p1.pt, p2.pt));
arrayRemoveDuplicateBySort(intRes, (p1, p2) => equalv2(p1.pt, p2.pt, tolerance));
arrayRemoveDuplicateBySort(intRes, (p1, p2) => equalv3(p1.pt, p2.pt, tolerance));
return intRes;
}

Loading…
Cancel
Save