void ShowDynamicGraph() { new Thread(() => { var line = new Line(1.0f, Color.Black.ToGLColor(), new GLPoint[] { }) { IsDynamic = true }; var i = 0; _graph.Display(new GLRect(i - 60, -20, 120, 50), false); BeginInvoke((Action)delegate { _graph.Lines.Add(line); }); while (true) { var point = new GLPoint(i++, Math.Sin(i / 100.0) * 10 - 5); int i1 = i; BeginInvoke((Action)delegate { if (line.Points.Count > 3000) { line.RemovePoint(0, update: false); } line.AddPoint(point); if(Math.Abs((i1 / 100.0) % 1.0) < 0.001) { _graph.Markers.Clear(); _graph.Markers.Add(new GraphText(i1, Math.Sin(i1 / 100.0) * 10 -5,i1.ToString())); } _graph.Display(new GLRect(i1 - 60, -20, 120, 50), false); }); Thread.Sleep(10); } }).Start(); }
void ShowDynamicGraph() { new Thread(() => { var line = new Line(1.0f, Color.Black.ToGLColor(), new GLPoint[] { }) { IsDynamic = true }; var i = 0; _graph.Display(new GLRect(i - 60, -20, 120, 50), false); BeginInvoke((Action) delegate { _graph.Lines.Add(line); }); while (true) { var point = new GLPoint(i++, Math.Sin(i / 100.0) * 10 - 5); int i1 = i; BeginInvoke((Action) delegate { if (line.Points.Count > 3000) { line.RemovePoint(0, update: false); } line.AddPoint(point); if (Math.Abs((i1 / 100.0) % 1.0) < 0.001) { _graph.Markers.Clear(); _graph.Markers.Add(new GraphText(i1, Math.Sin(i1 / 100.0) * 10 - 5, i1.ToString())); } _graph.Display(new GLRect(i1 - 60, -20, 120, 50), false); }); Thread.Sleep(10); } }).Start(); }
public SatisfiedMarker(GLPoint pt, PersistentTexture textures) { _pt = pt; _texture = textures; Visible = true; }
public ThresholdMarker(ILineGraph graph, GLPoint location, GLSize size, GLColor color) { _graph = graph; _rectangle = new Rectangle(color, true, location, size); _rectangle.Origin = new GLPoint(_rectangle.Origin.X - size.Width / 2.0, _rectangle.Origin.Y - size.Height / 2.0); graph.Control.MouseMove += OnMouseMove; graph.Control.MouseDown += OnMouseDown; graph.Control.MouseUp += OnMouseUp; }
public ThresholdMarker(ILineGraph graph, GLPoint location, GLSize size, GLColor color) { _graph = graph; _rectangle = new Rectangle(color, true, location, size); _rectangle.Origin = new GLPoint(_rectangle.Origin.X - size.Width / 2.0, _rectangle.Origin.Y - size.Height / 2.0); graph.Control.MouseMove += OnMouseMove; graph.Control.MouseDown += OnMouseDown; graph.Control.MouseUp += OnMouseUp; }
public bool CheckPosition(GLPoint position) { var nearestBonusItem = GetNearestBonusItem(position); if (nearestBonusItem != null) { var dist = position.DistanceToPoint(nearestBonusItem.Position); if (dist < TileWidth) { PickUpBonusItem(nearestBonusItem); } } var finishPosition = LabPointToScenePoint(EndPos); var distToFinish = position.DistanceToPoint(finishPosition); if (distToFinish < TileWidth) { if (!Locked) { Level++; Task.Run(() => { var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current; player.Load("levelcomplete.mp3"); player.Play(); }); return(true); } else { if (!_nearLockedDoors) { Task.Run(() => { var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current; player.Load("doorclosed.mp3"); player.Play(); }); _nearLockedDoors = true; } } } else { _nearLockedDoors = false; } return(false); }
public GLObject GetNearestBonusItem(GLPoint p) { var minDist = double.MaxValue; GLObject res = null; foreach (var item in BonusItems) { var dist = p.DistanceToPoint(item.Value.Position); if (dist < minDist) { minDist = dist; res = item.Value; } } return(res); }
private void button1_Click(object sender, EventArgs e) { //DateTime T1 = get_T1(get_CURR()); DateTime T1 = new DateTime(2015, 04, 24, 06, 0, 0); int Size = 43200 * 7; GraphicLine.GLPoint[] a1 = new GLPoint[Size]; //720 min + 1 Random rnd_v = new Random(); //for (int i = 0; i < a1.Length; i++) for (int i = 0; i < Size; i++) { //if (i < 40 || i > 65) //a1[i] = new GLPoint((i * 60)/10800 , T1.AddMinutes(i)); a1[i] = new GLPoint(((i * 60) / (43200 * 7)), T1.AddSeconds(i)); } XmlSerializer serializer = new XmlSerializer(typeof(GLPoint[])); //TextWriter writer = new StreamWriter(@"C:\Users\serzh\Documents\GitHub\CalandrePresentation\CalanderPresentation\bin\x86\toHost\graphicLine1Data.xml"); TextWriter writer = new StreamWriter(@"C:\Users\serzh\VirtualBox VMs\mutualSSD\CalanderPresentation\graphicLine1Data.xml"); serializer.Serialize(writer, a1); writer.Dispose(); //if (File.Exists(@"C:\Users\serzh\Documents\GitHub\CalandrePresentation\CalanderPresentation\bin\DebugToHost\GraphicLineData.xml")) //{ // XmlSerializer XmlSerializer1 = new XmlSerializer(typeof(Settings)); // TextReader reader1 = new StreamReader("settings.xml"); // Settings1 = (Settings)XmlSerializer1.Deserialize(reader1); // reader1.Dispose(); // this.textBox1.Text = Settings1.SQLConnectionString; // this.radioButton1.Checked = (Settings1.SQLWindowsAuthorization) ? true : false; // this.radioButton2.Checked = (Settings1.SQLWindowsAuthorization) ? false : true; // this.textBox5.Text = Settings1.SQLLogin; // this.textBox6.Text = Settings1.SQLPassword; // this.textBox3.Text = Settings1.OPCConnectionString; // this.textBox4.Text = Settings1.OPCRingsCounterName; //} }
void ShowScaledGraph() { _graph.Display(new GLRect(-50,-50,100,100), true); var random = new Random(); var dataInMilliseconds = new GLPoint[] { new GLPoint(0, 0), new GLPoint(3000, random.NextDouble()), new GLPoint(6000, random.NextDouble()), new GLPoint(9000, random.NextDouble()), new GLPoint(12000, random.NextDouble()), new GLPoint(15000, random.NextDouble()), new GLPoint(18000, random.NextDouble()), new GLPoint(21000, random.NextDouble()), }; var dataInSeconds = dataInMilliseconds.Select(p => new GLPoint(p.X/1000, p.Y)).ToArray(); _graph.Lines.Add(new Line(1.0f, System.Drawing.Color.Blue.ToGLColor(), dataInSeconds)); }
void ShowScaledGraph() { _graph.Display(new GLRect(-50, -50, 100, 100), true); var random = new Random(); var dataInMilliseconds = new GLPoint[] { new GLPoint(0, 0), new GLPoint(3000, random.NextDouble()), new GLPoint(6000, random.NextDouble()), new GLPoint(9000, random.NextDouble()), new GLPoint(12000, random.NextDouble()), new GLPoint(15000, random.NextDouble()), new GLPoint(18000, random.NextDouble()), new GLPoint(21000, random.NextDouble()), }; var dataInSeconds = dataInMilliseconds.Select(p => new GLPoint(p.X / 1000, p.Y)).ToArray(); _graph.Lines.Add(new Line(1.0f, System.Drawing.Color.Blue.ToGLColor(), dataInSeconds)); }
public override bool OnTouchEvent(MotionEvent e) { var x = e.GetX(); var y = e.GetY(); base.OnTouchEvent(e); if (e.Action == MotionEventActions.Down) { _fingerTapCoordinates.X = x; _fingerTapCoordinates.Y = y; Logger.Info($"Down: {x}:{y}"); } else if (e.Action == MotionEventActions.Pointer2Down) { // second finger down Logger.Info($"Pointer2Down: {x}:{y}"); } else if (e.Action == MotionEventActions.Move) { if (e.PointerCount > 1) { if (!_zoom) { _zoom = true; _fingerTapCoordinates = new GLPoint(e.GetX(0), e.GetY(0), 0); _finger2TapCoordinates = new GLPoint(e.GetX(1), e.GetY(1), 0); } else { Logger.Info($"Zoom:"); var originalDistance = _fingerTapCoordinates.DistanceToPoint(_finger2TapCoordinates); var actualFinger1TapCoordinates = new GLPoint(e.GetX(0), e.GetY(0), 0); var actualFinger2TapCoordinates = new GLPoint(e.GetX(1), e.GetY(1), 0); var newDistance = actualFinger1TapCoordinates.DistanceToPoint(actualFinger2TapCoordinates); if (originalDistance != 0) { var ratio = newDistance / originalDistance; if (ratio < 0.9) { _scene.Magnify(0.9f); } else if (ratio > 1.1) { _scene.Magnify(1.1f); } Logger.Info($"Move: PinchToZoom, originalDistance: {originalDistance:N2}, newDistance: {newDistance:N2}, ratio: {ratio}"); } } } else if (!_zoom) { Logger.Info($"Move:"); float xdiff = ((float)_fingerTapCoordinates.X - x); float ydiff = ((float)_fingerTapCoordinates.Y - y); _scene.Observer.Rotation.X += ydiff; _scene.Observer.Rotation.Y += xdiff; _fingerTapCoordinates.X = x; _fingerTapCoordinates.Y = y; } } if (e.Action == MotionEventActions.Up) { _zoom = false; } return(true); }
public SatisfiedMarker(GLPoint pt, PersistentTexture textures) { _pt = pt; _texture = textures; Visible = true; }
public GLPoint LabPointToScenePoint(Point P) { var glP = new GLPoint((TileWidth) * P.X, 10, (TileWidth) * (P.Y) + TileWidth / 2); return(glP); }
private void PaintingView_RenderFrame(object sender, FrameEventArgs e) { if (_lastTapCrossMove != null) { if (_lastTapCrossMove.Right > 10) { _scene.Go(DirectionEnum.Right, _lastTapCrossMove.Right / 50f); } if (_lastTapCrossMove.Left > 10) { _scene.Go(DirectionEnum.Left, _lastTapCrossMove.Left / 50f); } if (_lastTapCrossMove.Top > 10) { _scene.Go(DirectionEnum.Forward, _lastTapCrossMove.Top / 10f); } if (_lastTapCrossMove.Bottom > 10) { _scene.Go(DirectionEnum.Backward, _lastTapCrossMove.Bottom / 10f); } } if (_lastTapRotateMove != null) { if (_lastTapRotateMove.Right > 10) { _scene.Observer.Rotation.Y += _lastTapRotateMove.Right / 10f; } if (_lastTapRotateMove.Left > 10) { _scene.Observer.Rotation.Y -= _lastTapRotateMove.Left / 10f; } } var labyrinth = (_scene.GetObjectByName("labyrinth") as GLLabyrinthObj); var newLevel = labyrinth.CheckPosition(_scene.Observer.Position); UpdateDisplays(newLevel ? "Loading new level ..." : null); if (newLevel) { NewLevel(); } // adding light above Observer GL.Light(All.Light0, All.Position, _scene.Observer.Position.ToFloatArray()); GL.Light(All.Light0, All.Ambient, new float[] { 1f, 1f, 1f, 1f }); GL.Light(All.Light0, All.Diffuse, new float[] { 1f, 1f, 1f, 1f }); GL.Light(All.Light0, All.Specular, new float[] { 1f, 1f, 1f, 1f }); // adding light in front of Observer var pBefore = GLPoint.GetMovedPointByAngle(_scene.Observer.Position, labyrinth.TileWidth, _scene.Observer.Rotation.Y, true); GL.Light(All.Light1, All.Position, pBefore.ToFloatArray()); GL.Light(All.Light1, All.Ambient, new float[] { 1f, 1f, 1f, 1f }); GL.Light(All.Light1, All.Diffuse, new float[] { 1f, 1f, 1f, 1f }); GL.Light(All.Light1, All.Specular, new float[] { 1f, 1f, 1f, 1f }); GL.Material(All.Front, All.Ambient, new float[] { 1f, 1f, 1f }); GL.Material(All.Front, All.Diffuse, new float[] { 1f, 1f, 1f }); GL.Material(All.Front, All.Specular, new float[] { 1f, 1f, 1f }); GL.Material(All.Front, All.Shininess, 128f); Render(); }