Esempio n. 1
0
        private static void DrawNodeRing(RenderWindow app, INodesModel nodes)
        {
            var nodeRing      = ElementDrawer.CreateRing(app, 260, new Color(255, 255, 255), true);
            var nodePegPoints = ElementDrawer.CreatePegPoints(app, nodeRing, 56, (Math.PI * 2) / 56);

            Array.Reverse(nodePegPoints);
            nodePegPoints[nodes.GetNode1Position() - 1].FillColor = new Color(255, 0, 0);
            nodePegPoints[nodes.GetNode2Position() - 1].FillColor = new Color(255, 0, 0);
            foreach (var p in nodePegPoints)
            {
                app.Draw(p);
            }
        }
        private static void DrawNodeRing(SKImageInfo info, SKCanvas canvas, INodesModel nodes)
        {
            var nodeRing = ElementDrawer.CreateRing(info, canvas, Utility.GetWidthValueFromPercentage(info, (float)39.4), new Color(255, 255, 255, 0), true);

            nodeRing.FillColor = new Color(255, 255, 0, 0);
            var nodePegPoints = ElementDrawer.CreatePegPoints(info, canvas, nodeRing, 56);

            nodePegPoints[nodes.GetNode1Position() - 1].FillColor = new Color(255, 0, 0);
            nodePegPoints[nodes.GetNode2Position() - 1].FillColor = new Color(255, 0, 0);
            foreach (var p in nodePegPoints)
            {
                canvas.DrawCircle(p.x, p.y, p.Radius, GetPointPainter(p));
            }
        }
        public bool CheckLunarEclipse()
        {
            bool isEclipse = false;

            bool node1SunAligned = false;

            if (_nodesModel.GetNode1Position() == _sunModel.Get() || _nodesModel.GetNode1Position() == _sunModel.Get() - 1 || _nodesModel.GetNode1Position() == _sunModel.Get() + 1)
            {
                node1SunAligned = true;
            }

            bool node1MoonAligned = false;

            if (_nodesModel.GetNode1Position() == _moonModel.Get() || _nodesModel.GetNode1Position() == _moonModel.Get() - 1 || _nodesModel.GetNode1Position() == _moonModel.Get() + 1)
            {
                node1MoonAligned = true;
            }

            bool node2SunAligned = false;

            if (_nodesModel.GetNode2Position() == _sunModel.Get() || _nodesModel.GetNode2Position() == _sunModel.Get() - 1 || _nodesModel.GetNode2Position() == _sunModel.Get() + 1)
            {
                node2SunAligned = true;
            }

            bool node2MoonAligned = false;

            if (_nodesModel.GetNode2Position() == _moonModel.Get() || _nodesModel.GetNode2Position() == _moonModel.Get() - 1 || _nodesModel.GetNode2Position() == _moonModel.Get() + 1)
            {
                node2MoonAligned = true;
            }

            if ((node1SunAligned == true && node2MoonAligned == true) || (node2SunAligned == true && node1MoonAligned == true))
            {
                isEclipse = true;
            }

            return(isEclipse);
        }