yjr111 发表于 2013-2-8 14:32:32

你添加把文字和矩形删掉的代码就行了,plst才是你想要的,不是吗?

mono 发表于 2013-3-1 17:19:06

好玩,顶下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

llsheng_73 发表于 2013-10-22 23:40:51

按说你这不应该很难才对,因为你给出了对角点也就是第一点和第二点,那么接下来你需要的排序实际上就变成了在余下的另两个点中找出一个来和第一、第三点成顺时针方向,也可以随便取一点看是否成顺时针,成了就是第二点,否则另一点成第二点。程序就不想写了,个人认为把思路简单化了,程序自己就能写出来了,希望这个小建议有点用

edata 发表于 2013-10-23 15:56:25

对于顶来来的帖子,觉得院长的演示很有意思,自己写个。;;测试程序
(defun c:tt(/ p1 p2 ltlst)
(if (setq p1 (getpoint "\n指定第一点: "))
    (if (setq p3(getcorner p1 "\n指定对角"))
      (progn
        (setq ptlst(sk_spts p1 p3))
        (entmake (list '(0 . "TEXT")(cons 72 1)(cons 73 2) (cons 1 "1")(cons 11 (car ptlst)) (cons 10 (car ptlst)) (cons 40 (/ (distance p1 p3) 10))))
        (entmake (list '(0 . "TEXT")(cons 72 1)(cons 73 2) (cons 1 "2")(cons 11 (cadr ptlst)) (cons 10 (cadr ptlst)) (cons 40 (/ (distance p1 p3) 10))))
        (entmake (list '(0 . "TEXT")(cons 72 1)(cons 73 2) (cons 1 "3")(cons 11 (caddr ptlst)) (cons 10 (caddr ptlst)) (cons 40 (/ (distance p1 p3) 10))))
        (entmake (list '(0 . "TEXT")(cons 72 1)(cons 73 2) (cons 1 "4")(cons 11 (caddr(cdr ptlst))) (cons 10 (caddr(cdr ptlst))) (cons 40 (/ (distance p1 p3) 10))
                        ))
        (entmake (append(list'(0 . "LWPOLYLINE") '(100 . "AcDbEntity")'(100 . "AcDbPolyline")
                     (cons 90 (length ptlst))
                     (cons 70 1))
                   (mapcar '(lambda (pt)(cons 10 pt)) ptlst )))
        )
      )
    )
(princ)
)

;;对角点计算函数,返回4个角点点表,起点为第一点,顺时针方向.
(defun sk_spts(p1 p3 / p2 p4 ptlst)
(if(or (and (< (car p1)(car p3))(>(cadr p1)(cadr p3)))
             (and (> (car p1)(car p3))(<(cadr p1)(cadr p3)))
             )
          (progn
          (setq p2(list (car p3) (cadr p1) 0)
                  p4(list (car p1) (cadr p3) 0)
                  )
          )
          (progn
          (setq p2(list (car p1) (cadr p3) 0)
                  p4(list (car p3) (cadr p1) 0)
                  )
          )
          )
(setq ptlst(list p1 p2 p3 p4))
ptlst
)
       

newbuser 发表于 2014-12-15 16:36:14

edata 发表于 2013-10-23 15:56 static/image/common/back.gif
对于顶来来的帖子,觉得院长的演示很有意思,自己写个。


那要是这种情况又该怎么处理呢?
页: 1 [2]
查看完整版本: 想请指点一下,定了4个点,想它始终由p1点为起点顺时排序