如何获取一条线上所有点的位置 WP8.1 Silverlight c#
How to get the locations of all the points on a line WP8.1 Silverlight c#
我在 canvas 上画一条线,给它一个起点和终点。现在我想获取该线每个点的 X 和 Y 位置。我该怎么做?
Line line = new Line();
line.Visibility = System.Windows.Visibility.Visible;
line.StrokeThickness =1;
line.X1 = x[1];
line.X2 = y[1];
line.Y1 = x[i-1]/4;
line.Y2 = y[i - 1] / 4;
MyIP.Children.Add(line);
这是简单的数学运算。您知道直线的起点和终点,这意味着您可以使用直线方程计算该直线上的任何点。得到方程式的方法是
y = y1 + [(y2 - y1) / (x2 - x1)] * (x - x1)
你知道 2 个点:(x1, y1) 和 (x2, y2)
最后你会得到
形式的东西
y = Ax + B
这意味着对于每个 x,您都可以计算出 y,因为 A 和 B 是常数。
所以你可以简单地遍历所有的 x 值,并按你想要或需要的任何粒度递增,以获得适当的 y 值,你最终会得到一组 (x, y) 值
for (double i = x1; i <= x2; i+=0.2)
{
var x = i;
var y = (A*x)+B;
// now you have one pair of x, y
}
我在 canvas 上画一条线,给它一个起点和终点。现在我想获取该线每个点的 X 和 Y 位置。我该怎么做?
Line line = new Line();
line.Visibility = System.Windows.Visibility.Visible;
line.StrokeThickness =1;
line.X1 = x[1];
line.X2 = y[1];
line.Y1 = x[i-1]/4;
line.Y2 = y[i - 1] / 4;
MyIP.Children.Add(line);
这是简单的数学运算。您知道直线的起点和终点,这意味着您可以使用直线方程计算该直线上的任何点。得到方程式的方法是
y = y1 + [(y2 - y1) / (x2 - x1)] * (x - x1)
你知道 2 个点:(x1, y1) 和 (x2, y2)
最后你会得到
形式的东西y = Ax + B
这意味着对于每个 x,您都可以计算出 y,因为 A 和 B 是常数。
所以你可以简单地遍历所有的 x 值,并按你想要或需要的任何粒度递增,以获得适当的 y 值,你最终会得到一组 (x, y) 值
for (double i = x1; i <= x2; i+=0.2)
{
var x = i;
var y = (A*x)+B;
// now you have one pair of x, y
}