void m_obj3DGraphControl_ThisMouseMove(System.Windows.Forms.MouseEventArgs e) { Point2D objClickedPoint = null; double dZValue = 0; Point3D objPoint3D = null; NearestPointData objNearestPoint = null; Point3D objLocationPoint = null; Point3D objGetPoint = null; String sDisplaytext = null; try { objClickedPoint = new Point2D(); objClickedPoint.SetLocation(e.X, e.Y); dZValue = objClickedPoint.GetZ(); objPoint3D = new Point3D(e.X, e.Y, dZValue); m_objPlotForHandCursor = (SimpleLinePlot)m_objChartView.FindObj(objPoint3D, "SimpleLinePlot"); if (m_objPlotForHandCursor != null) { m_objChartView.Cursor = Cursors.Hand; } else { m_objChartView.Cursor = Cursors.Arrow; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message, ex.StackTrace); } }
internal void CommonFunctionality(SimpleDataset3D[] arrSimpleDS) { int iCount = 0; Background objCBGND = null; ChartAttribute objWallAttribute = null; Wall3D objxyMinZWall = null; Wall3D objyzMinXWall = null; Wall3D objxzMinYWall = null; LinearAxis xAxis = null; LinearAxis yAxis = null; AxisTitle objXAxisTitle = null; AxisTitle objYAxisTitle = null; NumericAxisLabels XAxisLabel = null; NumericAxisLabels YAxisLabel = null; Grid xGrid = null; Grid yGrid = null; ChartAttribute objAttribute = null; try { iCount = arrSimpleDS.Length; m_objChartView = m_obj3DGraphControl; if (m_obj3DGraphControl != null) { m_objChartView = m_obj3DGraphControl; } string[] sarrLabels = m_sUnits.Split(new char[] { ',' }); m_objFont = new Font("Microsoft Sans Serif", 5, FontStyle.Regular); m_objCartesianCordinates = new CartesianCoordinates(); m_objCartesianCordinates.AutoScale(arrSimpleDS, ChartObj.AUTOAXES_EXACT, ChartObj.AUTOAXES_EXACT); m_objCartesianCordinates.AbsRotateCoordinateSystem(new Point3D(5, 3, 0)); m_objChartView.SetFractionalZViewportDepth(4); objCBGND = new Background(m_objCartesianCordinates, ChartObj.GRAPH_BACKGROUND, Color.FromArgb(241, 241, 247)); m_objChartView.AddChartObject(objCBGND); objWallAttribute = new ChartAttribute(Color.Beige, 0.5, DashStyle.Solid, Color.LightGray); objxyMinZWall = new Wall3D(m_objCartesianCordinates, ChartObj.XY_MAXZ_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxyMinZWall); objyzMinXWall = new Wall3D(m_objCartesianCordinates, ChartObj.YZ_MINX_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objyzMinXWall); objxzMinYWall = new Wall3D(m_objCartesianCordinates, ChartObj.XZ_MINY_PLANE, 0, objWallAttribute); m_objChartView.AddChartObject(objxzMinYWall); m_objCartesianCordinates.SetGraphBorderDiagonal(0.15, .15, .90, 0.75); xAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.X_AXIS); xAxis.CalcAutoAxis(); m_objChartView.AddChartObject(xAxis); XAxisLabel = new NumericAxisLabels(xAxis); XAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(XAxisLabel); switch (m_sTimeAxis) { case "Sec": objXAxisTitle = new AxisTitle(xAxis, m_objFont, "Sec"); m_objChartView.AddChartObject(objXAxisTitle); break; case "Others": objXAxisTitle = new AxisTitle(xAxis, m_objFont, sarrLabels[0]); m_objChartView.AddChartObject(objXAxisTitle); break; } yAxis = new LinearAxis(m_objCartesianCordinates, ChartObj.Y_AXIS); yAxis.CalcAutoAxis(); m_objChartView.AddChartObject(yAxis); YAxisLabel = new NumericAxisLabels(yAxis); YAxisLabel.SetTextFont(m_objFont); m_objChartView.AddChartObject(YAxisLabel); objYAxisTitle = new AxisTitle(yAxis, m_objFont, sarrLabels[1]); m_objChartView.AddChartObject(objYAxisTitle); switch (iCount) { case 1: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFirstText); break; case 2: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objNewFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objNewFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objSecondText); break; case 3: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objThirdFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objThirdSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0025, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objThirdThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objThirdThirdText); break; case 4: objAttribute = new ChartAttribute(Color.DarkRed, 0.5, DashStyle.Solid); m_objFirstLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[0], objAttribute); m_objChartView.AddChartObject(m_objFirstLinePlot); ChartText objFourthFirstText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[3], m_objFirstLinePlot.DisplayDataset.XData[m_objFirstLinePlot.DisplayDataset.XData.Length - 60], m_objFirstLinePlot.DisplayDataset.YData[m_objFirstLinePlot.DisplayDataset.YData.Length - 60], 0.0075, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFirstText); objAttribute = new ChartAttribute(Color.DarkGreen, 0.5, DashStyle.Solid); m_objSecondLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[1], objAttribute); m_objChartView.AddChartObject(m_objSecondLinePlot); ChartText objFourthSecondText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[2], m_objSecondLinePlot.DisplayDataset.XData[m_objSecondLinePlot.DisplayDataset.XData.Length - 60], m_objSecondLinePlot.DisplayDataset.YData[m_objSecondLinePlot.DisplayDataset.YData.Length - 60], 0.0045, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthSecondText); objAttribute = new ChartAttribute(Color.DarkGoldenrod, 0.5, DashStyle.Solid); m_objThirdLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[2], objAttribute); m_objChartView.AddChartObject(m_objThirdLinePlot); ChartText objFourthThirdText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[1], m_objThirdLinePlot.DisplayDataset.XData[m_objThirdLinePlot.DisplayDataset.XData.Length - 60], m_objThirdLinePlot.DisplayDataset.YData[m_objThirdLinePlot.DisplayDataset.YData.Length - 60], 0.002, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthThirdText); objAttribute = new ChartAttribute(Color.DarkViolet, 0.5, DashStyle.Solid); m_objFourthLinePlot = new SimpleLinePlot(m_objCartesianCordinates, arrSimpleDS[3], objAttribute); m_objChartView.AddChartObject(m_objFourthLinePlot); ChartText objFourthFourthText = new ChartText(m_objCartesianCordinates, m_objFont, (string)m_arlstDates[0], m_objFourthLinePlot.DisplayDataset.XData[m_objFourthLinePlot.DisplayDataset.XData.Length - 60], m_objFourthLinePlot.DisplayDataset.YData[m_objFourthLinePlot.DisplayDataset.YData.Length - 60], 0, ChartObj.PHYS_POS); m_objChartView.AddChartObject(objFourthFourthText); break; } } catch { throw; } }
void m_obj3DGraphControl_GraphClicked(System.Windows.Forms.MouseEventArgs e) { Point3D objPoint = null; Point2D obj2DPoint = null; double dImplicitZValue = 0; try { obj2DPoint = new Point2D(e.X, e.Y); double dZValue = obj2DPoint.GetZ(); objPoint = new Point3D(e.X, e.Y, dZValue); m_objClickedPlot = (SimpleLinePlot)m_objChartView.FindObj(objPoint, "SimpleLinePlot"); if (m_objClickedPlot != null && m_objClickedPlot.LineWidth == 0.5) { m_objClickedPlot.SetLineWidth(1.5); m_objMainGraphControl.LabelColor = m_objClickedPlot.GetColor(); } if (m_objPreviousLinePlot != null && m_objPreviousLinePlot.DisplayDataset != m_objClickedPlot.DisplayDataset && m_objPreviousLinePlot.LineWidth == 1.5) { m_objPreviousLinePlot.SetLineWidth(0.5); } dImplicitZValue = m_objClickedPlot.DisplayDataset.ImplicitZValue; Point3D objLocationPoint = null; NearestPointData objNearestPoint = null; Point3D objGetPoint = null; if (e.Button == MouseButtons.Left) { if (m_objDataCursor != null) { objNearestPoint = new NearestPointData(); objLocationPoint = m_objDataCursor.Location; m_objDataCursor.SetColor(Color.Transparent); m_objDataCursor.SetLocation(objLocationPoint); if (m_objClickedPlot != null) { bFirstPlot = m_objClickedPlot.CalcNearestPoint(objLocationPoint, 3, objNearestPoint); objGetPoint = objNearestPoint.GetNearestPoint(); if (m_objMarker != null) { m_objChartView.DeleteChartObject(m_objMarker); m_objChartView.DeleteChartObject(m_objDataCursor); } m_objMarker = new Marker(m_objCartesianCordinates, GraphObj.MARKER_BOX, objLocationPoint.GetX(), objLocationPoint.GetY(), objLocationPoint.GetZ(), 8, 1); m_objMarker.FillColor = Color.Black; m_objMarker.SetColor(Color.Black); m_objChartView.AddChartObject(m_objMarker); string sDisplaytext = "X Value:" + objLocationPoint.GetX() + "\n" + "Y Value:" + objLocationPoint.GetY(); m_obj3DGraphControl.SetLabelText(sDisplaytext); } } } m_objChartView.UpdateDraw(); m_objPreviousLinePlot = m_objClickedPlot; m_objPreviousColor = m_objClickedPlot.GetColor(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message, ex.StackTrace); } }