gpt4 book ai didi

javascript - 寻找最近的 90 度 Angular 点

转载 作者:行者123 更新时间:2023-12-03 11:17:57 26 4
gpt4 key购买 nike

我已经走了很远,但有些东西似乎不起作用。

enter image description here

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) 线,但不是最接近的方式。我的函数肯定仍然有问题,但我无法弄清楚。

编辑:

这就是我的问题

enter image description here

我的函数将第三个坐标放在 C 上,该坐标为 90 度,但不是它应该在的位置(红点),它以某种方式延伸到更远的点。

最佳答案

我认为OP正在尝试将点C投影到经过点B并垂直于线AB的线上。如果是这种情况,则投影的数学计算不正确。可以找到投影点D为

D= C - 点(vec(BC), vec(AB)) * vec(AB)/|vec(AB)|^2

通过此计算,投影点 D 将为 (50.8825952820492, 6.00363622113846)。

以下是A、B、C、D点的图片:
Pict1

关于javascript - 寻找最近的 90 度 Angular 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com