/// <summary> /// Draw a point on the each point of the collections. /// </summary> /// <param name="layerIndex"></param> /// <param name="points"></param> /// <param name="color"></param> /// <param name="opacity"></param> /// <param name="pointType"></param> public System.Drawing.Point DrawPoints(int layerIndex, System.Drawing.PointF[] points, System.Drawing.Color color, float opacity = 1, int pointType = 0) { SharpDX.Vector2[] tmpPointArray = DrawingBase.Convertor.ToVector2(points); if (pointType == 1) { pointsLine.Width = Width; } pointsLine.Begin(); for (int index = 0; index < tmpPointArray.Length; index++) { if (pointType == 0) { pointsLine.Draw(ShapesFiller.GetFillEllipseArray(tmpPointArray[index].X - Width / 2, tmpPointArray[index].Y - Width / 2, Width, Width).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 1) { pointsLine.Draw(new SharpDX.Vector2[] { new SharpDX.Vector2(tmpPointArray[index].X - Width / 2, tmpPointArray[index].Y), new SharpDX.Vector2(tmpPointArray[index].X + Width / 2, tmpPointArray[index].Y) }, Convertor.ColorConvertor(color, opacity / 2)); } if (pointType == 2) { pointsLine.Draw(ShapesDrawer.GetDrawStarArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 3) { pointsLine.Draw(ShapesDrawer.GetDrawXArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 4) { pointsLine.Draw(ShapesDrawer.GetDrawDiamondArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } } pointsLine.End(); return(new System.Drawing.Point()); }
/// <summary> /// Draw ellipse on the layer with layerIndex /// </summary> /// <param name="layerIndex"></param> /// <param name="rectangle"></param> /// <param name="borderColor"></param> /// <param name="fillColor"></param> /// <param name="opacity"></param> /// <param name="fillPattern"></param> /// <param name="patternSize"></param> public void Draw(int layerIndex, System.Drawing.RectangleF rectangle, System.Drawing.Color?borderColor, System.Drawing.Color?fillColor, float opacity, xPFT.Charting.Base.FillPattern fillPattern, float patternSize) { if (fillColor != null || borderColor != null) { if (line != null) { line.Width = lineWidth; List <SharpDX.Vector2> tmpPointArray = GetPointOfEllipse(rectangle.Width / 2, rectangle.Height / 2); line.Begin(); device.device.SetTransform(0, SharpDX.Matrix.Translation(rectangle.X, rectangle.Y, 0)); if (fillColor != null) { line.Draw(ShapesFiller.GetFillEllipseArray(0, 0, rectangle.Width, rectangle.Height).ToArray(), Convertor.ColorConvertor((System.Drawing.Color)fillColor, opacity)); } if (borderColor != null) { line.Draw(tmpPointArray.ToArray(), Convertor.ColorConvertor((System.Drawing.Color)borderColor, opacity)); } line.End(); } } }
/// <summary> /// Draw a point on the each point of the collections. /// </summary> /// <param name="points"></param> /// <param name="xAxesCenterHeight"></param> /// <param name="yAxesCenterWidth"></param> /// <param name="HeightRate"></param> /// <param name="WidthRate"></param> /// <param name="xAxesMaxValue"></param> /// <param name="color"></param> /// <param name="pointType"></param> /// <param name="opacity"></param> /// <param name="autoShift"></param> /// <param name="keepInRightOfYAxis"></param> public System.Drawing.Point DrawPoints(int layerIndex, Charting.Base.DataPointCollection points, float xAxesCenterHeight, float yAxesCenterWidth, float HeightRate, float WidthRate, float xAxesMaxValue, System.Drawing.Color color, int pointType = 0, float opacity = 1, bool autoShift = true, bool keepInRightOfYAxis = false, bool isDrawPointLabel = false) { SharpDX.Vector2[] tmpPointArray; float MinX; float tmpYAxesCenterWidth = yAxesCenterWidth; tmpPointArray = DrawingBase.Convertor.convertDataPointToVector2Array(points, HeightRate, WidthRate, out MinX); if (tmpPointArray.Length > 1) { if (autoShift) { if (points.GetLast().XValue > xAxesMaxValue) { tmpYAxesCenterWidth = -((float)points.GetLast().XValue - xAxesMaxValue) * WidthRate + yAxesCenterWidth; } else { tmpYAxesCenterWidth = -tmpPointArray[0].X + yAxesCenterWidth; } } if (keepInRightOfYAxis) { if (MinX < 0) { tmpYAxesCenterWidth = tmpYAxesCenterWidth - MinX; } } if (tmpPointArray[0].X + tmpYAxesCenterWidth < device.padding.Left) { if (tmpPointArray.Length > 1) { tmpPointArray[0] = tmpPointArray[1]; } } if (pointType == 1) { pointsLine.Width = Width; } else { pointsLine.Width = 1; } pointsLine.Begin(); device.device.SetTransform(0, SharpDX.Matrix.Translation(tmpYAxesCenterWidth, xAxesCenterHeight, 0)); for (int index = 0; index < tmpPointArray.Length; index++) { if (pointType == 0) { pointsLine.Draw(ShapesFiller.GetFillEllipseArray(tmpPointArray[index].X - Width / 2, tmpPointArray[index].Y - Width / 2, Width, Width).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 1) { pointsLine.Draw(new SharpDX.Vector2[] { new SharpDX.Vector2(tmpPointArray[index].X - Width / 2, tmpPointArray[index].Y), new SharpDX.Vector2(tmpPointArray[index].X + Width / 2, tmpPointArray[index].Y) }, Convertor.ColorConvertor(color, opacity / 2)); } if (pointType == 2) { pointsLine.Draw(ShapesDrawer.GetDrawStarArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 3) { pointsLine.Draw(ShapesDrawer.GetDrawXArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } if (pointType == 4) { pointsLine.Draw(ShapesDrawer.GetDrawDiamondArray(tmpPointArray[index].X, tmpPointArray[index].Y, 5).ToArray(), Convertor.ColorConvertor(color, opacity)); } } pointsLine.End(); } return(new System.Drawing.Point((int)tmpYAxesCenterWidth, (int)xAxesCenterHeight)); }