【发布时间】:2014-12-02 14:25:17
【问题描述】:
我已经走了很远,但有些东西似乎不起作用。
A = 50.88259382849774,6.003988087177277
B = 50.88269282423443,6.0036662220954895
C = 50.882530369581545,6.003847271203995
C 坐标与 90 度线 (x) 有点偏离,我制作的这个函数应该将 C 定位在最接近 x 线的位置。
this.snapCoords = function(a, b, c){
var result = (b.x-a.x)*(c.x-b.x)+(b.y-a.y)*(c.y-b.y);
var negative = false;
if(result < 0){
result = result*-1;
negative = true;
}
result = Math.sqrt(result);
result = result/2;
if(negative === false){
var d = {x: c.x+result, y: c.y-result};
}
else{
var d = {x: c.x-result, y: c.y+result};
}
console.log(d); // returns : 50.88246729610898,6.003910344676565
}
它确实获得了 90 度 (x) 线,但不是最接近的方式。我的函数肯定还是有问题,但我想不通。
编辑:
这是我的问题
我的函数将第三个坐标放在 C 上,它是 90 度,但不是它应该在的位置(红点)它以某种方式延伸到更远的点。
【问题讨论】:
-
到底是什么问题?
-
您的问题是:为什么“返回 : 50.882467..., 6.003910344... 不同于 C=50.882430369..., 6.00384727... 以上?这很可能是数字问题(特别是如果您使用浮点数而不是双精度数)。
-
这正是我的问题。顺便说一句,我编辑了我的问题。
-
我认为只知道A、B、C点(上图标注)是无法推断出红点的位置的。如果你有梯形上第 4 个点的位置,那么你可以。
-
你当然可以推断出红点所在的直线,但不能推断出它与B的距离。
标签: javascript math coordinates coordinate-systems