Пример #1
0
            /// <summary>
            /// Transforms chart cordinates to real coordinates.
            /// </summary>
            /// <param name="x">The x value.</param>
            /// <param name="y">The y value.</param>
            /// <returns>The visible point</returns>
            public Point TransformToVisible(double x, double y)
            {
                x = x = x_IsLogarithmic && x > 0 ? Math.Log(x, xlogarithmicBase) : x;
                y = y_IsLogarithmic && y > 0 ? Math.Log(y, ylogarithmicBase) : y;

                double radius = m_radius * m_yAxis.ValueToCoefficient(y);
                Point  point  = ChartTransform.ValueToVector(m_xAxis, x);

                return(new Point(m_center.X + radius * point.X, m_center.Y + radius * point.Y));
            }
Пример #2
0
            /// <summary>
            /// Return point values from the given values
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            /// <param name="x_isInversed"></param>
            /// <param name="y_isInversed"></param>
            /// <returns></returns>
            public Point TransformToVisible(double x, double y, bool x_isInversed, bool y_isInversed)
            {
                x = x = x_IsLogarithmic && x > 0 ? Math.Log(x, xlogarithmicBase) : x;
                y = y_IsLogarithmic && y > 0 ? Math.Log(y, ylogarithmicBase) : y;

                if (this.m_IsRoated)
                {
                    double left = YAxis.RenderedRect.Left - XAxis.Area.SeriesClipRect.Left;
                    double top  = XAxis.RenderedRect.Top - YAxis.Area.SeriesClipRect.Top;
                    return(new Point(left + YAxis.RenderedRect.Width * YAxis.ValueToCoefficient(y, y_isInversed), top + XAxis.RenderedRect.Height * (1 - XAxis.ValueToCoefficient(x, x_isInversed))));
                }
                else
                {
                    double left = XAxis.RenderedRect.Left - XAxis.Area.SeriesClipRect.Left;
                    double top  = YAxis.RenderedRect.Top - YAxis.Area.SeriesClipRect.Top;
                    return(new Point(left + Math.Round(XAxis.RenderedRect.Width * XAxis.ValueToCoefficient(x, x_isInversed)), top + Math.Round(YAxis.RenderedRect.Height * (1 - YAxis.ValueToCoefficient(y, y_isInversed)))));
                }
            }