예제 #1
0
파일: Angle.cs 프로젝트: sharespy/Astroder
        public virtual string ToString(string format, IFormatProvider formatProvider)
        {
            if (format == null)
            {
                return(ToString());
            }

            string decimalFormat = "F0";
            string formatType    = format;

            if (char.IsNumber(format, format.Length - 1))
            {
                decimalFormat = "F" + format.Substring(format.Length - 1, 1);
                formatType    = format.Substring(0, format.Length - 1).ToUpper();
            }

            switch (formatType)
            {
            case "D":
                return(String.Format(formatProvider, "<{0}º>",
                                     Degrees.ToString(decimalFormat, formatProvider)));

            //case "HM":
            //    return String.Format(formatProvider, "<{0}:{1}>",
            //        Hour, MinutesRemained.ToString(decimalFormat, formatProvider));
            //case "HMS":
            //    return String.Format(formatProvider, "<{0}:{1}:{2}>",
            //        Hour, Minute, Seconds.ToString(decimalFormat, formatProvider));
            //case "ASTRO":
            //    return String.Format(formatProvider, "{0}{1}{2}",
            //        DecimalMinutes.AstroStringOf(decimalFormat, formatProvider));
            default:
                return(ToString(DefaultFormat, System.Globalization.CultureInfo.InvariantCulture));
            }
        }
예제 #2
0
        /// <summary>
        /// Stringify, with format
        /// </summary>
        /// <param name="fmt"></param>
        /// <returns></returns>
        public string ToString(GeoAngleFormat fmt, GeoAngleFormatOptions options = GeoAngleFormatOptions.ShowUnits)
        {
            string rc = null;

            switch (fmt)
            {
            default:
                throw new ArgumentException("Unsupported format: " + fmt);

            case GeoAngleFormat.DDD:
                if (options == GeoAngleFormatOptions.Compact)
                {
                    rc = Degrees.ToString("0.0000000");
                }
                else
                {
                    rc = Degrees.ToString("0.0000000") + Strings.degrees;
                }
                break;

            case GeoAngleFormat.DMM: {
                DMMComponents dmmComponents = new DMMComponents(Degrees);
                rc = ToStringDMM(dmmComponents, options);
            }
            break;

            case GeoAngleFormat.DMS: {
                DMSComponents dmsComponents = new DMSComponents(Degrees);
                rc = ToStringDMS(dmsComponents, options);
            }
            break;
            }
            return(rc);
        }
예제 #3
0
        public string ToString(string format, IFormatProvider formatProvider)
        {
            //Lyyymmssdddd
            int indexOfL = format.IndexOf("L", 0, format.Length);


            string yToReplace = GetStringToReplace(format, "d");
            string mToReplace = GetStringToReplace(format, "m");
            string sToReplace = GetStringToReplace(format, "s");


            string output = format.Replace("L", Str);

            if (yToReplace != string.Empty)
            {
                output = output.Replace(yToReplace, Degrees.ToString());
            }
            if (mToReplace != string.Empty)
            {
                output = output.Replace(mToReplace, Minutes.ToString());
            }
            if (sToReplace != string.Empty)
            {
                output = output.Replace(sToReplace, Seconds.ToString());
            }


            return(output);
            //throw new NotImplementedException();
        }
예제 #4
0
        public void TockaProjekcija_SmjerniKut_koordinatene_osi_true()
        {
            TockaProjekcija stajaliste = new TockaProjekcija(5, 5);

            TockaProjekcija vizuraYosPozitivna = new TockaProjekcija(6, 5);
            TockaProjekcija vizuraYosNegativna = new TockaProjekcija(4, 5);
            TockaProjekcija vizuraXosPozitivna = new TockaProjekcija(5, 6);
            TockaProjekcija vizuraXosNegativna = new TockaProjekcija(5, 4);

            //Y pozitivna
            Degrees Kv1 = stajaliste.SmjerniKut(vizuraYosPozitivna).ToDegrees();

            Assert.IsTrue(90 == Kv1.Angle, Kv1.ToString());

            //Y negativna
            Degrees Kv2 = stajaliste.SmjerniKut(vizuraYosNegativna).ToDegrees();

            Assert.IsTrue(270 == Kv2.Angle, Kv2.ToString());

            //X pozitivna
            Degrees Kv3 = stajaliste.SmjerniKut(vizuraXosPozitivna).ToDegrees();

            Assert.IsTrue(0 == Kv3.Angle, Kv3.ToString());

            //X negativna
            Degrees Kv4 = stajaliste.SmjerniKut(vizuraXosNegativna).ToDegrees();

            Assert.IsTrue(180 == Kv4.Angle, Kv4.ToString());
        }
예제 #5
0
    /// <summary>
    /// 
    /// </summary>
    /// <param name="format"></param>
    /// <param name="provider"></param>
    /// <returns></returns>
    public string ToString(string format, IFormatProvider provider) {

      if (string.IsNullOrEmpty(format))
        format = "G";

      if (provider == null)
        provider = CultureInfo.CurrentCulture;

      switch (format) {

      case "G":
      case "L":
        return $"{ToString("D", provider)}{ToString("E", provider)} {ToString("M", provider)}";

      case "D":
        return Direction ?? string.Empty;

      case "E":
        return Degrees.ToString("000") ?? string.Empty;

      case "M":
        return Minutes.ToString("00.000") ?? string.Empty;

      default:
        throw new FormatException($"Format string '{format}' is not valid.");
        }
      }
예제 #6
0
        public void TockaProjekcija_SmjerniKut_kvadranti_true()
        {
            TockaProjekcija stajaliste = new TockaProjekcija(5, 5);

            TockaProjekcija vizura1kvadrant = new TockaProjekcija(6, 6);
            TockaProjekcija vizura2kvadrant = new TockaProjekcija(6, 4);
            TockaProjekcija vizura3kvadrant = new TockaProjekcija(4, 4);
            TockaProjekcija vizura4kvadrant = new TockaProjekcija(4, 6);

            //1. kvadrant
            Degrees Kv1 = stajaliste.SmjerniKut(vizura1kvadrant).ToDegrees();

            Assert.IsTrue(45 == Kv1.Angle, Kv1.ToString());

            //2. kvadrant
            Degrees Kv2 = stajaliste.SmjerniKut(vizura2kvadrant).ToDegrees();

            Assert.IsTrue(135 == Kv2.Angle, Kv2.ToString());

            //3. kvadrant
            Degrees Kv3 = stajaliste.SmjerniKut(vizura3kvadrant).ToDegrees();

            Assert.IsTrue(225 == Kv3.Angle, Kv3.ToString());

            //4. kvadrant
            Degrees Kv4 = stajaliste.SmjerniKut(vizura4kvadrant).ToDegrees();

            Assert.IsTrue(315 == Kv4.Angle, Kv4.ToString());
        }
예제 #7
0
 public AngleControl()
 {
     InitializeComponent();
     _angle         = 0;
     _elevation     = 0;
     _draggedinside = false;
     _anglestring   = Degrees.ToString();
     _showTextBox   = true;
 }
예제 #8
0
        public void Degrees_Arithmetic_oduzimanje2_ReturnsTrue()
        {
            Degrees a        = new Degrees(1.3);
            Degrees b        = new Degrees(2.1);
            Degrees rjesenje = new Degrees(-0.8);

            Degrees razlikaOduzimanja = a - b - rjesenje;

            Assert.IsTrue(razlikaOduzimanja.Angle < tolerance, razlikaOduzimanja.ToString());
        }
예제 #9
0
        public void Degrees_Arithmetic_zbrajanje_ReturnsTrue()
        {
            Degrees a        = new Degrees(2.1);
            Degrees b        = new Degrees(1.1);
            Degrees rjesenje = new Degrees(3.2);

            Degrees razlikaZbrajanja = a + b - rjesenje;

            Assert.IsTrue(razlikaZbrajanja.Angle < tolerance, razlikaZbrajanja.ToString());
        }
예제 #10
0
        public override string ToString()
        {
            switch (InputFormat)
            {
            case AngleFormat.Default:
            case AngleFormat.Decimal:
                return(Degrees.ToString());

            default:
                return(RawValue);
            }
        }
예제 #11
0
        public override string ToString()
        {
            switch (Type)
            {
            case PropertyType.Null:                 return("null");

            case PropertyType.Calculated:           return("calculated");

            case PropertyType.Bool:                 return(Bool.ToString());

            case PropertyType.String:               return("string: " + StringHandle.ToString());

            case PropertyType.MultiValue:           return("multi: " + MultiValueHandle.ToString());

            case PropertyType.Enum:                 return("enum: " + Enum.ToString());

            case PropertyType.Color:                return("color: " + Color.ToString());

            case PropertyType.Integer:              return(Integer.ToString() + " (integer)");

            case PropertyType.Fractional:           return(Fractional.ToString() + " (fractional)");

            case PropertyType.Percentage:           return(Percentage.ToString() + "%");

            case PropertyType.AbsLength:            return(Points.ToString() + "pt (" + Inches.ToString() + "in, " + Millimeters.ToString() + "mm) (abs)");

            case PropertyType.RelLength:            return(Points.ToString() + "pt (" + Inches.ToString() + "in, " + Millimeters.ToString() + "mm) (rel)");

            case PropertyType.HtmlFontUnits:        return(HtmlFontUnits.ToString() + " (html font units)");

            case PropertyType.RelHtmlFontUnits:     return(RelativeHtmlFontUnits.ToString() + " (relative html font units)");

            case PropertyType.Multiple:             return(Integer.ToString() + "*");

            case PropertyType.Pixels:               return(Pixels.ToString() + "px");

            case PropertyType.Ems:                  return(Ems.ToString() + "em");

            case PropertyType.Exs:                  return(Exs.ToString() + "ex");

            case PropertyType.Milliseconds:         return(Milliseconds.ToString() + "ms");

            case PropertyType.kHz:                  return(kHz.ToString() + "kHz");

            case PropertyType.Degrees:              return(Degrees.ToString() + "deg");
            }

            return("unknown value type");
        }
예제 #12
0
 public override string ToString()
 {
     return("firstName: " + firstName + Environment.NewLine +
            "secondName: " + secondName + Environment.NewLine +
            "familyName: " + familyName + Environment.NewLine +
            "faculty: " + faculty + Environment.NewLine +
            "specialty: " + specialty + Environment.NewLine +
            "degree: " + degree.ToString() + Environment.NewLine +
            "status: " + status.ToString() + Environment.NewLine +
            "facultyNumber: " + facultyNumber + Environment.NewLine +
            "course: " + course.ToString() + Environment.NewLine +
            "stream: " + stream + Environment.NewLine +
            "group: " + group.ToString() + Environment.NewLine +
            "lastZaverka: " + lastZaverkaDate.ToString() + Environment.NewLine +
            "lastPaidTaxDate: " + lastPaidTaxDate.ToString());
 }
예제 #13
0
 /// <summary>
 /// Sets the current angle in degrees
 /// </summary>
 /// <param name="ang">The angle in degrees.</param>
 public void SetAngle(int ang)
 {
     while (ang < 0)
     {
         ang += 360;
     }
     ang          = ang % 360;
     _angle       = ang * Math.PI / 180;
     _elevation   = 0;
     _anglestring = Degrees.ToString();
     UpdateAngle();
     if (!_draggedinside)
     {
         FireAngleChangedEvent();
     }
 }
예제 #14
0
 public string ToNiceString()
 {
     if (Double.IsNaN(Radians))
     {
         return("Invalid");
     }
     if (_isHMS)
     {
         return(ascomutils.DegreesToHMS(Degrees, "h", "m", "s", 1));
     }
     else if (_type == Type.Az || _type == Type.Alt)
     {
         return(Degrees.ToString("0.0°"));
     }
     else
     {
         return(ascomutils.DegreesToDMS(Degrees, "°", "'", "\"", 1));
     }
 }
예제 #15
0
 public AngleChangedEventArgs(double rad)
 {
     Radians = rad;
     Degrees = (int)(rad * 180 / Math.PI);
     Text    = Degrees.ToString();
 }
예제 #16
0
            }// + .5f* Abs(Theta) + .1f*Abs(rotation); }// +  Abs(rotation / 2); }
            public override string ToString()
            {
                string s = "R: " + R.ToString("F3") + ", Theta: " + Degrees.ToString("F3") + "° (" + X.ToString("F2") + "," + Y.ToString("F2") + ") Rot: " + rotation + " Val: " + Val;

                return(s);
            }
예제 #17
0
 public override string ToString()
 {
     return("Turn " + Degrees.ToString("+0;-0") + "°");
 }
예제 #18
0
 public override string ToString() => Degrees.ToString("0.##°");
예제 #19
0
        public void Degrees_Parse_ToString_ReturnsTrue()
        {
            Degrees deg = new Degrees(55.55);

            Assert.IsTrue(deg == Degrees.Parse(deg.ToString()));
        }
예제 #20
0
 public string ToString(string format, IFormatProvider provider)
 {
     return(Degrees.ToString(format, provider));
 }
예제 #21
0
 /// <summary>
 /// Get coordinates as a string.
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     //return ToString("D6", System.Globalization.CultureInfo.InvariantCulture);
     return(Degrees.ToString(System.Globalization.CultureInfo.InvariantCulture));
 }
예제 #22
0
 public string ToString(string format) => Degrees.ToString(format);
예제 #23
0
 /// <summary>
 ///     Get coordinates as a string. This string is always culture invariant.
 /// </summary>
 /// <returns>The angle as a culture invariant string</returns>
 public override string ToString()
 {
     return(Degrees.ToString(NumberFormatInfo.InvariantInfo));
 }
예제 #24
0
 public override string ToString() => Degrees.ToString("#.00°");
예제 #25
0
        public void draw()
        {
            GUILayout.Label((SteeringBar >= 0 ? "Right: " : "Left: ") + Math.Abs(Mathf.RoundToInt(SteeringBar * 100)) + "%", GUI.skin.textField);
            SteeringBar = GUILayout.HorizontalSlider(SteeringBar, -1, 1);

            reverse = GUILayout.Toggle(reverse, reverse ? "Reverse" : "Forward");

            GUILayout.BeginHorizontal();
            GUILayout.Label("Speed (m/s):", GUI.skin.textField, GUILayout.Width(100));
            SpeedS = GUILayout.TextField(SpeedS, GUILayout.Width(50));
            SpeedS = RTUtils.FormatNumString(SpeedS);
            if (SpeedS == "")
            {
                SpeedS = "0";
            }

            if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(SpeedS);
                tmp   += 1;
                SpeedS = Mathf.RoundToInt(tmp).ToString();
            }
            if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(SpeedS);
                tmp   -= 1;
                SpeedS = Mathf.RoundToInt(tmp).ToString();
            }

            Speed  = Mathf.Clamp(Convert.ToSingle(SpeedS), 0, float.MaxValue);
            SpeedS = Speed.ToString();
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();

            GUILayout.Label("Drive (m):", GUI.skin.textField, GUILayout.Width(100));
            DistS = GUILayout.TextField(DistS, GUILayout.Width(50));
            DistS = RTUtils.FormatNumString(DistS);
            if (DistS == "")
            {
                DistS = "0";
            }

            if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(DistS);
                tmp  += 1;
                DistS = Mathf.RoundToInt(tmp).ToString();
            }
            if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(DistS);
                tmp  -= 1;
                DistS = Mathf.RoundToInt(tmp).ToString();
            }

            Distance = Mathf.Clamp(Convert.ToSingle(DistS), 0, float.MaxValue);
            DistS    = Distance.ToString();

            if (GUILayout.Button("Send", GUI.skin.textField))
            {
                RoverState r = new RoverState();
                r.Steer     = false;
                r.Target    = Distance;
                r.Speed     = Speed;
                r.reverse   = reverse;
                r.Steering  = 0;
                lastActTime = r.ActTime = Planetarium.GetUniversalTime() + (computer.core.localControl ? 0 : computer.core.path.ControlDelay);
                states.Enqueue(r);
            }

            GUILayout.EndHorizontal();



            GUILayout.BeginHorizontal();

            GUILayout.Label("Turn (°):", GUI.skin.textField, GUILayout.Width(100));
            DegS = GUILayout.TextField(DegS, GUILayout.Width(50));
            DegS = RTUtils.FormatNumString(DegS);
            if (DegS == "")
            {
                DegS = "0";
            }

            if (GUILayout.Button("+", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(DegS);
                tmp += 1;
                DegS = Mathf.RoundToInt(tmp).ToString();
            }
            if (GUILayout.Button("-", GUI.skin.textField, GUILayout.Width(21.0F)))
            {
                float tmp = Convert.ToSingle(DegS);
                tmp -= 1;
                DegS = Mathf.RoundToInt(tmp).ToString();
            }

            Degrees = Mathf.Clamp(Convert.ToSingle(DegS), 0, 90);
            DegS    = Degrees.ToString();

            if (GUILayout.Button("Send", GUI.skin.textField))
            {
                RoverState r = new RoverState();
                r.Steer     = true;
                r.Target    = Degrees;
                r.Speed     = Speed;
                r.reverse   = reverse;
                r.Steering  = Mathf.RoundToInt(SteeringBar * 100) == 0 ? 0 : -SteeringBar;
                lastActTime = r.ActTime = Planetarium.GetUniversalTime() + (computer.core.localControl ? 0 : computer.core.path.ControlDelay);
                states.Enqueue(r);
            }

            GUILayout.EndHorizontal();



            GUILayout.BeginHorizontal();
            GUILayout.Label(sending ? "Sending " + computer.arrows :
                            (computer.core.computer.roverActive ? DriveDescript : "")
                            , GUI.skin.textField);
            GUILayout.Label(sending ? RTUtils.time(lastActTime - Planetarium.GetUniversalTime()) : (computer.core.computer.roverActive ? TargetDescript : "")
                            , GUI.skin.textField, GUILayout.Width(100));
            GUILayout.EndHorizontal();
        }
예제 #26
0
 public override string ToString()
 {
     return(Degrees.ToString());
 }
예제 #27
0
 /// <summary>
 /// Converts the numeric value of this instance to its equivalent string representation.
 /// </summary>
 public override string ToString()
 {
     return(Degrees.ToString("F2") + "º");
 }
예제 #28
0
 public override string ToString()
 {
     return(Degrees.ToString() + Convert.ToChar(0xB0));
 }