示例#1
0
文件: Tank.cs 项目: efgefg0001/Tanks
 private Tuple<PointF, PointF> GetPointNormal(RectangleF rectA, RectangleF rectB)
 {
     var normal = new PointF();
     var point = new PointF();
     if (Math.Abs(rectA.Left - rectB.Left) < MathUtils.PRECISION)
     {
         normal = rectA.LeftNormal();
         point = new PointF(rectA.Left, 0);
     }
     else if (Math.Abs(rectA.Top - rectB.Top) < MathUtils.PRECISION)
     {
         normal = rectA.TopNormal();
         point = new PointF(0, rectA.Top);
     }
     else if (Math.Abs(rectA.Right - rectB.Right) < MathUtils.PRECISION)
     {
         normal = rectA.RightNormal();
         point = new PointF(rectA.Right, 0);
     }
     else if (Math.Abs(rectA.Bottom - rectB.Bottom) < MathUtils.PRECISION)
     {
         normal = rectA.BottomNormal();
         point = new PointF(0, rectA.Bottom);
     }
     return new Tuple<PointF,PointF>(point, normal);
 }
示例#2
0
文件: Tank.cs 项目: efgefg0001/Tanks
 private PointF GetNormal(RectangleF rectA, RectangleF rectB)
 {
     var normal = new PointF();
     //            var point = new PointF();
     if (Math.Abs(rectA.Left - rectB.Left) < MathUtils.PRECISION &&
         rectA.Height >= rectA.Width)
         normal = rectA.LeftNormal();
     else if (Math.Abs(rectA.Top - rectB.Top) < MathUtils.PRECISION &&
         rectA.Width >= rectA.Height)
         normal = rectA.TopNormal();
     else if (Math.Abs(rectA.Right - rectB.Right) < MathUtils.PRECISION &&
         rectA.Height >= rectA.Width)
         normal = rectA.RightNormal();
     else if (Math.Abs(rectA.Bottom - rectB.Bottom) < MathUtils.PRECISION &&
         rectA.Width >= rectA.Height)
         normal = rectA.BottomNormal();
     else
         throw new Exception("Normal Error");
     return normal;
 }