示例#1
0
 private float GetEllipseLength(float degree, float itemCount)
 {
     if (itemCount > 4)
     {
         itemCount += itemCount % 2;
     }
     return(MathfExtension.EvaluateEllipse(degree, 60 + 10 * Mathf.Max(6, itemCount), 50 + 12 * Mathf.Max(3, itemCount)));
 }
示例#2
0
        public void ShowSubMenuAt(Vector2 position, MarkingMenuItem[] items, float from = 0, float to = 360)
        {
            int   itemCount   = items.Length;
            float degreeDelta = (to - from) / (itemCount - 1 == 0 ? 1 : itemCount - 1);

            for (int i = 0; i < itemCount; ++i)
            {
                float degree = from + degreeDelta * i;
                float length = MathfExtension.EvaluateEllipse(degree, 180, 100);
                items[i].Show();
                items[i].Position = position + new Vector2(length * Mathf.Cos(degree * Mathf.Deg2Rad), length * Mathf.Sin(degree * Mathf.Deg2Rad));
                items[i].Degree   = degree;
            }
            shownItems.Push(items);
        }