找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 747|回复: 10

[求助] [求助][1205]请问关于此程序点与点判断象限方法?

[复制链接]
发表于 2005-12-5 17:41:25 | 显示全部楼层 |阅读模式

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

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

×
[求助][1205]请问关于此程序点与点判断象限方法?
请问各位高手此程序有哪些问题.
想做两点位置象限判断的程序.
(defun c:xy ()
(setq p1 (getpoint "\n point-1:"))
(setq p2 (getpoint "\n point-2:"))
(setq x1 (rtos (car p1))
(setq y1 (rtos (cadr p1))
(setq x2 (rtos (car p2))
(setq y2 (rtos (cadr p2))
(if (< x1 x2)
(if (and (< x1 x2)(< y1 y2 ))(PRINC "2-Ⅱ"))
(if (and (< x1 x2)(< y1 y2 ))(PRINC "3-Ⅲ"))
(if (and (< x1 x2)(< y1 y2 ))(PRINC "4-Ⅳ"))
(< y1 y2 ))(PRINC "1-Ⅰ")
nil )
(princ))
烦请各位高手可以帮忙解答一下
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-12-5 21:32:00 | 显示全部楼层

Re: [求助][1205]请问关于此程序点与点判断象限方法?

最初由 xyz518mm 发布
[B][求助][1205]请问关于此程序点与点判断象限方法?
请问各位高手此程序有哪些问题.
想做两点位置象限判断的程序.
(defun c:xy ()
(setq p1 (getpoint "\n point-1:"))
(setq p2 (getpoint "\n point-2:"))
(setq... [/B]


不太明白楼主的意思.判断象限,应该是将X,Y值与0比较啊.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-5 22:07:30 | 显示全部楼层
小弟的意思是想让两个点位置做比较判断
并回应出讯息
不知道这样解释清楚吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 09:01:02 | 显示全部楼层
  1. [FONT=courier new]
  2. (defun c:xy ()
  3.   (setq        p1  (getpoint "\n point-1 : ")
  4.         p2  (getpoint p1 "\n point-2 : ")
  5.         ang (* (/ (angle p1 p2) pi) 180)
  6.   )
  7.   (cond        ((and (>= ang 0) (< ang 90)) (PRINC "1-Ⅰ"))
  8.         ((and (>= ang 90) (< ang 180)) (PRINC "2-Ⅱ"))
  9.         ((and (>= ang 180) (< ang 270)) (PRINC "3-Ⅲ"))
  10.         ((and (>= ang 270) (<= ang 360)) (PRINC "4-Ⅳ"))
  11.   )
  12.   (princ)
  13. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 09:13:10 | 显示全部楼层
:)
楼主的程序错漏甚多,希望把题目稍微讲清楚一些
是第一点为原点或是第二点
坐标象限是笛卡儿坐标或者是地球物理坐标
这样才好改一些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 09:42:47 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE]
(defun c:xy ()
  (setq        p1  (getpoint "\n point-1 : ")
        p2  (getpoint p1 "\n point-2 : ")
        ang (* (/ (angle p1 p2) pi) 180)
  )
  (cond        ((and (>= ang 0) (< ang 90)) (PRIN... [/B]


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

使用道具 举报

发表于 2005-12-6 12:31:57 | 显示全部楼层
最初由 tctabc 发布
[B][请教版主用 cond 判断
跟用if判断
有何差异性? [/B]

自己看看其区别:
  1. [FONT=courier new](defun c:xy ()
  2.   (setq        p1  (getpoint "\n point-1 : ")
  3.         p2  (getpoint p1 "\n point-2 : ")
  4.         ang (* (/ (angle p1 p2) pi) 180)
  5.   )
  6.   (if(and (>= ang 0) (< ang 90)) (PRINC "1-Ⅰ"))
  7.   (if(and (>= ang 90) (< ang 180)) (PRINC "2-Ⅱ"))
  8.   (if(and (>= ang 180) (< ang 270)) (PRINC "3-Ⅲ"))
  9.   (if(and (>= ang 270) (<= ang 360)) (PRINC "4-Ⅳ"))
  10.   (princ)
  11. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-6 18:37:49 | 显示全部楼层
感谢XYP版主的解答
小弟的另一方法

(defun c:xy ()
(setq p1 (getpoint "\n point-1:"))
(setq p2 (getpoint p1 "\n point-2:"))
(setq ang (* (/ (angle p1 p2) pi) 180))
(setq dd (DISTANCE p1 p2))

(setq x1 (rtos (car p1)))
(setq y1 (rtos (cadr p1)))
(setq x2 (rtos (car p2)))
(setq y2 (rtos (cadr p2)))

(if (and (< x1 x2)(< y1 y2 ))(PRINC "1-Ⅰ" ))
(if (and (> x1 x2)(< y1 y2 ))(PRINC "2-Ⅱ" ))
(if (and (> x1 x2)(> y1 y2 ))(PRINC "3-Ⅲ" ))
(if (and (< x1 x2)(< y1 y2 ))(PRINC "4-Ⅳ" ))
  (princ)
)

另请问关于 PRINC 函数可以显示数值及字串资料吗?

如:(if (and (< x1 x2)(< y1 y2 ))(PRINC "1-Ⅰ" (rtos dd 2 8 )" ,"

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2005-12-6 22:33:08 | 显示全部楼层

  1. (defun pt-at(pt po)
  2. ;;po原点 pt为测试点
  3. (fix ( / (angle po pt)(/ pi 2)))
  4. )


  1. ;;测试
  2. (defun c:test( / po p2)
  3. (if(setq po(getpoint "\n原点:  "))
  4.   (while (and(setq p2(getpoint po"\n测试点: "))
  5.                   (not(equal po p2 0.001))
  6.            )
  7.          (princ (strcat "\n在" (itoa(pt-at p2 po)) "象限."))
  8.   )
  9. )(princ)
  10. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-8 08:09:08 | 显示全部楼层
aeo版主真是利害
可以在精简吗?
另外象限判断
可以比照上面的吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-8 12:50:50 | 显示全部楼层
还能怎么精简?已经很精简了阿
习惯上是1~4象限
(defun pt-at(pt po)
;;po原点 pt为测试点
(1+(fix ( / (angle po pt)(/ pi 2))))
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 22:00 , Processed in 0.206213 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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