private static Vector2[] setupGradient(int gradSize) { Vector2[] gradients = new Vector2[gradSize]; for (int i = 0; i < gradients.Length; ++i) { Vector2 v = new Vector2(JryMath.Sin(0.785398163f * i) , JryMath.Cos(0.785398163f * i)); gradients[i] = v; } return(gradients); }
public float Interpolate(float a, float b, float progress) { if (progress < 0) { return(a); } if (progress > 1) { return(b); } float tm = (1 - JryMath.Cos(progress * JryMath.Pi)) / 2; return(a * (1 - tm) + b * tm); }
public void RotateSelected(float factor, Vector2 center) { if (!HasSelectedPoints) { return; } for (int i = 0; i < _points.Count; i++) { var pt = _points[i]; var index = _selectedPoints.IndexOf(pt); if (index != -1) { pt = pt - center; var p = new Vector2(JryMath.Cos(factor) * pt.X - JryMath.Sin(factor) * pt.Y, JryMath.Sin(factor) * pt.X + JryMath.Cos(factor) * pt.Y); _points[i] = p + center; _selectedPoints[index] = _points[i]; } } recalcEdges(); }