/// <summary> /// Edgeとposの最短距離を調べる。 /// </summary> /// <param name="margin">1.0</param> public double EdgeDistanceFromPos(Edge e, WWVectorD2 pos, double margin, PointProc.FindPointMode fpm) { var p1 = mPP.FindPointByIdx(e.fromPointIdx, fpm); var p2 = mPP.FindPointByIdx(e.toPointIdx, fpm); return(WWSegmentPointDistance.SegmentPointDistance(p1.xy, p2.xy, pos, margin)); }
public void SegmentPointDistanceTestY2() { var edgeP1 = new WWVectorD2(0, 1); var edgeP2 = new WWVectorD2(0, 0); var point = new WWVectorD2(1, 0.5); double d = WWSegmentPointDistance.SegmentPointDistance(edgeP1, edgeP2, point, 1e-8); Assert.IsTrue(IsApproxSame(d, 1)); }
public void SegmentPointDistanceTest2() { var edgeP1 = new WWVectorD2(1, 0); var edgeP2 = new WWVectorD2(1, 1); var point = new WWVectorD2(2, 2); double d = WWSegmentPointDistance.SegmentPointDistance(edgeP1, edgeP2, point, 1e-8); Assert.IsTrue(IsApproxSame(d, Math.Sqrt(2))); }