![](/img/trans.png)
[英]javascript find 3rd point of 45-45-90 triangle given 2 points
[英]How to find 3rd point of equilateral triangle from two points at any angle in JavaScript?
对于等边三角形的特定情况,一种更简单的方法。 幻数是sqrt(3)/2=cos(60)
,所以表达式等同于你的。
function third(p1, p2) {
const x = (p1.x + p2.x)/2 - 0.8660254 * (p1.y - p2.y);
const y = (p1.y + p2.y)/2 + 0.8660254 * (p1.x - p2.x);
return { x, y };
}
(也许应该交换 0.866 之前的 +/- 以获得顶点所需的边)
您可以使用三角学中的已知方程将等边三角形旋转 60 度,从而计算出第 3 个点。 所以这也是关于如何将一点旋转另一点的答案。 它之所以为人所知,是因为它是您在高中解析几何 class 中学过的东西:
该代码使用 JavaScript,我在这里回答是因为我无法找到答案。
function deg2rad(deg) {
return deg * Math.PI / 180;
}
function rotate(p1, p2, angle) {
const a = deg2rad(angle);
const x = (p1.x - p2.x) * Math.cos(a) - (p1.y - p2.y) * Math.sin(a) + p2.x;
const y = (p1.x - p2.x) * Math.sin(a) + (p1.y - p2.y) * Math.cos(a) + p2.y;
return { x, y };
}
const point_c = rotate(point_a, point_b, 60);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.