求助怎么实现cad多边形顶点从左上角顺时针重排序
求助怎么实现cad多边形顶点从左上角顺时针重排序http://bbs.mjtd.com/thread-168501-1-1.html
看看我发的贴 ;;以指定起点逆时针重新排列多段线
;;参数1:点表、凸度表((点 凸度)(点 凸度)(点 凸度)……)
;;参数2:起点索引号
;;参数3:是否反向T为反向nil不反
(defun qidiansort (lss nn clock)
(if clock (setq nn (1+ nn)))
(setq lss(try-SortList lss nn))
(if clock
(setq lss (reverse lss)
lss(try-SortList(cadr(setq lssx(try-Array-Matrix lss)))1);将凸度倒退一步
lss(mapcar '- lss)
lss2(car lssx)
lss(try-Array-Matrix (list lss2 lss))
)
)
lss
)
;; 以表内指定序号为首重新排序
;;(try-SortList 任意表 序号(零基)
;;参数:任意表
;; (try-SortList '(1 2 3 4 5 6 7 8 9 10) 4)
;; →(5 6 7 8 9 10 1 2 3 4)
(defun try-SortList(lst sub / lists n pt_list retun)
(setq lists '())
(setq n (length lst))
(repeat n
(setq lists(cons (nth sub lst) lists))
(setq sub(1+ sub))
(if(= sub n)(setq sub 0))
)
(reverse lists)
)
;; SortList 以表内指定序号为首重新排序 (SortList 表 序号(零基))
;; (SortList '(1 2 3 4 5 6 7 8 9 10) 4) → '(5 6 7 8 9 10 1 2 3 4)
(defun SortList (lst sub)
(setq lst (xyp-List-Div lst sub)
lst (append (cdr lst) (list (car lst)))
lst (apply 'append lst)
)
)
;;矩阵互换
;(try-Array-one2n'((0 1 2 3 4)(5 6 7 8 9)(a b c d e))))
; <->'((0 5 a)(1 6 b)(2 7 c)(3 8 d)(4 9 e))
(defun try-Array-Matrix(lst)(apply 'mapcar (cons 'list lst)))
借花献佛这样就好做了吧,坐标点排序找到坐上点坐标,然后重绘多线段
这个程序怎样运行,快捷键是什么? 这些正是需要的,非常感谢。
页:
[1]