gpt4 book ai didi

已知所有边, Angular 和前两个点时查找三 Angular 形第三点的Javascript函数

转载 作者:行者123 更新时间:2023-11-30 11:12:08 24 4
gpt4 key购买 nike

之前有人问过这个问题,但是我没有找到令人满意的答案,所以我将尝试确保这是主题并产生一些好的回应。

这个问题不应该在 maths.stackexchange 上,因为它是关于完成我在下面开始的功能所需的 Javascript 代码。

想象一下下面的三 Angular 形。

Labeled triangle

每个点 A、B 和 C 都有 x 和 y 坐标,我们知道这些坐标代表 Ax、Ay、Cx 和 Cy。我们还知道a、b、c的长度和A、B、C的 Angular 。

我想编写一个 Javascript 函数来计算 B 点的 x 和 y 坐标,但我真的很难将我读过的数学转换为 Javascript。

这是我要编写的函数的开头:

/**
* Find the coordinates for the third point of a triangle.
*
* @param Ax - x coordinate value of first known point
* @param Ay - y coordinate value of first known point
* @param Cx - x coordinate value of second known point
* @param Cy - y coordinate value of second known point
* @param a - the length of side a
* @param b - the length of side b
* @param c - the length of side c
* @param A - the angle of corner A in degrees
* @param B - the angle of corner B in degrees
* @param C - the angle of corner C in degrees
* @returns {{Bx: *, By: *}}
*/
function calculate_third_point(Ax, Ay, Cx, Cy, a, b, c, A, B, C) {

var Bx;
var By;

// What code goes here?

return {Bx: Bx, By: By};
}

有一个closed question on stackoverflow here ,但是接受的答案似乎只返回一个值 P3。但是我们需要第三个点的 x 和 y 值,所以我不明白。

a question on maths.stackexchange但是公认的答案似乎使用了不知从何而来的 P 和 Q,而且数学符号使事情更难理解。没有明确定义的输入和输出。

a javascript solution here但它没有考虑前两点的 x 和 y 坐标。

有人可以帮助我完成我的功能吗?解决方案必须只使用提供的输入。如果不需要任何输入,它们可能会被丢弃。

最佳答案

使用矢量旋转的众多变体之一(不要忘记弧度和度数)

 Arad = A * Math.pi/180; //degrees to radians

//unit vector
uACx = (Cx - Ax) / b;
uACy = (Cy - Ay) / b;

//rotated vector
uABx = uACx * Math.cos(Arad) - uACy * Math.sin(Arad);
uABy = uACx * Math.sin(Arad) + uACy * Math.cos(Arad);

//B position uses length of edge
Bx = Ax + c * uABx;
By = Ay + c * uABy;

//vector rotated into another direction
uABx = uACx * Math.cos(Arad) + uACy * Math.sin(Arad);
uABy = - uACx * Math.sin(Arad) + uACy * Math.cos(Arad);

//second possible position
Bx = Ax + c * uABx;
By = Ay + c * uABy;

关于已知所有边, Angular 和前两个点时查找三 Angular 形第三点的Javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53277245/

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