我想通过到第一个点的距离来计算一条线上的点。 因为我没有新点的任何坐标,所以我无法使用线性插值...... 我是这样想的: Example Drawing (抱歉,我是新用户,不可以发图片)
但实际上不行,所以请你帮忙。
下面是java中的实际代码:
public static PointDouble interpolationByDistance(Line l, double d) {
double x1 = l.p1.x, x2 = l.p2.x;
double y1 = l.p1.y, y2 = l.p2.y;
double ratioP = ratioLine_x_To_y(l);
double disP = l.p1.distance(l.p2);
double ratioDis = d / disP;
PointDouble pn = l.p2.getLocation();
pn.multi(ratioDis);
System.out.println("dis: " + d);
System.out.println("new point dis: " + l.p1.distance(pn));
return pn;
}
谢谢。
最佳答案
作为一名程序员,您应该喜欢将问题更改为您已经解决的问题。找到比率,然后使用线性插值:
public static PointDouble interpolationByDistance(Line l, double d) {
double len = l.p1.distance(l.p2);
double ratio = d/len;
double x = ratio*l.p2.x + (1.0 - ratio)*l.p1.x;
double y = ratio*l.p2.y + (1.0 - ratio)*l.p1.y;
System.out.println(x + ", " + y);
...
}
关于java - 线上的点到第一个点的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343105/