public MainWindow() { _metonicYearModel = new MetonicYearModel(); _moonModel = new MoonModel(); _nodesModel = new NodesModel(); _sunModel = new SunModel(_nodesModel); _sunCountModel = new SunCountModel(_sunModel); _monthModel = new MonthModel(_metonicYearModel, _sunModel, _moonModel); _dayModel = new DayModel(_monthModel, _metonicYearModel); InitializeComponent(); SetYearZero(); CreateRenderWindow(); var refreshRate = new TimeSpan(0, 0, 0, 0, 1000 / 60); this._timer = new DispatcherTimer { Interval = refreshRate }; this._timer.Tick += Timer_Tick; this._timer.Start(); _dispatcherTimer = new DispatcherTimer(); _dispatcherTimer.Tick += new EventHandler(DispatcherTimer_Tick); _dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 500); }
public CalendarControl() { _metonicYearModel = new MetonicYearModel(); _moonModel = new MoonModel(); _nodesModel = new NodesModel(); _sunModel = new SunModel(_nodesModel); _sunCountModel = new SunCountModel(_sunModel); _monthModel = new MonthModel(_metonicYearModel, _sunModel, _moonModel); _dayModel = new DayModel(_monthModel, _metonicYearModel); }
private static void DrawSunCountRing(RenderWindow app, ISunCountModel sunCount) { var sunCountRing = ElementDrawer.CreateRing(app, 130, new Color(0, 0, 0), true); var sunCountPegPoints = ElementDrawer.CreatePegPoints(app, sunCountRing, 13, (Math.PI * 2) / 13); foreach (var p in sunCountPegPoints) { DrawMonthLine(app, p); } Array.Reverse(sunCountPegPoints); sunCountPegPoints[sunCount.GetPosition() - 1].FillColor = new Color(255, 0, 0); foreach (var p in sunCountPegPoints) { app.Draw(p); } }
private static void DrawSunCountRing(SKImageInfo info, SKCanvas canvas, ISunCountModel sunCount) { var sunCountRing = ElementDrawer.CreateRing(info, canvas, Utility.GetWidthValueFromPercentage(info, (float)22.5), new Color(0, 0, 0), true); var sunCountPegPoints = ElementDrawer.CreatePegPoints(info, canvas, sunCountRing, 13); foreach (var p in sunCountPegPoints) { DrawMonthLine(info, canvas, p); } sunCountPegPoints[sunCount.GetPosition() - 1].FillColor = new Color(255, 0, 0); foreach (var p in sunCountPegPoints) { canvas.DrawCircle(p.x, p.y, p.Radius, GetPointPainter(p)); } }
public static void DrawCalendar(RenderWindow app, INodesModel nodes, ISunModel sun, IMoonModel moon, IMetonicYearModel year, IMonthModel month, IDayModel day, ISunCountModel sunCount) { ElementDrawer.CreateRing(app, 270, new Color(0, 0, 0), true); DrawNodeRing(app, nodes); DrawSunRing(app, sun); DrawMoonRing(app, moon); ElementDrawer.CreateRing(app, 210, new Color(0, 0, 0), true); DrawDayRing(app, day, month); DrawSunCountRing(app, sunCount); DrawMonthRing(app, month); DrawYearRing(app, year); }