明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: kwok

想请指点一下,定了4个点,想它始终由p1点为起点顺时排序

  [复制链接]
发表于 2013-2-8 14:32:32 | 显示全部楼层
你添加把文字和矩形删掉的代码就行了,plst才是你想要的,不是吗?
发表于 2013-3-1 17:19:06 | 显示全部楼层
好玩,顶下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2013-10-22 23:40:51 | 显示全部楼层
按说你这不应该很难才对,因为你给出了对角点也就是第一点和第二点,那么接下来你需要的排序实际上就变成了在余下的另两个点中找出一个来和第一、第三点成顺时针方向,也可以随便取一点看是否成顺时针,成了就是第二点,否则另一点成第二点。程序就不想写了,个人认为把思路简单化了,程序自己就能写出来了,希望这个小建议有点用
发表于 2013-10-23 15:56:25 | 显示全部楼层
对于顶来来的帖子,觉得院长的演示很有意思,自己写个。
  1. ;;测试程序
  2. (defun c:tt(/ p1 p2 ltlst)
  3.   (if (setq p1 (getpoint "\n指定第一点: "))
  4.     (if (setq p3(getcorner p1 "\n指定对角"))
  5.       (progn
  6.         (setq ptlst(sk_spts p1 p3))
  7.         (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))))
  8.         (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))))
  9.         (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))))
  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))
  11.                         ))
  12.         (entmake (append(list'(0 . "LWPOLYLINE") '(100 . "AcDbEntity")'(100 . "AcDbPolyline")
  13.                      (cons 90 (length ptlst))
  14.                      (cons 70 1))
  15.                    (mapcar '(lambda (pt)(cons 10 pt)) ptlst )))
  16.         )
  17.       )
  18.     )
  19.   (princ)
  20.   )

  21. ;;对角点计算函数,返回4个角点点表,起点为第一点,顺时针方向.
  22. (defun sk_spts(p1 p3 / p2 p4 ptlst)
  23.   (if(or (and (< (car p1)(car p3))(>(cadr p1)(cadr p3)))
  24.                (and (> (car p1)(car p3))(<(cadr p1)(cadr p3)))
  25.                )
  26.           (progn
  27.             (setq p2(list (car p3) (cadr p1) 0)
  28.                   p4(list (car p1) (cadr p3) 0)
  29.                   )
  30.             )
  31.           (progn
  32.             (setq p2(list (car p1) (cadr p3) 0)
  33.                   p4(list (car p3) (cadr p1) 0)
  34.                   )
  35.             )
  36.           )
  37.   (setq ptlst(list p1 p2 p3 p4))
  38.   ptlst
  39.   )
  40.        
  41.   
发表于 2014-12-15 16:36:14 | 显示全部楼层
edata 发表于 2013-10-23 15:56
对于顶来来的帖子,觉得院长的演示很有意思,自己写个。


那要是这种情况又该怎么处理呢?

本帖子中包含更多资源

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

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-22 23:02 , Processed in 0.195126 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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