How to transform viewport coordinate to polar coordinate ?


https://www.nevron.com/Forum/Topic12998.aspx
Print Topic | Close Window

By CHANGMIN KIM - 4 Years Ago
Hi Team,

I want to convert coordinates from the control perspective to coordinates from the chart perspective.
I know how to do this with cartesian chart, but I have no idea on how to do this with polar chart.

to be more specific,

NCartesianChart chart1 = new NCartesianChart();
nChartControl.Charts.Add(chart1);
NPolarChart chart2 = new NPolarChart();
nChartControl.Charts.Add(chart2);

...

// I know how to do this
NVector2DD ViewToCartesianScale(in MouseEventArgs e)
{
    NViewToScale2DTransformation view2Scale =
        new NViewToScale2DTransformation(chart1,
        (int)StandardAxis.PrimaryX, (int)StandardAxis.PrimaryY);
    NVector2DD cartesianCoord = new NVector2DD();
    view2Scale.Transform(new NPointF(e.X, e.Y), ref cartesianCoord);
    return cartesianCoord;
}

// I want to know
void ViewToPolarScale(in MouseEventArgs e, out double angle, out double radius)
{
    ??
}


Thanks,,
By Nevron Support - 4 Years Ago
Hi Changmin,
The following code shows how to transform from view to polar coordinate:

   NPolarChart polarChart = (NPolarChart)nChartControl1.Charts[0];
    NPointF modelPoint = polarChart.TransformViewToRadialModel(new Nevron.GraphicsCore.NPointF(e.X, e.Y));

    double value = polarChart.Axis(StandardAxis.PolarAngle).Scale.Ruler.ScaleToLogical(modelPoint.X);
    double angle = polarChart.Axis(StandardAxis.Polar).Scale.Ruler.ScaleToLogical(modelPoint.Y);

We hope this helps - let us know if you have any questions.