明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3722|回复: 19

[基础] 如何判段两线段是否平行

  [复制链接]
发表于 2011-4-29 22:18:00 | 显示全部楼层 |阅读模式
本帖最后由 lead009 于 2011-4-29 22:19 编辑

我想要判断两个线段是否平行原本想用以下副程式去做斜率的判断
  (defun tanxy(en / );;斜率
    (setq data(entget en));;en需是x物件
    (setq p10(cdr (assoc 10 data)))
    (setq p11(cdr (assoc 11 data)))
    (setq x(- (car p11) (car p10)))
    (setq y(- (cadr p11) (cadr p10)))
    (setq tanxx(/ x y))
  )


但是后来想到同样的角度,起点、终点不同,斜率就会有正负之分。
如此一来,即便是相同角度的线段,也会被判断为不同角度的。

请问这家,这个问题,有什么方法可以解决??


(另外问个小问题, 这个论坛能设定说,有人回履就会传电子信箱邮件通知吗??)
发表于 2011-4-29 22:34:06 | 显示全部楼层
(equal
  (rem (angle pa pb) Pi) ; ent1
  (rem (angle pc pd) Pi ) ; ent2
  1e-4
)
;; 359.9..... 度的情况得另外处理
发表于 2011-4-29 22:44:47 | 显示全部楼层
Andyhon 发表于 2011-4-29 22:34
(equal
  (rem (angle pa pb) Pi) ; ent1
  (rem (angle pc pd) Pi ) ; ent2

请教1e-4是什么意思?
发表于 2011-4-29 23:02:11 | 显示全部楼层
回复 chpmould 的帖子

科学计数法,可以用下面的方法理解:
1E-4 就是小数点向前位移4位-------〉0.0001
1E+4 就是小数点向后位移4位-------〉10000
5E+2------〉500
发表于 2011-4-29 23:15:20 | 显示全部楼层
(not (inters pt1 pt2 pt3 pt4 nil))也行
但angle的算法更快
 楼主| 发表于 2011-4-30 10:09:42 | 显示全部楼层
有没有什么方式,可以把我计算出来的斜率,全部都转为正值。
就像是数学里面的绝对值那样呢?

如此,即便是起点、终点相反,这样也不会有相同角度,却判断为不同角度的问题发生了。
发表于 2011-4-30 10:12:07 | 显示全部楼层
直线的斜率好象只有一个。是两个坐标差的比值。
发表于 2011-4-30 10:59:29 | 显示全部楼层
(defun C:TT (/ E1 E2 A1 A2 ANG)
(if (and (setq E1 (entsel "\n选择第一条直线: "))
         (setq E2 (entsel "\n选择第二条直线: ")))
(progn
(setq E1  (entget (car E1))
      E2  (entget (car E2))
      A1  (angle (cdr (assoc 10 E1))
                 (cdr (assoc 11 E1))
          )
      A2  (angle (cdr (assoc 10 E2))
                 (cdr (assoc 11 E2))
          )
      ANG (abs (- A1 A2))
)
(if (or (equal ANG 0 1E-4)
        (equal ANG PI 1E-4)
        (equal ANG (* PI 2) 1E-4))
  (alert "两直线平行。")
))))
发表于 2011-4-30 11:06:54 | 显示全部楼层
学习了,做个记号
 楼主| 发表于 2011-4-30 19:59:45 | 显示全部楼层
回复 lenlenq 的帖子

同樣45度,第一象限跟第三象限不就差了一個負號嗎

m=x/y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-1 08:54 , Processed in 0.164958 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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