[英]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.