import { Vector2, Vector3 } from 'three'; import { IsPointInPolyLine } from '../../src/DatabaseServices/PointInPolyline'; import { Polyline } from '../../src/DatabaseServices/Polyline'; test('点在多段线内', () => { let pl = new Polyline([ { pt: new Vector2(0, 0), bul: 0 }, { pt: new Vector2(10, 0), bul: 0 }, { pt: new Vector2(10, 10), bul: 0 }, { pt: new Vector2(8, 10), bul: 0 }, { pt: new Vector2(8, 5), bul: 0 }, { pt: new Vector2(4, 5), bul: 0 }, { pt: new Vector2(4, 10), bul: 0 }, { pt: new Vector2(0, 10), bul: 0 }, ]); pl.CloseMark = true; let bIn = IsPointInPolyLine(pl, new Vector3(8, 3));//? expect(bIn).toBeTruthy(); }); describe("", () => { test('退化', () => { let pl = new Polyline( [ { pt: new Vector2(0, 0), bul: 0 }, { pt: new Vector2(10, 0), bul: 0 }, { pt: new Vector2(5, 5), bul: 0 }, ]) pl.CloseMark = true; expect(IsPointInPolyLine(pl, new Vector3(5, 2))).toBeTruthy(); }); test('退化2', () => { //右边中间 < let pl = new Polyline( [ { pt: new Vector2(0, 0), bul: 0 }, { pt: new Vector2(10, 0), bul: 0 }, { pt: new Vector2(5, 5), bul: 0 }, { pt: new Vector2(10, 10), bul: 0 }, { pt: new Vector2(0, 10), bul: 0 }, ]) pl.CloseMark = true; expect(IsPointInPolyLine(pl, new Vector3(5, 2))).toBeTruthy(); }); test('左边中间', () => { //左边中间 let pl = new Polyline([ { pt: new Vector2(0, 0), bul: 0 }, { pt: new Vector2(10, 0), bul: 0 }, { pt: new Vector2(10, 10), bul: 0 }, { pt: new Vector2(0, 10), bul: 0 }, { pt: new Vector2(0, 8), bul: 0 }, { pt: new Vector2(5, 5), bul: 0 }] ) pl.CloseMark = true; expect(IsPointInPolyLine(pl, new Vector3(5, 2))).toBeTruthy(); }); })