找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 727|回复: 0

[日积月累]:计算地形图中某范围内的现状高程

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-5-17 15:37:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×



  1. 过三点的空间平面方程

  2. | x -x1 y -y1 z -z1 |
  3. | x2-x1 y2-y1 z2-z1 | = 0
  4. | x3-x1 y3-y1 z3-z1 |

  5. 根据拾取地形图中的高程数字计算三角形内点的高程;;

  6. 声明:
  7.      1 本程序需在WCS下执行;
  8.      2 高程算法可能与其它软件计算的不同

  9. |;
  10. (defun c:test ( /    t1         t2   t3   elst1     elst2     elst3         h1
  11.                h2   h3         p1   p3   p3        x1   x2          x3   y1   y2         y3
  12.                P    a         b    c           d
  13.               )
  14.   (if (and (setq t1 (entsel "\nFirst text: "))
  15.            (setq t2 (entsel "\nSencond text: "))
  16.            (setq t3 (entsel "\nThird text: "))
  17.            (setq p (getpoint "\nTest point: "))
  18.       )
  19.     (progn
  20.       (setq elst1 (entget (car t1))
  21.             elst2 (entget (car t2))
  22.             elst3 (entget (car t3))
  23.             h1          (atof (cdr (assoc 1 elst1)))
  24.             h2          (atof (cdr (assoc 1 elst2)))
  25.             h3          (atof (cdr (assoc 1 elst3)))
  26.             p1          (trans (cdr (assoc 10 elst1)) 1 0)
  27.             p2          (trans (cdr (assoc 10 elst2)) 1 0)
  28.             p3          (trans (cdr (assoc 10 elst3)) 1 0)
  29.             x1          (- (car p2) (car p1))       
  30.             x2          (- (car p3) (car p1))       
  31.             y1          (- (cadr p2) (cadr p1))
  32.             y2          (- (cadr p3) (cadr p1))
  33.             z1          (- h2 h1)               
  34.             z2          (- h3 h1)               
  35.             p (trans p 1 0)
  36.       )
  37.       (setq a (- (* y1 z2) (* y2 z1))
  38.             b (- (* z1 x2) (* x1 z2))
  39.             c (- (* y2 x1) (* y1 x2))
  40.             d (- (+ (* (car p1) a)
  41.                     (* (cadr p1) b)
  42.                     (* (last p1) c)
  43.                  )
  44.               )
  45.       )
  46.     )
  47.   )
  48.   (- (/  (+ (* a (car p)) (* b (cadr p)) d) c))
  49. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 17:26 , Processed in 0.163863 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表