计算给定线性曲线的总长度,忽略弯曲
Calculate Total Length of Given linear Curves ignoring Bends
我想通过忽略弯曲来计算线性(直线)的总长度。
注意:弯曲角度为90度。
我有一个解决方案,但需要以最佳方式解决,否则欢迎使用任何公式。
当前解决方案:
- 计算所有直线的端点。
- 与直线相交得到虚拟交点。
- 然后计算每条直线起点与虚拟交点的点间距离
- 将所有长度相加。
不太清楚做了什么?图片?线段和圆弧描述?
在任何情况下 - 水平线将从上一条垂直线的 Y 坐标开始,并在下一条垂直线的 Y 坐标结束。
反之亦然 - 垂直线将从前一条水平线的 X 坐标开始,到下一条水平线的 X 坐标结束。
所以结果是
Sum(Abs(X(i+2) - X(i))) + //over horizontal lines
Sum(Abs(Y(k+2) - Y(k))) + //over vertical lines
two end differences
大家不要嫌弃,我看不出有什么难处。
L = L1 + 2 R1 + L2 + 2 R2 + L3.
请注意,确切的长度(不忽略弯曲)是
L = L1 + π/2 R1 + L2 + π/2 R2 + L3.
我想通过忽略弯曲来计算线性(直线)的总长度。 注意:弯曲角度为90度。
我有一个解决方案,但需要以最佳方式解决,否则欢迎使用任何公式。
当前解决方案:
- 计算所有直线的端点。
- 与直线相交得到虚拟交点。
- 然后计算每条直线起点与虚拟交点的点间距离
- 将所有长度相加。
不太清楚做了什么?图片?线段和圆弧描述?
在任何情况下 - 水平线将从上一条垂直线的 Y 坐标开始,并在下一条垂直线的 Y 坐标结束。
反之亦然 - 垂直线将从前一条水平线的 X 坐标开始,到下一条水平线的 X 坐标结束。
所以结果是
Sum(Abs(X(i+2) - X(i))) + //over horizontal lines
Sum(Abs(Y(k+2) - Y(k))) + //over vertical lines
two end differences
大家不要嫌弃,我看不出有什么难处。
L = L1 + 2 R1 + L2 + 2 R2 + L3.
请注意,确切的长度(不忽略弯曲)是
L = L1 + π/2 R1 + L2 + π/2 R2 + L3.