乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: bhargav1987

[编程交流] 多段线上的线

[复制链接]

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 11:59:18 | 显示全部楼层
我还没能回答我的其他问题。哦,好吧。处理更为紧迫的问题。很好的一天。
 
注意:如图所示,在另一条线上画一条线不是很好的绘图实践。
回复

使用道具 举报

3

主题

25

帖子

22

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:02:41 | 显示全部楼层
我不明白你在说什么。。
事实上,我想要的是,如图所示,如果可能的话,点击一条线,在上面画另一条线。。它会帮我很多。。。
 
请告诉我可能性
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:08:43 | 显示全部楼层
如果是关于一条线,可以使用下面的代码来获得他的中点;对于多段线,将非常详细:
 
  1. Point1st = MyLine.StartPoint
  2. Point2nd = MyLine.EndPoint
  3. theAngle = MyLine.Angle
  4. ReDim Point3rd(2)
  5. Point3rd(0) = 0.5 * (Point1st(0) + Point2nd(0))   'X
  6. Point3rd(1) = 0.5 * (Point1st(1) + Point2nd(1))   'Y
  7. Point3rd(2) = 0.5 * (Point1st(2) + Point2nd(2))   'Z

 
当做
回复

使用道具 举报

3

主题

25

帖子

22

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:14:30 | 显示全部楼层
感谢您的回复。。。
但我想在折线上做。。。。
vb u只给出了中点对吗??
但我实际上想要的是在一条多段线上画一条特定长度的线,保持一定距离。。。
请帮我做这个
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 12:15:06 | 显示全部楼层
假设有两个顶点的XoY多段线:
 
  1. PlineVertexes = MyPLine.Coordinates
  2. DeltaX = PlineVertexes(3) - PlineVertexes(0)   'displacement on X
  3. DeltaY = PlineVertexes(4) - PlineVertexes(5)   'displacement on Y
  4. If DeltaX = 0 Then
  5.    theAngle = 0.5 * pi                        '90 degrees
  6. Else
  7.    theAngle = Atn(DeltaY / DeltaX)            'polyline's angle
  8. End If
  9. ReDim Point3rd(2)                              'middle point
  10. Point3rd(0) = 0.5 * (PlineVertexes(3) + PlineVertexes(0))   'X
  11. Point3rd(1) = 0.5 * (PlineVertexes(4) + PlineVertexes(5))   'Y
  12. Point3rd(2) = 0#                                            'Z
  13. 'calculate new angle by adding or subtracting 90 degrees
  14. NewAngle = theAngle + 0.5 * pi                 'LEFT side
  15. 'NewAngle = theAngle - 0.5 * pi                 'RIGHT side
  16. 'calculate the new point at arbitrary distance (1 unit)
  17. NewDistance = 1
  18. ReDim Point4th(2)                              'new point
  19. Point4th(0) = Point3rd(0) + NewDistance * Cos(NewAngle)
  20. Point4th(1) = Point3rd(1) + NewDistance * Sin(NewAngle)
  21. Point4th(2) = 0#
  22. ThisDrawing.ModelSpace.AddLine Point3rd, Point4th

 
当做
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 11:24 , Processed in 0.356455 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表