确定将弧转换为线段所需的点数
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
相关文章:
- cmake在我的项目中所需的所有静态库都不成功
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 函数如何使用引用返回所需的数字?
- 为什么 std::lerp 不适用于任何已实现所需操作的类型?
- 确定将弧转换为线段所需的点数
- 不理解为什么代码没有产生所需的答案
- MINGW - 正确运行函数所需的 cdecl
- 如何包装一个函数以适应另一个函数的所需类型
- 变量是否会自动转换为函数所需的类型作为适当的参数
- 将 C 代码移植到C++,将 void* 从 malloc 转换为所需指针的问题
- 警告:从 'char *' 到 'float *' 的强制转换将所需的对齐从 1 增加到 4 [-Wcast-align]
- FlatC是否验证了给定JSON的FlatBuffer模式所需的字段
- decltype 所需的不完整类型的派生到基数转换
- 在c++中,基于模板函数中所需类型进行转换的标准方法是什么
- 是否正在缩小诊断所需的非类型模板参数中的转换范围
- 将std::string转换为GDI+参数所需的const WCHAR*字符串
- 为什么这段代码没有输出所需的输出?
- 使用C++样式转换以所需的精度执行表达式的正确方法是什么
- 如何度量一段代码执行所需的时间
- 通过隐式转换返回时所需的复制构造函数