예제 #1
0
        private void ScallingBtn_Click(object sender, RoutedEventArgs e)
        {
            if (IsLoaded)
            {
                if (KeysPressed.Contains(Key.LeftShift))
                {
                    Graph.Xmap = 0.01;
                    Graph.Ymap = 0.01;
                    Graph.DrawCartesian();
                    Graph.DrawGrid();
                }
                else
                {
                    switch (Graph.ScallingMode)
                    {
                    case ScallingMode.Both:
                        Graph.ScallingMode  = ScallingMode.X;
                        ScallingBtn.Content = "→";
                        break;

                    case ScallingMode.X:
                        Graph.ScallingMode  = ScallingMode.Y;
                        ScallingBtn.Content = "↑";
                        break;

                    case ScallingMode.Y:
                        Graph.ScallingMode  = ScallingMode.Both;
                        ScallingBtn.Content = "∟";
                        break;
                    }
                }
            }
        }
예제 #2
0
        private void MovingBtn_Click(object sender, RoutedEventArgs e)
        {
            if (IsLoaded)
            {
                if (KeysPressed.Contains(Key.LeftShift))
                {
                    Graph.Origin = new Point(Graph.DrawingArea.ActualWidth / 2, Graph.DrawingArea.ActualHeight / 2);
                    Graph.DrawCartesian();
                    Graph.DrawGrid();
                }
                else
                {
                    switch (Graph.MovingMode)
                    {
                    case MovingMode.Both:
                        Graph.MovingMode  = MovingMode.X;
                        MovingBtn.Content = "►";
                        break;

                    case MovingMode.X:
                        Graph.MovingMode  = MovingMode.Y;
                        MovingBtn.Content = "▲";
                        break;

                    case MovingMode.Y:
                        Graph.MovingMode  = MovingMode.Both;
                        MovingBtn.Content = "+";
                        break;
                    }
                }
            }
        }
예제 #3
0
 private void PixelJumpSld_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
 {
     if (IsLoaded)
     {
         Graph.PixelJump = (int)PixelJumpSld.Value;
         Graph.InitialiseGraph();
         Graph.DrawCartesian();
     }
 }
예제 #4
0
 private void FuncInput_TextChanged(object sender, TextChangedEventArgs e)
 {
     try
     {
         currentFunc           = ExpressionParser.FromText(FuncInput.Text);
         FuncInput.Foreground  = Brushes.AntiqueWhite;
         Graph.CurrentFunction = currentFunc;
         Graph.DrawCartesian();
     }
     catch
     {
         FuncInput.Foreground = new SolidColorBrush(Color.FromArgb(255, 230, 150, 150));
     }
 }