gpt4 book ai didi

delphi - 如何用线段创建二维圆弧的近似值?

转载 作者:行者123 更新时间:2023-12-03 15:29:48 27 4
gpt4 key购买 nike

我有一个由线段和圆弧组成的多段线轮廓,我想将其挤出到棱镜。

由于我的挤出函数仅支持直边多边形,因此我需要使用线段来近似圆弧。

圆弧通过起点、中心点和扫角 (CCW) 定义。

我需要显示的扫角范围为 <10° 到 179.9°,半径范围为 0.3 毫米到 300 毫米。

我目前计算了许多弧顶点来计算,并以一种原始的方式将它们添加到我的多边形中:我只是在给定弧长度的每一毫米上放置一个顶点。虽然这种方法有效,但对于半径大、扫角小的圆弧来说,效率似乎非常低。

必须有一种算法可以为各种弧生成良好的近似值。如果有的话,我想知道一些关键字来缩小我的谷歌搜索范围。

最佳答案

如果圆弧的扫角为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 ))

关于delphi - 如何用线段创建二维圆弧的近似值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com