public override void OnMarkerMoved(ChartObjectMarker marker)
        {
            // если речь не идет о точке, задающей ширину канала...
            if (marker.action == ChartObjectMarker.MarkerAction.Move)
            {
                base.OnMarkerMoved(marker);
                return;
            }
            var markerIndex = 0;

            for (var i = 0; i < markers.Length; i++)
            {
                if (markers[i] != marker)
                {
                    continue;
                }
                markerIndex = i - 1;
                break;
            }
            if (markerIndex < 2)
            {
                base.OnMarkerMoved(marker);
                return;
            }

            marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);
            // определить ширину канала
            Point3 = marker.centerModel;
        }
 public void OnMarkerMoved(ChartObjectMarker marker)
 {
     // переместить сам объект
     screenX = marker.centerScreen.X;
     screenY = marker.centerScreen.Y;
     // пересчитать центр
     marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);
     candleIndex = (int)marker.centerModel.X;
     DateStart   = Owner.Owner.Owner.StockSeries.GetCandleOpenTimeByIndex(candleIndex);
     Price       = (float)marker.centerModel.Y;
 }
        public void OnMarkerMoved(ChartObjectMarker marker)
        {
            // пересчитать маркер
            marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);

            // переместить
            if (marker.action == ChartObjectMarker.MarkerAction.Move)
            {
                float vx, vy;
                if (points.Count > 1)
                {
                    vx = (float)(marker.centerModel.X - (points[0].X + points[1].X) * 0.5f);
                    vy = (float)(marker.centerModel.Y - (points[0].Y + points[1].Y) * 0.5f);
                }
                else
                {
                    vx = (float)(marker.centerModel.X - points[0].X);
                    vy = (float)(marker.centerModel.Y - points[0].Y);
                }
                for (var i = 0; i < points.Count; i++)
                {
                    points[i] = new PointF(points[i].X + vx, points[i].Y + vy);
                    markers[i + 1].centerModel = points[i];
                }
                return;
            }

            // растянуть
            var markerIndex = 0;

            for (var i = 0; i < markers.Length; i++)
            {
                if (markers[i] != marker)
                {
                    continue;
                }
                markerIndex = i - 1;
                break;
            }
            if (markerIndex < 0 || points.Count <= markerIndex)
            {
                return;
            }
            points[markerIndex] = new PointF((float)marker.centerModel.X, (float)marker.centerModel.Y);
        }
        public void OnMarkerMoved(ChartObjectMarker marker)
        {
            var markerIndex = 0;

            for (var i = 0; i < markers.Length; i++)
            {
                if (markers[i] != marker)
                {
                    continue;
                }
                markerIndex = i;
                break;
            }
            marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);
            var pointIndex = points.Count == 2 ? markerIndex : 0;

            points[pointIndex] = new Cortege2 <int, float>((int)marker.centerModel.X,
                                                           (float)marker.centerModel.Y);
            // пересчитать отметки Фибоначчи
            CalculateProjections();
        }
Beispiel #5
0
        public void OnMarkerMoved(ChartObjectMarker marker)
        {
            // пересчитать координаты маркера
            marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);

            if (marker.action == ChartObjectMarker.MarkerAction.Move)
            {
                // изменилась точка привязки к свечкам
                PivotPrice = marker.centerModel.Y;
                PivotIndex = marker.centerModel.X;
                CalculateTextMarkerCoords();
                return;
            }
            // изменилось расположение коментария
            markers[0].CalculateScreenCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);
            var vx  = marker.centerScreen.X - markers[0].centerScreen.X;
            var vy  = marker.centerScreen.Y - markers[0].centerScreen.Y;
            var len = Math.Sqrt(vx * vx + vy * vy);

            ArrowLength = (int)len;
            ArrowAngle  = Math.Atan2(vy, vx) * 180 / Math.PI;
        }
Beispiel #6
0
 public void OnMarkerMoved(ChartObjectMarker marker)
 {
     marker.RecalculateModelCoords(Owner.Owner.WorldRect, Owner.Owner.CanvasRect);
     candleIndex = marker.centerModel.X;
     Price       = marker.centerModel.Y;
 }