Esempio n. 1
0
        public void SuareAndLength()
        {
            TCircle test = new TCircle(15);

            Assert.AreEqual(Math.PI * Math.Pow(15, 2), test.GetSquare(), "Square don't work");
            Assert.AreEqual(2 * Math.PI * 15, test.GetLength(), "Square don't work");
        }
Esempio n. 2
0
        public void Sector()
        {
            TCircle circle = new TCircle(7);
            double  angle  = 45;

            Assert.AreEqual(Math.PI * Math.Pow(circle.Radius, 2) * (angle / 360), circle.GetSector(45), "GetSector don't work");
        }
Esempio n. 3
0
        public void CopyConstruct()
        {
            TCircle test  = new TCircle(15);
            TCircle test2 = new TCircle(test);

            Assert.AreEqual(test.Radius, test2.Radius, "Copy constructor don't work");
        }
Esempio n. 4
0
    /// <summary>
    /// 点到直线距离以及投影点
    /// </summary>
    /// <param name="point"></param>
    /// <param name="lineStart"></param>
    /// <param name="lineEnd"></param>
    /// <param name="subPoint"></param>
    /// <param name="dist"></param>

    public static void GetPointToCircleNearestPointAndDist(Vector2 point, TCircle circle, out Vector2 outPoint, out float dist)
    {
        Vector2 delta = point - circle.center;

        dist     = delta.magnitude - circle.radius;
        outPoint = circle.center + Mathf.Min(circle.radius, delta.magnitude) * delta.normalized;
    }
Esempio n. 5
0
        public void SquareAndCircuit()
        {
            TCircle circle = new TCircle(7);

            Assert.AreEqual(Math.PI * Math.Pow(7, 2), circle.GetSquare(), "GetSquare don't work");
            Assert.AreEqual(2 * Math.PI * 7, circle.GetCircuit(), "GetCircuit don't work");
        }
Esempio n. 6
0
        public void DoubleConstruct()
        {
            TCircle test = new TCircle(15.26);

            Assert.AreEqual(15.26, test.Radius, "Double constructor don't work");
            Assert.ThrowsException <System.ArgumentOutOfRangeException>(() => new TCircle(-15));
        }
Esempio n. 7
0
        public void DoubleConstruct()
        {
            TCircle circle = new TCircle(7.49);

            Assert.AreEqual(7.49, circle.Radius, "Double constructor don't work");
            Assert.ThrowsException <System.ArgumentOutOfRangeException>(() => new TCircle(-7));
        }
Esempio n. 8
0
        public void CopyConstruct()
        {
            TCircle circle  = new TCircle(15);
            TCircle circle2 = new TCircle(circle);

            Assert.AreEqual(circle.Radius, circle2.Radius, "Copy constructor don't work");
        }
Esempio n. 9
0
    public static TCircle FormatToReal(TCircle circle)
    {
        TCircle _new = new TCircle();

        _new.center = FormatToReal(circle.center);
        _new.radius = FormatToReal(circle.radius);
        return(_new);
    }
Esempio n. 10
0
    /// <summary>
    /// 圆内随机点(面积均匀分布随机)
    /// </summary>
    /// <param name="circle"></param>
    /// <returns></returns>
    public static Vector2 RandomCirclePoint(TCircle circle)
    {
        float theta  = UnityEngine.Random.value * 2 * Mathf.PI;
        float radius = Mathf.Sqrt(UnityEngine.Random.value) * circle.radius;
        float x      = radius * Mathf.Sin(theta);
        float y      = radius * Mathf.Cos(theta);

        return(new Vector2(x, y) + circle.center);
    }
Esempio n. 11
0
        public void Comparison()
        {
            TCircle circle  = new TCircle(7);
            TCircle circle2 = new TCircle(9);

            Assert.AreEqual(true, circle < circle2, "operator '<' don't work");
            Assert.AreEqual(false, circle > circle2, "operator '>' don't work");
            Assert.AreEqual(false, circle == circle2, "operator '==' don't work");
            Assert.AreEqual(true, circle != circle2, "operator '!=' don't work");
        }
Esempio n. 12
0
        public void Equals()
        {
            TCircle test  = new TCircle(14);
            TCircle test1 = new TCircle(14);
            TCircle test2 = new TCircle(15);

            Assert.AreEqual(false, test1.Equals(test2), "Equals don't work");
            Assert.AreEqual(true, test1.Equals(test), "Equals don't work");
            Assert.AreEqual(true, test1.Equals(test1), "Equals don't work");
        }
Esempio n. 13
0
        public void Comparison()
        {
            TCircle test  = new TCircle(14);
            TCircle test1 = new TCircle(18);

            Assert.AreEqual(true, test < test1, "< don't work");
            Assert.AreEqual(false, test > test1, "> don't work");
            Assert.AreEqual(false, test == test1, "== don't work");
            Assert.AreEqual(true, test != test1, "!= don't work");
        }
Esempio n. 14
0
 // вхождение точки в круг
 public static bool PointInCircle(TPoint point, TCircle circle)
 {
     return(PointInCircle(point, circle, MaxError));
 }
Esempio n. 15
0
 // вхождение точки в круг
 public static bool PointInCircle(TPoint point, TCircle circle, double EPS)
 {
     return((bool)(((sqr(point.X - circle.Center.X) + sqr(point.Y - circle.Center.Y)) / sqr(circle.Radius)) <= (1 + EPS)));
 }
Esempio n. 16
0
        void UpdateAim()
        {
            var targetPoint = Vector2.zero;
            var minDist     = float.MaxValue;
            var center      = new Vector2(Screen.width, Screen.height) * 0.5f;

            foreach (var p in playerMgr.models)
            {
                if (!p.isCached)
                {
                    continue;
                }
                if (!p.root)
                {
                    continue;
                }
                if (!p.isAlive)
                {
                    continue;
                }
                if (!p.root.gameObject.activeInHierarchy)
                {
                    continue;
                }
                if (!Settings.isEspFriendly && p.isFriend)
                {
                    continue;
                }

                Vector2 point;
                if (Settings.aimPos == AimPos.HEAD)
                {
                    var p1 = p.u_head.GetUIPos();
                    var p2 = p.d_head.GetUIPos();
                    if (p1.z <= 0 || p2.z <= 0)
                    {
                        continue;
                    }
                    point = (p1 + p2) * 0.5f;
                }
                else if (Settings.aimPos == AimPos.CHEST)
                {
                    var p3 = p.clavicle.GetUIPos();
                    if (p3.z <= 0)
                    {
                        continue;
                    }
                    point = p3;
                }
                else
                {
                    continue;
                }

                var dist = Vector2.Distance(point, center);
                if (dist < minDist)
                {
                    minDist     = dist;
                    targetPoint = point;
                }
            }


            var range = Screen.height * 0.05f * Settings.aimRange;

            if (Settings.isAimCircle)
            {
                var c = new TCircle(center, range);
                GizmosPro.DrawCircle(c, Color.gray);
            }

            if (minDist <= range)
            {
                if (Settings.isAimLine)
                {
                    var l = new TLine(targetPoint, center);
                    GizmosPro.DrawLine(l.from, l.to, Color.gray);
                }

                var delta = targetPoint - center;
                dragDelay = Mathf.Max(0, dragDelay - Time.deltaTime);
                fireKeep  = Mathf.Max(0, fireKeep - Time.deltaTime);
                var isMove = false;

                if (Input.GetMouseButton(0))
                {
                    fireKeep = 0.02f;
                }

                if (Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0)
                {
                    dragDelay = 0.02f;
                }

                if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
                {
                    isMove = true;
                }

                if (Input.GetKey(KeyCode.LeftShift) || fireKeep > 0 ||
                    !isMove && dragDelay <= 0)
                {
                    FakeUnityInput.forceAxis += delta * 0.2f;
                }
            }
        }
Esempio n. 17
0
 private void D_C(TCircle c, Color color)
 {
     GizmosPro.DrawCircle(c, color);
 }
Esempio n. 18
0
        public void CreateEmpty()
        {
            TCircle test = new TCircle();

            Assert.AreEqual(5, test.Radius, "Empty constructor don't work");
        }