确定将弧转换为线段所需的点数

Determine the amount of points needed to convert an arc to line segments

本文关键字:段所需 转换      更新时间:2023-10-16

弧由start_point、sweeping_angle和center_point定义。如果给定一个参数"公差",即原始弧和线段之间的误差。如何计算将此弧转换为线段所需的最小点数?

角θ的小弧与其弦之间的最大偏差在中间,这个偏差的值是(versine(

tol = R * (1-Cos(theta/2))

具有 N 个弧

SweepAngle = N * theta
theta = SweepAngle / N
tol = R * (1-Cos(SweepAngle / (2N)))
tol/R = (1-Cos(SweepAngle / (2N)))
Cos(SweepAngle / (2N)) = 1 - tol/R 
SweepAngle / (2N) = ArcCos(1 - tol/R )
N = 1/2 * SweepAngle / ArcCos(1 - tol/R )

快速检查:

SweepAngle = Pi
R = 1
tol = 1 - sqrt(2)/2 ~ 0.293
N = Pi/2 / ArcCos(0.707) = (Pi/2) / (Pi/4) = 2