Problem coverting in Logarithmic axes

TeeChart for Microsoft Visual Studio .NET, Xamarin Studio (Android, iOS & Forms) & Monodevelop.
Post Reply
Planoresearch
Newbie
Newbie
Posts: 57
Joined: Thu Jun 02, 2011 12:00 am

Problem coverting in Logarithmic axes

Post by Planoresearch » Fri Jan 06, 2012 2:13 pm

Hi Steema Support,

We are creating a line chart which have two points P1 and P2. Now we extend this line so that it touch boundaries of chart by adding two more point at first index and last index respectively. Means there is now total four points on line:

P0-> which is first point of line series and touches bottom boundary (not visible as this point is out of boundary)
P1-> which is second point of line series and always displayed on chart.
P2-> which is third point of line series and always displayed on chart.
P3-> which is last point of line series and touches top boundary. (not visible as this point is out of boundary)
1.jpg
1.jpg (217.33 KiB) Viewed 21648 times
However we more concerned with P1 and P2.

Now the problem is, once we change the bottom axis to Logarithmic axis line does not remains straight.
Our objective is the line should always be straight along with P1 and P2 point.
3.jpg
3.jpg (239.97 KiB) Viewed 21634 times
We are also attaching our project for more help.

Please suggest if we are doing something wrong. Any suggestion will be highly appreciated.

Thanks and Regards
Planoresearch
Attachments
S-View - Copy.rar
(20.9 KiB) Downloaded 873 times

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Mon Jan 09, 2012 1:15 pm

Hello Planoresearch,

I recommend you take a look in this link, where works with a fitting functions ans I think you can help you to achieve as you want:
http://www.teechart.net/support/viewtop ... log#p43493

On the other hand, I recommend you take a look in demo project concretely in the samples: All features\Welcome !\Functions\Extended\Fitting linearizable models.

I hope will helps.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Planoresearch
Newbie
Newbie
Posts: 57
Joined: Thu Jun 02, 2011 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Planoresearch » Thu Jan 19, 2012 12:25 pm

Hi Sandra,

Thanks for the reply, and sorry for our late feedback.

The links you provided didn’t help us much. In the links you provided, Tee-chart function is explained. While we have to do above task using Line series. As later we have to implement user interaction on this series by moving or rotating it.

It will so helpful for us if you please provide any alternative solution.

Thanks in advance.

Thanks and Regards
Planoresearch

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Mon Jan 23, 2012 11:19 am

Hello Planoresearch,

Sorry for the delay. I can find a other suggestion that I think can help you to achieve as you want in this thread.

I hope will help.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Planoresearch
Newbie
Newbie
Posts: 57
Joined: Thu Jun 02, 2011 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Planoresearch » Fri Mar 02, 2012 12:15 pm

Hi Sandra,

Thanks for the reply. I would like to apologies for late reply. Actually we have to skip this task. But now once again I am trying to get it completed.

The link you provided was little bit useful for me. I tried to complete this task by the help of this link. While doing it we are trying to get slope of the line after finding pixel position of points. When I was trying to get pixel position of two different points using the method ValuePointToScreenPoint, it returns same value for these different values. That is why we are getting zero slop and also getting some exception later. You can see it in attached project.

Please find the uploaded project for same.

Thanks in advance.
Planoresearch
Attachments
LogAxes.rar
(32.01 KiB) Downloaded 844 times

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Fri Mar 02, 2012 3:49 pm

Hello Planoresearch,

I have made a simple example that I think can help you to achieve as you want:

Code: Select all

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Steema.TeeChart.Styles;
using Steema.TeeChart.Tools;
using Steema.TeeChart;

namespace LogAxes
{
    public partial class Form1 : Form
    {
        Line m_lnHalfSlope = new Line();
        Point CentralPointPix;

        public Form1()
        {
            InitializeComponent();
            CreateChart();
        }

        private void CreateChart()
        {
            tChart1.Aspect.View3D = false;
            tChart1.Aspect.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            tChart1.Panel.Color = Color.White;
            tChart1.Panel.Gradient.Visible = false;
            tChart1.BackColor = Color.White;
            tChart1.Walls.Back.Gradient.Visible = false;
            tChart1.Axes.Left.Automatic = false;
            tChart1.Axes.Left.Logarithmic = true;
            tChart1.Axes.Bottom.Automatic = false;
            tChart1.Axes.Bottom.Logarithmic = true;
            tChart1.Walls.Back.Color = Color.White;
            tChart1.Walls.Back.Transparency = 0;
            tChart1.Legend.CustomPosition = true;
            tChart1.Chart.Panning.Allow = Steema.TeeChart.ScrollModes.None;
            tChart1.Legend.Top = 14;
            tChart1.Legend.Left = 824;
            tChart1.Legend.Visible = true;
            tChart1.Legend.LegendStyle = Steema.TeeChart.LegendStyles.Series;
            tChart1.Zoom.Allow = false;


            //Add data values. 
            List<double> XDATA = new List<double>();
            List<double> YDATA = new List<double>();
            CreateDataForHalfSlopeLine(80, 30, ref XDATA, ref YDATA);
            m_lnHalfSlope.Add(XDATA.ToArray(), YDATA.ToArray());
            m_lnHalfSlope.Title = "Half Slope Line";
            m_lnHalfSlope.Pointer.Visible = true;
            m_lnHalfSlope.Color = Color.Red;
            m_lnHalfSlope.ZOrder = 1;
            tChart1.Series.Add(m_lnHalfSlope);

            tChart1.Axes.Left.Logarithmic = true;
            tChart1.Axes.Left.Automatic = false;
            tChart1.Axes.Left.Minimum = 1;
            tChart1.Axes.Left.Maximum = m_lnHalfSlope.YValues.Maximum;

            tChart1.Axes.Bottom.Logarithmic = true;
            tChart1.Axes.Bottom.Automatic = false;
            tChart1.Axes.Bottom.Minimum = 0.0001;
            tChart1.Axes.Bottom.Maximum = m_lnHalfSlope.XValues.Maximum;

            CentralPointPix = new Point();

        }
        private void CreateDataForHalfSlopeLine(double KnownX, double KnownY, ref List<double> XDATA, ref List<double> YDATA)
        {
            tChart1.Draw();

            CentralPointPix.X = tChart1.Axes.Bottom.CalcPosValue(KnownX);
            CentralPointPix.Y = tChart1.Axes.Left.CalcPosValue(KnownY);

            PointD tmpPoint;
            tmpPoint = FindPointOfGivenIndex(0);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);

            XDATA.Add(KnownX);
            YDATA.Add(KnownY);

            tmpPoint = FindPointOfGivenIndex(2);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);
        }

        private PointD FindPointOfGivenIndex(int index)
        {
            double slope = 1;
            double alfa = Math.Atan2(1, 1 * slope);
            double alfad = (alfa * (180.0 / Math.PI)) % 360;

            PointD pointOfGiveIndex = new PointD();

            switch (index)
            {
                case 1:
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(CentralPointPix.X);
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(CentralPointPix.Y);
                    break;

                case 0:
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(Math.Max(CentralPointPix.X - (int)(Math.Abs(tChart1.Axes.Left.IEndPos - CentralPointPix.Y) / Math.Tan(alfa)), tChart1.Axes.Bottom.IStartPos));
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(Math.Min(CentralPointPix.Y + (int)(Math.Tan(alfa) * Math.Abs(CentralPointPix.X - tChart1.Axes.Bottom.IStartPos)), tChart1.Axes.Left.IEndPos));
                    break;

                case 2:
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(Math.Min(CentralPointPix.X + (int)(Math.Abs(tChart1.Axes.Left.IStartPos - CentralPointPix.Y) / Math.Tan(alfa)), tChart1.Axes.Bottom.IEndPos));
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(Math.Max(CentralPointPix.Y - (int)(Math.Tan(alfa) * Math.Abs(CentralPointPix.X - tChart1.Axes.Bottom.IEndPos)), tChart1.Axes.Left.IStartPos));
                    break;
            }
            return pointOfGiveIndex;
        }
    }
    internal class PointD
    {
        public double X, Y;
    }
As you can see in previous code I have drawn a line with two points where the Left and Bottom axes work as Logarithmic. Could you tell us, if previous code works as you expect?

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Amol
Advanced
Posts: 176
Joined: Mon May 29, 2006 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Amol » Wed Feb 20, 2013 6:16 am

Hi Sandra,

Thanks for the reply. I would like to apologies for late reply. Actually we have to skip this task. But now once again I am trying to get it completed.
The link you provided is not fruitful for us because we have a line which has Two Points P1 & P2 and from this Point we want to draw a straight line And Line must be moved with respect to P2 point if we move P1 Point and vice versa also . I have tried the movement of one point of line with resprct to another point in linear axes and I am getting success in it. Now I have tried same logic where Bottom axes of chart is set to Logarithmic now I am unable to achieve this objective. I am attaching code for Linear Axes.
Please help us to achieve the same objective in Logarithmic axes as soon as possible I will be very thankful to you

Please find the uploaded project for same.

Thanks in advance.
Planoresearch
Attachments
LogAxes.rar
(130.8 KiB) Downloaded 878 times

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Fri Feb 22, 2013 4:46 pm

Hello Amol,

I haven't forgotten you, I am working with your code to try to solve your problem and try to answer asap.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Tue Mar 05, 2013 1:05 pm

Hello Amol,

Sorry for the delay, your question is more difficult to achieve that I believed. I have made a code where works in Logarithmic axes in correct way. I think you can use the methods of my code and apply these in your code to achieve as you want:

Code: Select all

  int indexOfHalfSlopeLine = -1;
        bool isMouseDownOnHalfSlopeLine = false;
        Line m_lnHalfSlope; 
        double dSlope;
        Point CentralPointPix1, CentralPointPix2;

        public Form1()
        {
            InitializeComponent();
            m_lnHalfSlope= new Line(tChart1.Chart);
            CreateChart();
        }

        private void CreateChart()
        {
            //TChart
            tChart1.Aspect.View3D = false;
            tChart1.Aspect.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
            tChart1.Panel.Color = Color.White;
            tChart1.Panel.Gradient.Visible = false;
            tChart1.BackColor = Color.White;
            tChart1.Walls.Back.Gradient.Visible = false;
           
            tChart1.Walls.Back.Color = Color.White;
            tChart1.Walls.Back.Transparency = 0;
            tChart1.Legend.CustomPosition = true;
        //    tChart1.Chart.Panning.Allow = Steema.TeeChart.ScrollModes.None;
            tChart1.Legend.Top = 14;
            tChart1.Legend.Left = 824;
            tChart1.Legend.Visible = true;
            tChart1.Legend.LegendStyle = Steema.TeeChart.LegendStyles.Series;
            tChart1.Zoom.Allow = false;

            List<double> XDATA = new List<double>();
            List<double> YDATA = new List<double>();
            PointD p1 = new PointD();
            PointD p2 = new PointD();
       
           //Initial points value
            p1.X = 10.25;// 0.2; //25;     // set first X point of Line 
            p1.Y = 40.5;//3915.7; //35;     // set first Y point of Line 


            p2.X = 12.3;// 0.3; //40;     // set second X point of Line 
            p2.Y =  41;//3916;// 55;     // set second Y point of Line 
            //Calculate Slope
            dSlope = (p2.Y - p1.Y) / (p2.X - p1.X); 
            //Series
            m_lnHalfSlope.Add(p1.X, p1.Y);
            m_lnHalfSlope.Add(p2.X, p2.Y);

            m_lnHalfSlope.Pointer.Visible = true;
            m_lnHalfSlope.Color = Color.Red;
            m_lnHalfSlope.ZOrder = 1;

            //Initialize Axes
            //Left
            tChart1.Axes.Left.Automatic = false;
            tChart1.Axes.Left.Logarithmic = true; 
            tChart1.Axes.Left.Minimum = 10;
            tChart1.Axes.Left.Maximum = 100;
            tChart1.Axes.Left.Increment = 1;
            //Bottom
            tChart1.Axes.Bottom.Automatic = false;
            tChart1.Axes.Bottom.Logarithmic = true;
            tChart1.Axes.Bottom.Minimum = 1;
            tChart1.Axes.Bottom.Maximum = 100;
            tChart1.Axes.Left.Increment = 10;
          
            //First Draw the two initial points to calculate the axes scale
            tChart1.Draw();

            CreateDataForHalfSlopeLine(p1, p2, ref XDATA, ref YDATA);
            m_lnHalfSlope.Add(XDATA.ToArray(), YDATA.ToArray(), false); 
             m_lnHalfSlope.CheckDataSource();
            m_lnHalfSlope.RefreshSeries();
 
            //CentralPoints
            CentralPointPix1 = new Point();
            CentralPointPix2 = new Point();
            m_lnHalfSlope.Repaint();
          
            m_lnHalfSlope.GetPointerStyle += new CustomPoint.GetPointerStyleEventHandler(m_lnHalfSlope_GetPointerStyle);
            tChart1.MouseDown += new MouseEventHandler(tChart1_MouseDown);
            tChart1.MouseMove += new MouseEventHandler(tChart1_MouseMove);
            tChart1.MouseUp += new MouseEventHandler(tChart1_MouseUp);
            tChart1.Draw();
        
        }
        void m_lnHalfSlope_GetPointerStyle(CustomPoint series, GetPointerStyleEventArgs e)
        {
            switch (e.ValueIndex)
            {
                case 0:
                case 2: e.Style = PointerStyles.Rectangle;
                    break;
                case 1: e.Style = series.Pointer.Style;
                    break;
            }
        }

        private void tChart1_MouseDown(object sender, MouseEventArgs e)
        {
            indexOfHalfSlopeLine = m_lnHalfSlope.Clicked(e.X, e.Y);

            if (indexOfHalfSlopeLine != -1)
            {
                isMouseDownOnHalfSlopeLine = true;
            }
        }

        private void tChart1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDownOnHalfSlopeLine)
            {
                    CentralPointPix1.X = e.X;
                    CentralPointPix1.Y = e.Y;
                    CentralPointPix2.X = e.X ;
                    CentralPointPix2.Y = e.Y ;
                    for (int i = 0; i < m_lnHalfSlope.Count; i++)
                    {
                        PointD tmpPoint = FindPointOfGivenIndex(dSlope, i);
                        m_lnHalfSlope.XValues[i] = tmpPoint.X;
                        m_lnHalfSlope.YValues[i] = tmpPoint.Y;
                    }
               m_lnHalfSlope.Repaint();
            }
        }

        private void tChart1_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDownOnHalfSlopeLine = false;
        }
        //Populate the Line Series
        private void CreateDataForHalfSlopeLine(PointD KnownPoint1, PointD KnownPoint2, ref List<double> XDATA, ref List<double> YDATA)
        {
            tChart1.Draw();

            CentralPointPix1.X = tChart1.Axes.Bottom.CalcPosValue(KnownPoint1.X);
            CentralPointPix1.Y = tChart1.Axes.Left.CalcPosValue(KnownPoint1.Y);

            CentralPointPix2.X = tChart1.Axes.Bottom.CalcXPosValue(KnownPoint2.X);
            CentralPointPix2.Y = tChart1.Axes.Left.CalcYPosValue(KnownPoint2.Y);

            PointD tmpPoint;

            tmpPoint = FindPointOfGivenIndex(dSlope,0);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);

            tmpPoint = FindPointOfGivenIndex(dSlope, 1);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);

            tmpPoint = FindPointOfGivenIndex(dSlope, 2);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);

            tmpPoint = FindPointOfGivenIndex(dSlope,3);
            XDATA.Add(tmpPoint.X);
            YDATA.Add(tmpPoint.Y);
          
        }
        //Recalculate the points when the axes are logaritmich. 
        //This method is necessary when you work with logaritmich axes
        private PointD FindPointOfGivenIndex(double Slope,int index)
        {
           
            double alfa = Math.Atan2(1, Math.Log(Slope));// I calculate alfa using log of Slope
            double alfad = (alfa * (180.0 / Math.PI)) % 360;
            int XValue1;
            int YValue1;
            PointD pointOfGiveIndex = new PointD();

            switch (index)
            {
                case 1:
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint((int)(CentralPointPix1.X));
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint((int)(CentralPointPix1.Y));
                    break;

                case 0:
                    XValue1 = (int)(CentralPointPix1.X- Math.Abs(tChart1.Axes.Left.IEndPos - CentralPointPix1.Y) /Slope);
                    YValue1 = (int)CentralPointPix1.Y + (int)(Math.Tan(alfad) * Math.Abs(CentralPointPix1.X - tChart1.Axes.Bottom.IStartPos));
                    
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(Math.Max(XValue1, tChart1.Axes.Bottom.IStartPos));
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(Math.Min(YValue1, tChart1.Axes.Left.IEndPos));
                    break;

                case 2:
                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(CentralPointPix2.X);
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(CentralPointPix2.Y);
                    break;
                case 3: 
                    XValue1 = (int)CentralPointPix1.X + (int)(Math.Abs(tChart1.Axes.Left.IStartPos - CentralPointPix1.Y) / Slope);
                    YValue1 = (int)CentralPointPix1.Y - (int)(Math.Tan(alfad) * Math.Abs(CentralPointPix1.X - tChart1.Axes.Bottom.IEndPos));

                    pointOfGiveIndex.X = tChart1.Axes.Bottom.CalcPosPoint(Math.Min(XValue1, tChart1.Axes.Bottom.IEndPos));
                    pointOfGiveIndex.Y = tChart1.Axes.Left.CalcPosPoint(Math.Max(YValue1, tChart1.Axes.Left.IStartPos));
                    break;
            }
            return pointOfGiveIndex;
        }
        internal class PointD
        {
            public double X, Y;
        }
Could you please, tell us if my code helps you to achieve that your code works in your end? If you have any problems please let me know.

I hope will helps.

Thanks
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Amol
Advanced
Posts: 176
Joined: Mon May 29, 2006 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Amol » Thu Mar 07, 2013 1:14 pm

Hi Steema Support,
Thanks for the reply. Sorry but unfortunately the links you provided didn’t help us in any way. Actually now I am thinking that you are not understanding my requirement. I am explaining my requirement in terms of attaching snap shots I hope this will help you to get the actual points which we want in our tee chart . This will be a semi log chart(Only one axes of the chart would be Logarithmic) means bottom axes of the chart will be Logarithmic & Left axes of the chart would not be logarithmic and where I want to move P1 Point with respect to P2 Point and as vice versa( means where want to move P2 Point with respect to P1 )I am easily achieving these objective in non Logarithmic axes but as soon as I used Logarithmic axes I am unable to do this .For Your Help & Better understanding I am attaching following Snap Shot .
a1.png
a1.png (28.94 KiB) Viewed 21146 times
a2.png
a2.png (39.11 KiB) Viewed 21151 times
A3.png
A3.png (30.79 KiB) Viewed 21154 times
It will so helpful for us if you please provide any alternative solution.

Thanks in advance.

Thanks and Regards
Planoresearch

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Tue Mar 12, 2013 4:08 pm

Hello Amol,

I haven't forgotten you, but your problem seems are more complex as I thinking. We will try to answer you asap.

Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Amol
Advanced
Posts: 176
Joined: Mon May 29, 2006 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Amol » Wed Mar 13, 2013 11:52 am

Hi Steema Support,

Thanks for the reply. For your convenience, now I am also attaching one video related to movement of Points of Line in Semi Log axes. I hope this will help you more to understand my problem in right way.

Thanks & Regards
Plano Research
Attachments
Log_Video.rar
(351.29 KiB) Downloaded 861 times

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: Problem coverting in Logarithmic axes

Post by Sandra » Thu Mar 14, 2013 4:31 pm

Hello Amol,

Many thanks for your explanations, these have served us to understand your problems, we have been working with your project to try achieve as you want, but we haven't achieved for you a good solution, because the complexity of your requirement, is very high and isn't directly a problem of TeeChart. We detected that in your project, when work with semi-logarithmic chart there is a problem of concept or operation that increase the understanding the calculations and return a not correct result to consequence of incorrect calculations, but isn't a TeeChart.Net behavior problem, so, this works in correct way. Therefore, we can't provide you a stable solution for your, sorry. My recommendation, is you review all the suggestions code we give you to calculate a straight line in a semi-logarithmic chart and apply this concept in your project using the two central moving points.


Thanks,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Post Reply