void ShowDynamicGraph() { _graph.TextEnabled = true; var line1 = new Line(1.0f, Colors.Red.ToGLColor(), new GLPoint[] { }); var line2 = new Line(1.0f, Colors.Green.ToGLColor(), new GLPoint[] { }); var line3 = new Line(1.0f, Colors.Blue.ToGLColor(), new GLPoint[] { }); _graph.Lines.Add(line1); _graph.Lines.Add(line2); _graph.Lines.Add(line3); _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(0.001) }; var i = 0; var rect = new GLRect(0, 0, 500, 100); var rand = new Random(); _timer.Tick += delegate { line1.AddPoint(new GLPoint(i, (rand.Next() % 10) + 5)); line2.AddPoint(new GLPoint(i, (rand.Next() % 10) + 15)); line3.AddPoint(new GLPoint(i, (rand.Next() % 10) + 25)); i++; if (i >= (rect.Width + rect.X)) { line1.RemovePoint(0); line2.RemovePoint(0); line3.RemovePoint(0); var d = (i - (rect.Width + rect.X)); rect = new GLRect(rect.X + d, rect.Y, rect.Width, rect.Height); _graph.Display(rect, false); } _graph.Draw(); }; _timer.Start(); _graph.Display(rect, true); }
static bool CenterTest(GLRect marker, Point wloc) { return marker.Contains(wloc.X, wloc.Y); }
static bool LeftEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs(marker.X - pt.X); return marker.ContainsY(pt.Y) && dist < EdgeThreshold; }
static bool TopEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs((marker.Y + marker.Height) - pt.Y); return marker.ContainsX(pt.X) && dist < EdgeThreshold; }
static bool BottomEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs(marker.Y - pt.Y); return marker.ContainsX(pt.X) && dist < EdgeThreshold; }
static bool RightEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs((marker.X + marker.Width) - pt.X); return marker.ContainsY(pt.Y) && dist < EdgeThreshold; }
static bool CenterTest(GLRect marker, Point wloc) { return(marker.Contains(wloc.X, wloc.Y)); }
static bool LeftEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs(marker.X - pt.X); return(marker.ContainsY(pt.Y) && dist < EdgeThreshold); }
static bool TopEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs((marker.Y + marker.Height) - pt.Y); return(marker.ContainsX(pt.X) && dist < EdgeThreshold); }
static bool BottomEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs(marker.Y - pt.Y); return(marker.ContainsX(pt.X) && dist < EdgeThreshold); }
static bool RightEdgeTest(GLRect marker, Point pt) { var dist = Math.Abs((marker.X + marker.Width) - pt.X); return(marker.ContainsY(pt.Y) && dist < EdgeThreshold); }