如何用直线段创建一个2维圆弧的近似?

5
我有一个由线段和圆弧组成的多段轮廓线,我想将其拉伸成棱柱体。
由于我的拉伸函数仅支持直边多边形,因此我需要使用线段来近似表示圆弧。
这些圆弧是通过起点、中心点和扫描角(逆时针)来定义的。
我需要显示的扫描角度范围从<10°到179.9°,半径范围从0.3毫米到300毫米。
目前,我计算了一些圆弧顶点,并以原始方式将它们添加到我的多边形中:我只在给定圆弧长度的每个毫米上放置一个顶点。虽然这样可以工作,但对于半径大而扫描角小的圆弧来说,效率似乎非常低下。
肯定有一种算法可以为所有类型的圆弧生成良好的近似值。如果有的话,我想知道一些关键词以缩小我的搜索范围。
1个回答

4

如果一条弧的扫描角度为a,半径为r,则具有相同端点的弦与弧之间的最大距离为r *(1-cos(a / 2))。 如果您通过在其上放置n个等间距点来细分此弧,那么弧与分段线之间的最大距离将为r *(1-cos(a /(2 *(n + 1))))。

因此,如果您想使最大距离保持在E以下,则可以沿着弧放置n个新点,其中n的选择使得n + 1>= a /(2 * acos(1-E / r))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接