Ejemplo n.º 1
0
 public void AzimuthOfRadix()
 {
     Aver.AreEqual(3, CartesianUtils.AzimuthOfRadix(0, 0, 0, -100, 4));
     Aver.AreEqual(0, CartesianUtils.AzimuthOfRadix(0, 0, 100, -100, 4));
     Aver.AreEqual(1, CartesianUtils.AzimuthOfRadix(0, 0, 100, 100, 4));
     Aver.AreEqual(2, CartesianUtils.AzimuthOfRadix(0, 0, -100, 100, 4));
 }
Ejemplo n.º 2
0
 public void WrapAngle()
 {
     Aver.AreEqual(314D, Math.Floor(CartesianUtils.WrapAngle(0D, Math.PI * 3D) * 100D));
     Aver.AreEqual(314D, Math.Floor(CartesianUtils.WrapAngle(Math.PI, Math.PI * 2D) * 100D));
     Aver.AreEqual(157D, Math.Floor(CartesianUtils.WrapAngle(Math.PI, -Math.PI / 2D) * 100D));
     Aver.AreEqual(314D + 157D, Math.Floor(CartesianUtils.WrapAngle(Math.PI, Math.PI / 2D) * 100D));
 }
Ejemplo n.º 3
0
 public void PerimeterViolationArea()
 {
     Aver.AreEqual(0, CartesianUtils.CalculatePerimeterViolationArea(new Rectangle(0, 0, 100, 100), new Rectangle(0, 0, 100, 100)));
     Aver.AreEqual(100, CartesianUtils.CalculatePerimeterViolationArea(new Rectangle(0, 0, 100, 100), new Rectangle(1, 0, 100, 100)));
     Aver.AreEqual(100, CartesianUtils.CalculatePerimeterViolationArea(new Rectangle(0, 0, 100, 100), new Rectangle(-1, 0, 100, 100)));
     Aver.AreEqual(20 * 100, CartesianUtils.CalculatePerimeterViolationArea(new Rectangle(0, 0, 100, 100), new Rectangle(-10, -10, 100, 100)));
 }
Ejemplo n.º 4
0
        public void FindRayFromRectangleCenterSideIntersection4()
        {
            var ray = CartesianUtils.FindRayFromRectangleCenterSideIntersection(new Rectangle(-50, -50, 100, 100), Math.PI + Math.PI / 2);

            Aver.AreEqual(0, ray.X);
            Aver.AreEqual(-50, ray.Y);
        }
Ejemplo n.º 5
0
        public void FindRayFromRectangleCenterSideIntersection1()
        {
            var ray = CartesianUtils.FindRayFromRectangleCenterSideIntersection(new Rectangle(-50, -50, 100, 100), 0D);

            Assert.AreEqual(50, ray.X);
            Assert.AreEqual(0, ray.Y);
        }
Ejemplo n.º 6
0
 public void DistancePoints()
 {
     Aver.AreEqual(100, CartesianUtils.Distance(new Point(0, 0), new Point(100, 0)));
     Aver.AreEqual(100, CartesianUtils.Distance(new Point(0, 0), new Point(0, 100)));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(new PointF(0, 0), new PointF(100, 100))));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(new PointF(100, 0), new PointF(0, 100))));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(new PointF(100, 100), new PointF(0, 0))));
 }
Ejemplo n.º 7
0
 public void Distance()
 {
     Aver.AreEqual(100, CartesianUtils.Distance(0, 0, 100, 0));
     Aver.AreEqual(100, CartesianUtils.Distance(0, 0, 0, 100));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(0F, 0F, 100F, 100F)));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(100F, 0F, 0F, 100F)));
     Aver.AreEqual(141421D, Math.Floor(1000F * CartesianUtils.Distance(100F, 100F, 0F, 0F)));
 }
Ejemplo n.º 8
0
        public void MapDirectionToAngle()
        {
            Aver.AreEqual(157D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.North) * 100D));
            Aver.AreEqual(314D + 157D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.South) * 100D));
            Aver.AreEqual(0D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.East) * 100D));
            Aver.AreEqual(314D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.West) * 100D));

            Aver.AreEqual(157D - 79D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthEast) * 100D));
            Aver.AreEqual(157D + 78D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthWest) * 100D));

            Aver.AreEqual(314D + 157D + 78D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthEast) * 100D));
            Aver.AreEqual(314D + 157D - 79D, Math.Floor(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthWest) * 100D));
        }
Ejemplo n.º 9
0
        public void AngleToMapDirection()
        {
            Aver.IsTrue(Azos.Geometry.MapDirection.North ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.North)));
            Aver.IsTrue(Azos.Geometry.MapDirection.South ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.South)));
            Aver.IsTrue(Azos.Geometry.MapDirection.East ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.East)));
            Aver.IsTrue(Azos.Geometry.MapDirection.West ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.West)));

            Aver.IsTrue(Azos.Geometry.MapDirection.NorthEast ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthEast)));
            Aver.IsTrue(Azos.Geometry.MapDirection.NorthWest ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.NorthWest)));

            Aver.IsTrue(Azos.Geometry.MapDirection.SouthEast ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthEast)));
            Aver.IsTrue(Azos.Geometry.MapDirection.SouthWest ==
                        CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(Azos.Geometry.MapDirection.SouthWest)));
        }
Ejemplo n.º 10
0
        public void AngleToMapDirection()
        {
            Assert.AreEqual(NFX.Geometry.MapDirection.North,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.North)));
            Assert.AreEqual(NFX.Geometry.MapDirection.South,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.South)));
            Assert.AreEqual(NFX.Geometry.MapDirection.East,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.East)));
            Assert.AreEqual(NFX.Geometry.MapDirection.West,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.West)));

            Assert.AreEqual(NFX.Geometry.MapDirection.NorthEast,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.NorthEast)));
            Assert.AreEqual(NFX.Geometry.MapDirection.NorthWest,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.NorthWest)));

            Assert.AreEqual(NFX.Geometry.MapDirection.SouthEast,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.SouthEast)));
            Assert.AreEqual(NFX.Geometry.MapDirection.SouthWest,
                            CartesianUtils.AngleToMapDirection(CartesianUtils.MapDirectionToAngle(NFX.Geometry.MapDirection.SouthWest)));
        }
Ejemplo n.º 11
0
        private void findPlacementCoordinates(out Rectangle body, out Point target)
        {
            Point[] anchorPoints = calcAnchorPoints(1, 1);

            Rectangle brect = inferBodyRectFromText(new Point(0, 0), Text, Font);

            Rectangle[] bodyRects = calcBodyRects(anchorPoints, brect.Size);

            body   = bodyRects[(int)m_PreferredPlacement];
            target = anchorPoints[(int)m_PreferredPlacement];


            int minIdx  = 0;
            int minArea = int.MaxValue;
            int area;

            for (int i = 0; i < 8; i++)
            {
                Screen screen = Screen.FromRectangle(bodyRects[i]);

                area = CartesianUtils.CalculatePerimeterViolationArea(screen.Bounds, bodyRects[i]);

                if (((MapDirection)i == m_PreferredPlacement) && (area == 0))
                {
                    body   = bodyRects[i];
                    target = anchorPoints[i];
                    return;
                }

                if (area < minArea)
                {
                    minArea = area;
                    minIdx  = i;
                }
            }//for

            body   = bodyRects[minIdx];
            target = anchorPoints[minIdx];
        }
Ejemplo n.º 12
0
 public void AzimuthDeg()
 {
     Aver.AreEqual(90D, Math.Floor(CartesianUtils.AzimuthDeg(0, 0, 0, 100)));
     Aver.AreEqual(0D, Math.Floor(CartesianUtils.AzimuthDeg(0, 0, 100, 0)));
 }
Ejemplo n.º 13
0
 public void AzimuthRad()
 {
     Aver.AreEqual(157D, Math.Floor(CartesianUtils.AzimuthRad(0, 0, 0, 100) * 100));
     Aver.AreEqual(0D, Math.Floor(CartesianUtils.AzimuthRad(0, 0, 100, 0) * 100));
 }