我的问题多边形(或其部分)的圆形近似
的简短描述我需要实现从G1指示GCODE autorefactoring为3D打印G2和G3(http://www.cnccookbook.com/CCCNCGCodeArcsG02G03.htm)。
G1是一个与印刷的直线运动(路径由向量描述)。
我正在寻找algorytm aproxymate圆/弧(特别是它的中点)基于给定的矢量路径。 请注意,G2和G3不能打印不是圆的一部分的曲线 - 因此,不是每个矢量路径都可以用这种方式近似。我的问题
我在寻找办法来近似矢量路径的一部分(或全部)
详细说明(可以是正多边形,它还是inregular多边形部分的部分)由圆(弧)。首先,让我们重点关注修正多边形。
在图中我画了这个问题的不同情况。 注意:每个多边形都是由矢量构建的(就像在点5中一样)。
- 对完整x-gon的近似值。
- 逼近的一部分的X边形,其中一个侧是不同
- 近似X边形,其中两个侧边的每个是不同的,但彼此相等
- 近似X边形,其中两个边是不同(甚至没有部分X-GOM,所有边都相等
这不是故事的EOD除外)不等于
- 圆的起点/终点必须位于矢量路径的开始/结束处。
- 我需要知道圈子的中点。
解决方案,我发现(好的和坏的):
1)和5) - 我简单的解决方案
这是最简单的情况。我可以统计每个共享一个opint的各方之间的半径。如果他们有相同的长度和相等的角度,我可以计算圆的中点(属于垂直中线的点,每边一条中线),我有我需要的一切:起点,终点,中点,点。
但是这种解决方案只适用于情况1和5。
我真的没有IDE当我有病例2,3,4或inregural多边形的一部分
将案例2到4转到案例5中,方法是找到所有短边,然后将它们拉伸至与最长边相同。 – Kevin 2014-12-02 13:35:19
我不能改变开始/结束点...这是痛苦。 – 2014-12-02 13:50:06
它必须是一种非常奇怪的编程语言,您不能修改对象的值或创建修改后的副本。 – Kevin 2014-12-02 13:55:30