private void UpdateSubCircle(float convToAngle, SubCircle c) { c.AnglePosition += (float)tmr.Interval.TotalMilliseconds * convToAngle; if (c.AnglePosition > 2 * Math.PI) { c.AnglePosition -= (float)(2 * Math.PI); } foreach (Handle h in c.BigHandles) { h.AnglePosition -= (float)tmr.Interval.TotalMilliseconds * convToAngle; if (h.AnglePosition > 2 * Math.PI) { h.AnglePosition -= (float)(2 * Math.PI); } } foreach (Handle h in c.SmallHandles) { h.AnglePosition += (float)tmr.Interval.TotalMilliseconds * 2 * convToAngle; if (h.AnglePosition > 2 * Math.PI) { h.AnglePosition -= (float)(2 * Math.PI); } } }
private void UpdateSubCircles(double unit) { Rect subcirclebounds = bounds; subcirclebounds.Inflate(-75f * unit, -75f * unit); Rect outerSubcirclebounds = bounds; outerSubcirclebounds.Inflate(-75f * unit, -75f * unit); if (subcirclebounds != Rect.Empty) { for (int i = 0; i < subCircles.Count; i++) { SubCircleControl sc = subCircles[i]; SubCircle c = clock.SubCircles[i]; Rect r = subcirclebounds; r.Offset(-r.X - r.Width / 2f, -r.Y - r.Height / 2f); Rect outercircle = bounds; outercircle.Inflate(2f * unit, 2f * unit); Point offset = GetPointAtAngleFromCircle(bounds, outercircle, c.AnglePosition); r.Offset(offset.X, offset.Y); sc.Bounds = r; sc.Update(); } } if (outerSubcirclebounds != Rect.Empty) { for (int i = 0; i < outerSubCircles.Count; i++) { SubCircleControl sc = outerSubCircles[i]; SubCircle c = clock.OuterSubCircles[i]; Rect r = outerSubcirclebounds; r.Offset(-r.X - r.Width / 2f, -r.Y - r.Height / 2f); Rect outercircle = bounds; outercircle.Inflate(subcirclebounds.Width / 2, subcirclebounds.Height / 2); Point offset = GetPointAtAngleFromCircle(bounds, outercircle, c.AnglePosition); r.Offset(offset.X, offset.Y); sc.Bounds = r; sc.Update(); } } }
public SubCircleControl(SubCircle circle, MainClockControl parent, Canvas pnl, Rect bounds, BorderManager borderManager) { //this.pnl = pnl; this.bounds = bounds; this.borderManager = borderManager; this.circle = circle; this.parent = parent; InitializeMainControls(pnl); InitializeHandles(pnl); }