Пример #1
0
 /// <summary>
 /// Calculate dostance from the specified poin to the rectange
 /// </summary>
 public double Distance(PointRn point) 
 { 
     double d = 0;
     for (int i = 0, n = point.coords.Length; i < n; i++) {             
         if (point.coords[i] < coords[i]) { 
             d += (coords[i] - point.coords[i]) * (coords[i] - point.coords[i]);
         } else if (point.coords[i] > coords[n + i]) { 
             d += (coords[n + i] - point.coords[i]) * (coords[n + i] - point.coords[i]);
         }
     }
     return Math.Sqrt(d);
 }    
Пример #2
0
        /// <summary>
        /// Construct rectangle with specified coordinates
        /// <param name="min">rectangle vertex with minimal coordinates</param>
        /// <param name="max">rectangle vertex with maximal coordinates</param>
        /// </summary>
        public RectangleRn(PointRn min, PointRn max)
        {
            int n = min.coords.Length;

            Debug.Assert(min.coords.Length == max.coords.Length);
            coords = new double[n * 2];
            for (int i = 0; i < n; i++)
            {
                Debug.Assert(min.coords[i] <= max.coords[i]);
                coords[i]     = min.coords[i];
                coords[n + i] = max.coords[i];
            }
        }
Пример #3
0
        /// <summary>
        /// Calculate dostance from the specified poin to the rectange
        /// </summary>
        public double Distance(PointRn point)
        {
            double d = 0;

            for (int i = 0, n = point.coords.Length; i < n; i++)
            {
                if (point.coords[i] < coords[i])
                {
                    d += (coords[i] - point.coords[i]) * (coords[i] - point.coords[i]);
                }
                else if (point.coords[i] > coords[n + i])
                {
                    d += (coords[n + i] - point.coords[i]) * (coords[n + i] - point.coords[i]);
                }
            }
            return(Math.Sqrt(d));
        }
Пример #4
0
 /// <summary>
 /// Construct rectangle with specified coordinates
 /// <param name="min">rectangle vertex with minimal coordinates</param>
 /// <param name="max">rectangle vertex with maximal coordinates</param>
 /// </summary>
 public RectangleRn(PointRn min, PointRn max) 
 { 
     int n = min.coords.Length;
     Debug.Assert(min.coords.Length == max.coords.Length);
     coords = new double[n*2];
     for (int i = 0; i < n; i++) {             
         Debug.Assert(min.coords[i] <= max.coords[i]);
         coords[i] = min.coords[i];
         coords[n+i] = max.coords[i];
     }
 }