algorithm - Is there any other way to calculate X value in coords of other coord system? -
sorry, weird topic name, don't know how else name it. 
the problem is.. have zedgraph control. there lines drawn inside.
i have coords of left border of chart area , right border of chart area.
i draw vertical lines pictureboxes on zedgraph control, moves in different coords. vertical lines can moved left , right.
that way trying x value in coords of xaxis:
public double get_x_incontextofchart(int left_coord_of_border) //left of vertical line {     //zed_graph.graphpane.xaxis.scale.min minimal x value shown on xaxis     //zed_graph.graphpane.chart.rect.left left of yaxis     //same else if, aside of using right , maximum x @ right     if (zed_graph.graphpane.xaxis.scale.min != 0) //to avoid division 0         return (left_coord_of_border * zed_graph.graphpane.xaxis.scale.min) / zed_graph.graphpane.chart.rect.left;     else if (zed_graph.graphpane.xaxis.scale.max != 0)         return (left_coord_of_border * zed_graph.graphpane.xaxis.scale.max) / zed_graph.graphpane.chart.rect.right;      return double.nan; } this code calculate x fine long else if used, in example calculate wrong.
i hope understand this.
updated new code:
public double get_x_incontextofchart(int left_coord_of_border) {    double scale_left = zed_graph.graphpane.xaxis.scale.min;    double scale_right = zed_graph.graphpane.xaxis.scale.max;    double graph_width = zed_graph.graphpane.chart.rect.width;    double x = left_coord_of_border;     return scale_left + (scale_right - scale_left) / graph_width * x; } result: 
scale_left = -0.1 scale_right = 0.9 graph_width = 540 // pixels x = 190           // pixels  scale_x = scale_left + (scale_right - scale_left) / graph_width * x  // 0.25 
Comments
Post a Comment