提问人:Tomas Javurek 提问时间:10/17/2023 最后编辑:Tomas Javurek 更新时间:10/17/2023 访问量:72
如何在javascript中获取等边三角形边上的一组点的坐标?
How to get coordinates of a set of points on the sides of equilateral triangle in javascript?
问:
我有一个等边三角形。我知道中心(S)、所有顶点(A、B、C)的坐标和圆半径(r)的长度。如何获得位于三角形边 (a) 的可变点数 [X1, X2, X3, ...] 的坐标均匀分布(例如,彼此之间的距离相同)?有没有公式?
答:
1赞
Konrad
10/17/2023
#1
您可以使用向量来做到这一点
// calculating A, B, C, you can ignore that part
const a = 1
const h = a * Math.sqrt(3) / 2
const R = 2 / 3 * h
const A = { x: 0, y: R }
const B = { x: -a / 2, y: h / 3 }
const C = { x: a / 2, y: h / 3 }
console.log('A=', A, 'B=', B, 'C=', C)
// number of points on each side
const parts = 3
const sides = [[A, B], [B, C], [C, A]]
const points = []
for (const [f, s] of sides) {
// for each side calculate a vector (e.g. A -> B)
const v = { x: s.x - f.x, y: s.y - f.y }
for (let i = 1; i <= parts; i += 1) {
// calculate position of each points
// e.g. (A + ABvector * 1/3)
const p = { x: f.x + v.x / parts * i, y: f.y + v.y / parts / i }
points.push(p)
}
}
console.log('points=', points)
下一个:根据数字获取蓝色阴影
评论
(eg. 8)
evenly distributed