繁体   English   中英

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

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

弧由 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM