如何在JavaScript中计算等边三角形边上均匀分布点的坐标?
等边三角形边上均匀分布点的坐标计算方法

已知等边三角形的中心(S)、三个顶点(A、B、C)和内切圆半径r,要在各边上生成间距相等的均匀分布点,核心方法是利用线段线性插值,具体步骤和公式如下:
一、单条边的均匀点生成
等边三角形的每条边都是线段,均匀分布点本质是对边的两个端点做等分插值——若已知顶点坐标,无需用到中心S;内切圆半径r仅在需要反推边长时使用,已知顶点的话可直接跳过边长计算。
1. 边长与内切圆半径的关系(可选)
等边三角形边长L和内切圆半径r的换算公式:
L = 2 * r * sqrt(3)
三条边长度完全相等,即L_AB = L_BC = L_CA = L
2. 插值公式生成点
假设要在边AB上生成k个中间点(不含A、B顶点),需将AB分为k+1等份,每份间距d = L_AB/(k+1)。
对第i个中间点X_i(i=1,2,...,k),坐标计算公式:
X_i.x = A.x + (i/(k+1)) * (B.x - A.x) X_i.y = A.y + (i/(k+1)) * (B.y - A.y)
若需要包含顶点,只需将i的范围扩展为0到k+1(i=0对应A点,i=k+1对应B点)。
二、扩展到三条边
按上述方法分别处理三条边:
- 边BC:用B、C的坐标代入插值公式
- 边CA:用C、A的坐标代入插值公式
三、全局等间距(所有边上的点含顶点间距一致)
若要求所有边上的点(含顶点)彼此间距相等,步骤如下:
- 计算总周长
P = 3 * L - 设总点数为
N(含3个顶点),则间距d = P/(N-1) - 每条边上的点数(含两端顶点)为
(L/d) + 1,因等边三角形边长相等,三条边的点数完全相同,再用插值公式生成对应点即可。
内容的提问来源于stack exchange,提问作者Tomas Javurek
相关产品推荐
相关产品推荐

