Hello!
I would like to draw line from floating points to composite chart in FillSceneGraph method. Is it possible and how I can do it?
Example (drawing line from integer points):
private void ultraChart1_FillSceneGraph(object sender, Infragistics.UltraChart.Shared.Events.FillSceneGraphEventArgs e)
{
//gets the X and Y axis
IAdvanceAxis x = (IAdvanceAxis)e.Grid["X"];
IAdvanceAxis y = (IAdvanceAxis)e.Grid["Y"];
//checks if axis exist
if (x != null)
//figures out the coordinate to draw
//a line at y=100
int target = 100;
int yVal = (int)y.Map(target);
//note: the x axis is a string axis
//that means that 0 stands for the first
//column and 50 stands for the 50th
//column
int xStart = (int)x.Map(0);
int xEnd = (int)x.Map(50);
//creates the line primitive based
//on the coordinates
Line l = new Line(new Point(xStart, yVal), new Point(xEnd, yVal));
//sets the color of the line
l.PE.Stroke = Color.Red;
//adds it to the scene
e.SceneGraph.Add(l);
}
it's not possible, because the chart SceneGraph is based on pixel coordinates. you can, however, handle the chart's Paint event and use the e.Graphics.DrawLine method ... that accepts PointFs as arguments. but i think the display will just round these points to the nearest pixel, anyway.
why do you want to use floating point coordinates?
edit: you could also use a Path primitive (Infragistics.UltraChart.Core.Primitives.Path), and use its GraphicsPath property to host a GraphicsPath object. The GraphicsPath.AddLine method also allows floating point arguments.