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"); }
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"); }
public void CopyConstruct() { TCircle test = new TCircle(15); TCircle test2 = new TCircle(test); Assert.AreEqual(test.Radius, test2.Radius, "Copy constructor don't work"); }
/// <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; }
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"); }
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)); }
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)); }
public void CopyConstruct() { TCircle circle = new TCircle(15); TCircle circle2 = new TCircle(circle); Assert.AreEqual(circle.Radius, circle2.Radius, "Copy constructor don't work"); }
public static TCircle FormatToReal(TCircle circle) { TCircle _new = new TCircle(); _new.center = FormatToReal(circle.center); _new.radius = FormatToReal(circle.radius); return(_new); }
/// <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); }
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"); }
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"); }
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"); }
// вхождение точки в круг public static bool PointInCircle(TPoint point, TCircle circle) { return(PointInCircle(point, circle, MaxError)); }
// вхождение точки в круг 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))); }
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; } } }
private void D_C(TCircle c, Color color) { GizmosPro.DrawCircle(c, color); }
public void CreateEmpty() { TCircle test = new TCircle(); Assert.AreEqual(5, test.Radius, "Empty constructor don't work"); }