예제 #1
0
        private void DravPolyline(double x, double y, double maxValueX = 0, double maxValueY = 0)
        {
            if (double.IsNaN(x) || double.IsNaN(y) || double.IsNaN(maxValueX) || double.IsNaN(maxValueY))
            {
                return;
            }
            if (double.IsInfinity(x) || double.IsInfinity(y) || double.IsInfinity(maxValueX) || double.IsInfinity(maxValueY))
            {
                return;
            }

            if (maxValueX == 0 || maxValueY == 0)
            {
                maxValueY = _current_MaxValue_Y;
                maxValueX = _current_MaxValue_X;
            }

            double copyX = x;
            double copyY = y;

            using (MathXY mathPoint = new MathXY())
            {
                AxisPosition = mathPoint.GetAxisPosition(copyX, copyY, valueOsX, valueOsY, heightChar, ChangeScaleAxisX, ChangeScaleAxisY);

                if (AxisPosition != null)
                {
                    lineChar.Points.Add(new Point(AxisPosition.PositionX, AxisPosition.PositionY));
                }

                AxisPosition.Dispose();
            }
        }
예제 #2
0
        //drawing a chart
        public PositionXY GetAxisPosition(double X, double Y, double distancePointAxisX, double distancePointAxisY, double height, double ChangeScaleAxisX, double ChangeScaleAxisY)
        {
            if (double.IsNaN(X) || double.IsNaN(Y) || double.IsNaN(distancePointAxisX) || double.IsNaN(distancePointAxisY) || double.IsNaN(height) || (double.IsNaN(ChangeScaleAxisX) || double.IsNaN(ChangeScaleAxisY)))
            {
                return(null);
            }

            if (double.IsInfinity(X) || double.IsInfinity(Y) || double.IsInfinity(distancePointAxisX) || double.IsInfinity(distancePointAxisY) || double.IsInfinity(height) || (double.IsInfinity(ChangeScaleAxisX) || double.IsInfinity(ChangeScaleAxisY)))
            {
                return(null);
            }

            position = new PositionXY()
            {
                //calculation of coordinates X and Y
                PositionX = distancePointAxisY * X - (ChangeScaleAxisX * distancePointAxisY),
                PositionY = (ChangeScaleAxisY * distancePointAxisX) - (distancePointAxisX * Y - height)
            };

            return(position);
        }