public override void UpdateShape() { var shapeModel = new InputShapeModel { Size = 1, Color = Color }; var pointMin = new Point(0, 0); var pointMax = new Point(0, 0); foreach (var level in IndexLevels) { var pixelLevel = Composer.GetPixels(Panel, level, 0); pointMin.X = pointMax.X = pixelLevel.X; pointMin.Y = 0; pointMax.Y = Panel.H; Panel.CreateLine(pointMin, pointMax, shapeModel); } foreach (var level in ValueLevels) { var pixelLevel = Composer.GetPixels(Panel, 0, level); pointMin.Y = pointMax.Y = pixelLevel.Y; pointMin.X = 0; pointMax.X = Panel.W; Panel.CreateLine(pointMin, pointMax, shapeModel); } }
/// <summary> /// Render the shape /// </summary> /// <param name="position"></param> /// <param name="series"></param> /// <param name="items"></param> /// <returns></returns> public override void CreateItem(int position, string series, IList <IInputModel> items) { var currentModel = GetModel(position, series, items); if (currentModel?.Point == null) { return; } var size = Panel.W / (Composer.MaxIndex - Composer.MinIndex) / 3; var shapeModel = new InputShapeModel { Size = 1, Color = currentModel.Color ?? Color }; var points = new Point[] { Composer.GetPixels(Panel, position, currentModel.Point), Composer.GetPixels(Panel, position, currentModel.Point), Composer.GetPixels(Panel, position, currentModel.Point) }; points[0].Y -= size * currentModel.Direction; points[1].X += size; points[2].X -= size; Panel.CreateShape(points, shapeModel); }
/// <summary> /// Render the shape /// </summary> /// <param name="position"></param> /// <param name="series"></param> /// <param name="items"></param> /// <returns></returns> public override void CreateItem(int position, string series, IList <IInputModel> items) { var currentModel = GetModel(position, series, items); if (currentModel?.Point == null) { return; } var size = Math.Max(position - (position - 1.0), 0.0) / 4; var shapeModel = new InputShapeModel { Size = 1, Color = currentModel.Color ?? Color }; var points = new Point[] { Composer.GetPixels(Panel, position - size, currentModel.Point), Composer.GetPixels(Panel, position + size, currentModel.Point), Composer.GetPixels(Panel, position + size, 0.0), Composer.GetPixels(Panel, position - size, 0.0), Composer.GetPixels(Panel, position - size, currentModel.Point) }; Panel.CreateShape(points, shapeModel); }
/// <summary> /// Render the shape /// </summary> /// <param name="position"></param> /// <param name="series"></param> /// <param name="items"></param> /// <returns></returns> public override void CreateItem(int position, string series, IList <IInputModel> items) { var currentModel = GetModel(position, series, items); var previousModel = GetModel(position - 1, series, items); if (currentModel?.Point == null || previousModel?.Point == null) { return; } var shapeModel = new InputShapeModel { Size = 1, Color = currentModel.Color ?? Color }; Panel.CreateLine( Composer.GetPixels(Panel, position - 1, previousModel.Point), Composer.GetPixels(Panel, position, currentModel.Point), shapeModel); }
/// <summary> /// Render the shape /// </summary> /// <param name="position"></param> /// <param name="series"></param> /// <param name="items"></param> /// <returns></returns> public override void CreateItem(int position, string series, IList <IInputModel> items) { var currentModel = GetModel(position, series, items); if (currentModel == null) { return; } var L = currentModel.Low ?? currentModel.Point; var H = currentModel.High ?? currentModel.Point; var O = currentModel.Open ?? currentModel.Point; var C = currentModel.Close ?? currentModel.Point; var size = Math.Max(position - (position - 1.0), 0.0) / 4.0; var upSide = Math.Max(O, C); var downSide = Math.Min(O, C); var shapeModel = new InputShapeModel { Size = 1, Color = currentModel.Color ?? Color }; var points = new Point[] { Composer.GetPixels(Panel, position - size, upSide), Composer.GetPixels(Panel, position + size, upSide), Composer.GetPixels(Panel, position + size, downSide), Composer.GetPixels(Panel, position - size, downSide), Composer.GetPixels(Panel, position - size, upSide) }; Panel.CreateShape(points, shapeModel); Panel.CreateLine( Composer.GetPixels(Panel, position, L), Composer.GetPixels(Panel, position, H), shapeModel); }