找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 743|回复: 10

(测试)[[编程申请]:如何在两条已赋值的等高线间内插4条等高线

[复制链接]

已领礼包: 39个

财富等级: 招财进宝

发表于 2003-6-8 10:50:39 | 显示全部楼层 |阅读模式

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

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

×
如已赋值的两条等高线分别为1250和1255,如何在两条之间内插1251、1252、1253、1254这四条等高线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-6-8 10:56:46 | 显示全部楼层

Re: [编程申请]:如何在两条已赋值的等高线间内插4条等高线

最初由 lsy 发布
[B]如已赋值的两条等高线分别为1250和1255,如何在两条之间内插1251、1252、1253、1254这四条等高线 [/B]


你贴个图吧, 由于不是该专业,很多操作不理解, 你详细说下内插的原则和方法.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 39个

财富等级: 招财进宝

 楼主| 发表于 2003-6-8 11:15:19 | 显示全部楼层
原则就是在两条已赋值的等高线和内插的四条线,它们间距在每一段上大致相等,(由于已赋值的两条线它们的间距在每一段都不是相等的,如果是相等的就可以用偏移功能)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 11:23:37 | 显示全部楼层
我来贴个图吧,就是在40米线和45米线间求41、42、43、44米线
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-8 11:31:26 | 显示全部楼层
最初由 lsy 发布
[B]原则就是在两条已赋值的等高线和内插的四条线,它们间距在每一段上大致相等,(由于已赋值的两条线它们的间距在每一段都不是相等的,如果是相等的就可以用偏移功能) [/B]

是图中的要求吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 39个

财富等级: 招财进宝

 楼主| 发表于 2003-6-8 12:42:25 | 显示全部楼层
对,大概就是象那种,不过红色的线每条都需大致垂直其它条
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-9 18:52:34 | 显示全部楼层
最初由 lsy 发布
[B]对,大概就是象那种,不过红色的线每条都需大致垂直其它条 [/B]

抛砖引玉,写了个简单的。

  1. ;;本程序仅能完成简单的等高线插值
  2. ;; 1 曲线的方向必须一致,如果出错请先对其中的一个曲线使用用工具箱的曲线反向 ;
  3. ;; 2 程序对曲线的凹凸比较大的处理结果未知,自行测试;
  4. ;; 程序中的模拟段数默认100等分,可以根据曲线的长短自行设置 $xdtb_globle_divnum
  5. (if (not $xdtb_globle_divnum)
  6.   (setq $xdtb_globle_divnum 100.)
  7. )
  8. (defun c:XDTB_InsCU (/  ll e1 e2 v tf plst pl $two_point_divideby)
  9.   (defun $two_point_divideby (pl1 pl2 n / pl pl0 c plst)
  10.     (if        (= (length pl1) (length pl2))
  11.       (progn
  12.         (setq pl (mapcar '(lambda (x y) (list x y)) pl1 pl2))
  13.         (setq
  14.           pl0 (mapcar
  15.                 '(lambda (x / p1 p2 dis ang pt ptl)
  16.                    (setq p1 (car x)
  17.                          p2 (cadr x)
  18.                    )
  19.                    (setq dis (/ (distance p1 p2) n)
  20.                          ang (angle p1 p2)
  21.                    )
  22.                    (repeat (1- n)
  23.                      (if ptl
  24.                        (setq ptl
  25.                               (append (list (setq pt (polar p1 ang dis)))
  26.                                       ptl
  27.                               )
  28.                        )
  29.                        (setq ptl (list (setq pt (polar p1 ang dis))))
  30.                      )
  31.                      (setq p1 pt)
  32.                    )
  33.                    ptl
  34.                  )
  35.                 pl
  36.               )
  37.         )
  38.       )
  39.     )
  40.     (setq c    0
  41.           plst '()
  42.     )
  43.     (repeat (length (car pl0))
  44.       (if plst
  45.         (setq plst
  46.                (append (list (mapcar '(lambda (x) (nth c x)) pl0)) plst)
  47.         )
  48.         (setq plst (list (mapcar '(lambda (x) (nth c x)) pl0)))
  49.       )
  50.       (setq c (1+ c))
  51.     )
  52.     plst
  53.   )
  54.   (xdrx_begin)
  55.   (xdrx_ucson)
  56.   (xdrx_sysvar_push "osmode")
  57.   (setvar "dimzin" 0)
  58.   (setq ll '((0 . "*line,arc")))
  59.   (setq e1 (xdrx_entsel "\n选择第一条曲线: "))
  60.   (setq e2 (xdrx_entsel "\n选择第二条曲线: "))
  61.   (setq v (getint "\n均分段数: "))
  62.   (if (and e1 e2)
  63.     (progn
  64.       (if
  65.         (= (car (xdrx_object_classname (car e1)))
  66.            (car (xdrx_object_classname (car e2)))
  67.            "LINE"
  68.         )
  69.          (setq tf t)
  70.       )
  71.       (setq plst (mapcar '(lambda (x)
  72.                             (xdrx_getpointatdist
  73.                               x
  74.                               (if tf
  75.                                 (cadr (xdrx_getarea x))
  76.                                 (/ (cadr (xdrx_getarea x))
  77.                                    $xdtb_globle_divnum
  78.                                 )
  79.                               )
  80.                             )
  81.                           )
  82.                          (list (car e1) (car e2))
  83.                  )
  84.       )
  85.       (setvar "osmode" 0)
  86.       (setq pl ($two_point_divideby (car plst) (cadr plst) v))
  87.       (foreach x pl
  88.         (apply 'command (cons ".pline" x))
  89.         (command)
  90.       )
  91.     )
  92.   )
  93.   (xdrx_sysvar_pop)
  94.   (xdrx_ucsoff)
  95.   (xdrx_end)
  96.   (princ)
  97. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-11 10:31:22 | 显示全部楼层
这个工具对水利水电也很有用,赶紧收藏!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 39个

财富等级: 招财进宝

 楼主| 发表于 2003-6-15 19:18:10 | 显示全部楼层
上面的程序只能在中间画出几条直线来,而不能画出曲线来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-16 05:13:27 | 显示全部楼层
简单的曲线也可以的。这个功能主要为某些局部插入等高线而设计的,太长或复杂的线当然不行。另外使用时要注意两条线的方向。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-19 16:32:57 | 显示全部楼层
考虑曲线就太好了,我们经常用到,太感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 17:37 , Processed in 0.412455 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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