乐筑天下

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

[编程交流] 【讨论】AutoCAD曲线宝石

[复制链接]

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 08:55:08 | 显示全部楼层 |阅读模式
我想取一条AutoCAD曲线(多段线)&计算其近似的总平均斜率。附件是到目前为止我的代码
 
  1. (defun weightedAverageSlopeOfCurve (<obj>)
  2. ;Some function variables  
  3. (setq chainage 0.0 interval 0.1 tempList nil orig (list 0 0 0 ) maxIterations (fix 1e5) average 0.0)
  4. (setq startChainage (vlax-curve-getDistAtParam <obj> (vlax-curve-getStartParam <obj>))
  5. endChainage  (vlax-curve-getDistAtParam <obj> (vlax-curve-getEndParam <obj>))
  6. )
  7. ;Define the length of the curve
  8. (setq curveLength (-  endChainage startChainage  )
  9. chainage  startChainage)
  10. ;Caclulate the number of iterations
  11. (setq iterations (fix (/ curveLength interval)))
  12. ;;Take some loading off the CPU if too many iterations required. Revert to maxIterations
  13. (if
  14.    (> iterations maxIterations)
  15.    (setq interval (/ curveLength maxIterations) iterations maxIterations)
  16.    )
  17. (repeat iterations
  18.    (setq dy/dx (vlax-curve-getFirstDeriv <obj> (vlax-curve-getParamAtDist <obj> chainage))
  19.   slope (angle orig dy/dx))
  20.    (setq average (+ average (/ slope iterations)))
  21.    (setq chainage (+ chainage interval))
  22.    
  23.    )
  24. average
  25. )

 
 
 
有人对另一种方法的方法或建议有什么想法吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:15:37 | 显示全部楼层
你的问题是,平均坡度是多少?post示例
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 09:29:11 | 显示全部楼层
 
嗨,比格尔,
 
很抱歉没能早点回来。我会尽量澄清一点,平均斜率可能是用错了词。
 
 
以一条AutoCAD曲线(本例中为多段线)为例,我感兴趣的是确定从多段线的起点到终点的平均矢量。
 
我最初的想法是将曲线分解为一系列段,计算每个段的坡度,然后计算出总平均坡度/矢量
 
当做
 
杰米
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 09:32:37 | 显示全部楼层
弧的平均值不是中点处的切斜率吗?
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:52:43 | 显示全部楼层
甚至是连接起点和终点的线
 
然而,向量会随着路径的变化而变化,它们从起点开始,然后到达终点。
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 10:04:10 | 显示全部楼层
@比加尔我没有考虑过。我必须做一点测试,看看我是否/如何能够将其合并。
 
@eldon这是我的想法,向量沿着曲线的长度变化。曲线的每一段都对曲线的总体平均值具有权重。
 
也许以下方法可行?
 
  1. 1.    Determine the number of curve segements                          (n)
  2. 2.    Find the tangent @ each mid segment                         (m)
  3. 3.    Find length of that segment                                      (l)
  4. 4.    Determine the magnitude of the vector (l*m)                 (s)
  5. 5.    Add all the results & divide by total length of curve

 
谢谢你的帮助
 
杰米
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 06:14 , Processed in 0.331470 second(s), 64 queries .

© 2020-2025 乐筑天下

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