树櫴希德 发表于 2014-5-13 21:38:41

GZXL优化一下下吧

llsheng_73 发表于 2014-5-14 19:09:37

看来测量的都需要这个好东东,但又纠结于一些地方,看了下大概反应最多的是等高线间插入点的时候的速度问题,觉得主要是楼主为了保证所求高程值的准确性组成了三角网数据,而这个组网过程及原始高程数据的取得可能会因为等高线的拟合问题导致数据量巨大,所以速度上不去
个人觉得如果能根据当前视图范围内要求高程的位置来确定一个范围来构建三角网,这样需要处理的数据就不会很多,虽然会随着插入高程的位置变化需要重新构建三角网,但整体速度差不多。
另外,是否可以考虑适当降低准确性(在等高线间插入高程点时,能确保不出错,大致差不多就行了)
高程点和等高线不要完全分开,有的地方不需要绘制等高线只有高程点,这就会有个结合部
是后对楼主的构建三角网相当感兴趣,学习了,或者说直接拿去用了,谢谢楼主

树櫴希德 发表于 2014-5-14 20:28:00

addgcsjw生成三角网点表?参数看不懂啊,哥

树櫴希德 发表于 2014-5-15 09:51:15

根据图面高程内插的不足之处,黄色点为错误的

树櫴希德 发表于 2014-5-15 14:55:33

树櫴希德 发表于 2014-5-15 09:51 static/image/common/back.gif
根据图面高程内插的不足之处,黄色点为错误的

大哥只需把程序稍稍修改,增加一个根据图面三角网(POLYLINE-3DPOLY)加密高程就行了

树櫴希德 发表于 2014-5-15 17:21:58

树櫴希德 发表于 2014-5-15 14:55 static/image/common/back.gif
大哥只需把程序稍稍修改,增加一个根据图面三角网(POLYLINE-3DPOLY)加密高程就行了

;;;;;;;;;三维多段线输出到点表
(defun c:t6 (/ fff ssa cm en ii no wjm)
(gc)
    (setq cm (getvar "cmdecho"))
    (setvar "cmdecho" 0)
    ;(setq wjm (getfiled "请指定要保存的坐标文件" "e:\\" "txt" 1))
       ;(setq fff (open wjm "w"))
       (setq ssa (ssget '((0 . "POLYLINE"))))
                (setq ii   0
                      no0
                  )
                  (repeat (sslength ssa)
                     (setq en (ssname ssa ii)
                            ptb (vxs en)
                          pzx (append pzx (list ptb))
                             ii(1+ ii)               )
                   ; (setq pzx (list (car pt) (cadr pt) (caddr pt)))

                  )
;(write-line (strcat pzx) fff)
               ; (close fff)
                  ;(princ (strcat "\n坐标已存入\"" wjm "\"中"))

    (setvar "cmdecho" cm)
    (princ)
)
;[功能] pline,lwpline点坐标表By 无痕;;示例(vxs (car (entsel))),返回三维点坐标
(defun vxs (e / i v lst)
(setq i 0)
(while
    (setq v (vlax-curve-getpointatparam e (setq i (1+ i))))
   (setq lst (cons v lst))
)
(reverse lst)


)


;(setq entall (mapcar '(lambda (x) (+ 0 x)) sjwlst))

;!sjwlst (((49996.2 17703.5 6.0) (49988.6 17712.0 52.0) (49977.3 17699.8
;2.0)) ((49988.6 17712.0 52.0) (49973.5 17711.0 52.0) (49977.3 17699.8 2.0)))
;(setq entall (mapcar '(lambda (x y z) (strcat x "\t" y "\t" z)) ent1 ent2 ent3))

树櫴希德 发表于 2014-5-15 17:23:02

!pzx
(((49919.3 17547.4 7.519) (49914.9 17556.5 7.432) (49923.8 17562.3 6.899))
((49923.8 17562.3 6.899) (49919.3 17547.4 7.519) (49929.5 17550.2 6.618))
((49929.5 17550.2 6.618) (49923.8 17562.3 6.899) (49933.1 17566.9 5.527)))

sdaulj 发表于 2014-5-26 10:15:16

此帖不错,最近正在搞这个,希望能交流

zzyong00 发表于 2014-5-27 22:02:03

构三角网算法,一点注释没有啊,想转成其它语言(VB),难啊

qunaihan 发表于 2014-8-29 11:36:31

很给力!很需要!谢谢!
页: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18
查看完整版本: 高程点内插程序(已更新)