Example #1
0
        /// <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)));
        }