如下面所示,在制图软件中已知有如下(图一)14个线段,包含直线,斜线,弧线,如何通过算法代码,使其收尾相连成封闭图形如(图二),代码需要将代码一的数据,转换成代码二的目标数据。
需求解决方案或者提供思路!
图一:原始线段组
图二:目标封闭图形
代码一:原始线段数据:
LISTING: 14 element(s)
Item 1 < VERTICAL LINE SEGMENT >
https://img-mid.csdnimg.cn/release/static/image/mid/ask/316890835626163.png)
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4 MM
segment:xy (40.5000 -6.0000) xy (40.5000 -10.0000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 2 < ARC SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 1.5708 MM
arc seg:xy (40.5000 -10.5000) xy (41.5000 -11.5000) width (0.0000) font (Solid)
center-xy: (41.5000 -10.5000) radius (1.0000) CCW
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 3 < HORIZONTAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4 MM
segment:xy (42.5000 -11.5000) xy (46.5000 -11.5000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 4 < VERTICAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 2.5 MM
segment:xy (40.5000 -4.2500) xy (40.5000 -1.7500) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 5 < ODD-ANGLE LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4.0001 MM
Normalize angle: 45.000 degrees
Delta xy: (-2.8285 -2.8285)
segment:xy (43.9143 2.4143) xy (41.0858 -0.4142) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 6 < HORIZONTAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 5 MM
segment:xy (44.5000 2.5000) xy (49.5000 2.5000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 7 < VERTICAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4 MM
segment:xy (47.5000 -6.5000) xy (47.5000 -10.5000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 8 < VERTICAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4.5 MM
segment:xy (53.0000 -6.5000) xy (53.0000 -11.0000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 9 < HORIZONTAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 2.5 MM
segment:xy (49.5000 -6.0000) xy (52.0000 -6.0000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 10 < HORIZONTAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4.5 MM
segment:xy (51.0000 2.5000) xy (55.5000 2.5000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 11 < HORIZONTAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 5 MM
segment:xy (59.5000 -11.5000) xy (54.5000 -11.5000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 12 < ODD-ANGLE LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 3.5355 MM
Normalize angle: 45.000 degrees
Delta xy: (-2.5000 -2.5000)
segment:xy (62.5000 -8.5000) xy (60.0000 -11.0000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 13 < ODD-ANGLE LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 4.8088 MM
Normalize angle: 62.103 degrees
Delta xy: (4.2500 -2.2500)
segment:xy (57.7500 2.2500) xy (62.0000 0.0000) width (0.0000) font (Solid)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Item 14 < VERTICAL LINE SEGMENT >
class BOARD GEOMETRY
subclass DXFTOP
Segment length: 5 MM
segment:xy (62.5000 -2.0000) xy (62.5000 -7.0000) width (0.0000) font (Solid)
~ ~ ~ ~ ~ ~ ~end-of-file~ ~ ~ ~ ~ ~ ~
代码二:目标图形数据:
LISTING: 1 element(s)
< SHAPE >
class BOARD GEOMETRY
subclass DXFTOP
Shape is solid filled
Area: 2.59691 (sq cm)
Exterior boundary:
segment:xy (51.0000 2.5000) xy (44.0000 2.5000) width (0.0000)
segment:xy (44.0000 2.5000) xy (40.5000 -1.0000) width (0.0000)
segment:xy (40.5000 -1.0000) xy (40.5000 -6.0000) width (0.0000)
segment:xy (40.5000 -6.0000) xy (40.5000 -10.5000) width (0.0000)
arc seg:xy (40.5000 -10.5000) xy (41.5000 -11.5000) width (0.0000)
center-xy: (41.5000 -10.5000) radius (1.0000) CCW
segment:xy (41.5000 -11.5000) xy (47.5000 -11.5000) width (0.0000)
segment:xy (47.5000 -11.5000) xy (47.5000 -6.0000) width (0.0000)
segment:xy (47.5000 -6.0000) xy (53.0000 -6.0000) width (0.0000)
segment:xy (53.0000 -6.0000) xy (53.0000 -11.5000) width (0.0000)
segment:xy (53.0000 -11.5000) xy (59.5000 -11.5000) width (0.0000)
segment:xy (59.5000 -11.5000) xy (62.5000 -8.5000) width (0.0000)
segment:xy (62.5000 -8.5000) xy (62.5000 -0.2647) width (0.0000)
segment:xy (62.5000 -0.2647) xy (57.2778 2.5000) width (0.0000)
segment:xy (57.2778 2.5000) xy (51.0000 2.5000) width (0.0000)