예제 #1
0
        private void UpdateParseXYZWSettings(object sender, EventArgs e)
        {
            //Clear prior values
            myprocTransformGroup.Children.Clear();
            XAxisValue.Clear();
            YAxisValue.Clear();
            ZAxisValue.Clear();
            AngleValue.Clear();

            //<SnippetQuaternionView3DN3>
            try
            {
                endQuaternion = Quaternion.Parse(ParseValue.Text);
            }
            catch
            {
                ParseValue.Text = "Must input (X, Y, Z, W)";
            }

            endRotation.Quaternion = endQuaternion;
            //</SnippetQuaternionView3DN3>

            //Update axis and angle textboxes
            XAxisValue.Text = endQuaternion.Axis.X.ToString();
            YAxisValue.Text = endQuaternion.Axis.Y.ToString();
            ZAxisValue.Text = endQuaternion.Axis.Z.ToString();
            AngleValue.Text = endQuaternion.Angle.ToString();

            startAnimation();
        }
예제 #2
0
        public static void SetupXAxisFormatter(XAxisValue axisType, IAxis axis, IActivity activity)
        {
            switch (axisType)
            {
            case XAxisValue.Distance:
            {
                axis.Formatter = new Formatter.General(UnitUtil.Distance.DefaultDecimalPrecision);
                axis.Label     = CommonResources.Text.LabelDistance +
                                 UnitUtil.Distance.LabelAbbrAct2(activity);
                break;
            }

            case XAxisValue.Time:
            {
                axis.Formatter = new Formatter.SecondsToTime();
                axis.Label     = CommonResources.Text.LabelTime;
                break;
            }

            default:
            {
                Debug.Assert(false, string.Format("Unexpecteded XAxisValue {0}", axisType));
                break;
            }
            }
        }
예제 #3
0
        private void UpdateWXYZSettings(object sender, EventArgs e)
        {
            //Clear prior values
            myprocTransformGroup.Children.Clear();
            XAxisValue.Clear();
            YAxisValue.Clear();
            ZAxisValue.Clear();
            AngleValue.Clear();

            //<SnippetQuaternionView3DN2>
            //Read new settings
            Double setW = System.Convert.ToDouble(WValue.Text);
            Double setX = System.Convert.ToDouble(XValue.Text);
            Double setY = System.Convert.ToDouble(YValue.Text);
            Double setZ = System.Convert.ToDouble(ZValue.Text);

            endQuaternion          = new Quaternion(setX, setY, setZ, setW);
            endRotation.Quaternion = endQuaternion;

            //Update axis and angle textboxes
            XAxisValue.Text = endQuaternion.Axis.X.ToString();
            YAxisValue.Text = endQuaternion.Axis.Y.ToString();
            ZAxisValue.Text = endQuaternion.Axis.Z.ToString();
            AngleValue.Text = endQuaternion.Angle.ToString();

            startAnimation();
            //</SnippetQuaternionView3DN2>
        }
예제 #4
0
        //No simple way to dynamically translate enum
        //The integer (raw) value is stored as defaults too
        public static string XAxisValueString(XAxisValue XAxisReferential)
        {
            string xAxisLabel = "";

            switch (XAxisReferential)
            {
            case XAxisValue.Distance:
            {
                xAxisLabel = CommonResources.Text.LabelDistance;
                break;
            }

            case XAxisValue.Time:
            {
                xAxisLabel = CommonResources.Text.LabelTime;
                break;
            }

            //TODO: DateTime
            default:
            {
                Debug.Assert(false, string.Format("Unexpecteded XAxisValue {0}", XAxisReferential));
                break;
            }
            }
            return(xAxisLabel);
        }
예제 #5
0
        public bool Equals(object obj)
        {
            if (obj == null || GetType() != obj.GetType())
            {
                return(false);
            }

            var other = (DataPoint)obj;

            return(XAxisValue.Equals(other.XAxisValue));
        }
예제 #6
0
        /// <summary>
        /// Creates labes for background grid
        /// </summary>
        /// <param name="xAxisValue"></param>
        public void CountLables(XAxisValue xAxisValue)
        {
            double valueOfOneLineLabel = (Convert.ToDouble(DataCount) / _lineCountVertical);

            i = 0;
            foreach (Label label in _gridBackground.labelsVertical)
            {
                switch (xAxisValue)
                {
                case XAxisValue.Second:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddSeconds(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount))
                                    .ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Minute:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddMinutes(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount))
                                    .ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Hour:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddHours(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Day:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddDays(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Month:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddMonths(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Year:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddYears(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;
                }

                i++;
            }
        }
예제 #7
0
        /// <summary>
        /// Creates background grid
        /// </summary>
        /// <param name="xAxisValue"></param>
        private void MakeGridBackgroud(XAxisValue xAxisValue)
        {
            //Vertical lines
            double valueOfSpreadVertical = ActualWidth / _lineCountVertical;
            double valueOfOneLineLabel   = (Convert.ToDouble(DataCount) / _lineCountVertical);

            double valueOfFontSize = (ActualWidth / _lineCountVertical) / 7;

            for (int i = 0; i < _lineCountVertical * 1.2; i++)
            {
                Line line = new Line
                {
                    X1              = valueOfSpreadVertical * i,
                    X2              = valueOfSpreadVertical * i,
                    Y1              = 0,
                    Y2              = CanvasMain.ActualHeight,
                    Stroke          = GridLineColor,
                    StrokeThickness = 2
                };



                Canvas.SetZIndex(line, -500);
                CanvasMain.Children.Add(line);

                Label label = new Label
                {
                    FontSize   = Convert.ToInt32(valueOfFontSize).LimitToRange(1, 15),
                    FontFamily = Label_MaxY.FontFamily,
                    Foreground = Label_MaxY.Foreground
                };

                //Content

                switch (xAxisValue)
                {
                case XAxisValue.Second:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddSeconds(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount))
                                    .ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Minute:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddMinutes(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount))
                                    .ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Hour:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddHours(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Day:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddDays(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Month:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddMonths(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;

                case XAxisValue.Year:
                    label.Content = new DateTime(_firstTime.Year, _firstTime.Month, _firstTime.Day,
                                                 _firstTime.Hour, _firstTime.Minute, _firstTime.Second).AddYears(Convert.ToInt32((i * valueOfOneLineLabel) * XAxisUnitCount)).ToString(XAxisUnitStringFormat);
                    break;
                }

                Grid_XAxisScale.Children.Add(label);

                _gridBackground.labelsVertical.Add(label);
                _gridBackground.linesVertical.Add(line);
            }
        }
예제 #8
0
 private void RefreshChart(XAxisValue t)
 {
     Data.Settings.XAxisValue = t;
     this.RefreshChart();
 }