Ejemplo n.º 1
0
        void draw_horizon(GLCD lcd)
        {
            //pitch = 4;
            //roll = -38;
            //lcd.DrawVParallel(
            lcd.DrawHParallel(28, 40, 2, 5, 9);
            lcd.DrawHParallel(27, 40, 3, 10, 5);
            lcd.DrawHParallel(129, 40, 2, 5, 9);
            lcd.DrawHParallel(129, 40, 3, 10, 5);

            lcd.DrawString(72, 30, string.Format("{0:f0}", roll));
            lcd.DrawString(135, 58, string.Format("{0:f0}", pitch));

            // lcd.DrawLine(33, 58, 125, 58);

            int right = 92;
            int top   = 40;

            /*if (roll > 90)
             *  roll -= 180;
             * else*/if (roll == 90)
            {
                roll = 89.99f;
            }
            else if (roll == -90)
            {
                roll = -89.99f;
            }

            /*else if (roll < -90)
             *  roll += 180;
             */


            roll *= (float)(Math.PI / 180);

            int x1 = 0;
            int y1 = (int)(20 - 46 * Math.Tan(roll) - pitch / 2);

            if (y1 < 0)
            {
                y1 = 0;
                x1 = (int)(-(20 - pitch / 2) / Math.Tan(roll) + 46);
            }
            else if (y1 > 40)
            {
                y1 = 40;
                x1 = (int)((20 + pitch / 2) / Math.Tan(roll) + 46);
            }


            int x2 = 92;
            int y2 = (int)(20 - pitch / 2 + 46 * Math.Tan(roll));

            if (y2 < 0)
            {
                y2 = 0;
                x2 = (int)(-(20 - pitch / 2) / Math.Tan(roll) + 46);
            }
            else if (y2 > 40)
            {
                y2 = 40;
                x2 = (int)((20 + pitch / 2) / Math.Tan(roll) + 46);
            }
            lcd.FillRectange(33, 40, 96, 41, Color.Blue);
            lcd.DrawLine(x1 + 33, -y1 + 80, x2 + 33, -y2 + 80);
        }
Ejemplo n.º 2
0
Archivo: OSDPage.cs Proyecto: cuav/MAAT
        void draw_horizon(GLCD lcd)
        {
            //pitch = 4;
            //roll = -38;
            //lcd.DrawVParallel(
            lcd.DrawHParallel(28, 40, 2, 5, 9);
            lcd.DrawHParallel(27, 40, 3, 10, 5);
            lcd.DrawHParallel(129, 40, 2, 5, 9);
            lcd.DrawHParallel(129, 40, 3, 10, 5);

            lcd.DrawString(72, 30, string.Format("{0:f0}", roll));
            lcd.DrawString(135, 58, string.Format("{0:f0}", pitch));

            // lcd.DrawLine(33, 58, 125, 58);

            int right = 92;
            int top = 40;

            /*if (roll > 90)
                roll -= 180;
            else*/ if (roll == 90)
                roll = 89.99f;
            else if (roll == -90)
                roll = -89.99f;
            /*else if (roll < -90)
                roll += 180;
            */

            roll *= (float)(Math.PI / 180);

            int x1 = 0;
            int y1 = (int)(20 - 46 * Math.Tan(roll) - pitch / 2);

            if (y1 < 0)
            {
                y1 = 0;
                x1 = (int)(-(20 - pitch / 2) / Math.Tan(roll) + 46);
            }
            else if (y1 > 40)
            {
                y1 = 40;
                x1 = (int)((20 + pitch / 2) / Math.Tan(roll) + 46);
            }

            int x2 = 92;
            int y2 = (int)(20 - pitch / 2 + 46 * Math.Tan(roll));

            if (y2 < 0)
            {
                y2 = 0;
                x2 = (int)(-(20 - pitch / 2) / Math.Tan(roll) + 46);
            }
            else if (y2 > 40)
            {
                y2 = 40;
                x2 = (int)((20 + pitch / 2) / Math.Tan(roll) + 46);
            }
            lcd.FillRectange(33, 40, 96, 41, Color.Blue);
            lcd.DrawLine(x1 + 33, -y1 + 80, x2 + 33, -y2 + 80);
        }