jzc1993 2021-07-17 23:58 采纳率: 0%
浏览 73

知道多个线段的坐标、斜率或弧线曲率,如何通过代码输出首尾相连的闭合曲线坐标

如下面所示,在制图软件中已知有如下(图一)14个线段,包含直线,斜线,弧线,如何通过算法代码,使其收尾相连成封闭图形如(图二),代码需要将代码一的数据,转换成代码二的目标数据。

需求解决方案或者提供思路!

图一:原始线段组
img

图二:目标封闭图形

img

代码一:原始线段数据:


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) 
  • 写回答

1条回答 默认 最新

  • CSDN专家-Time 2021-07-18 08:32
    关注

    那就得把各线段的端点获取出来。得到直线。
    然后将直线的解析式与相邻的线段进行相交。得到交点。
    将线段延长至端点处。

    评论

报告相同问题?

问题事件

  • 修改了问题 7月18日
  • 创建了问题 7月17日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题