明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3048|回复: 12

[源码] 判断一个点是否在两点构成的矩形内

  [复制链接]
发表于 2017-10-6 21:05 | 显示全部楼层 |阅读模式
  1. ;; 判断一个点是否在两点构成的矩形内
  2. (defun P-in-box-P (p p1 p2)
  3.   (and
  4.     (<= (min (car p1) (car p2)) (car p) (max (car p1) (car p2)))
  5.     (<=        (min (cadr p1) (cadr p2))
  6.         (cadr p)
  7.         (max (cadr p1) (cadr p2))
  8.     )
  9.   )
  10. )
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2017-10-7 09:50 | 显示全部楼层
我好像也写过这个
  1.         (defun lg-isPtinPM  (a a1x a1y a2x a2y / ax ay)
  2.                 (setq ax (car a) ay (cadr a))
  3.                 (and
  4.                         (or (<= a1x ax a2x) (<= a2x ax a1x))
  5.                         (or (<= a1y ay a2y) (<= a2y ay a1y)))
  6.         )
发表于 2021-2-6 23:37 | 显示全部楼层
;;;;;菜卷鱼 点是否在 boundingbox里
(defun iboxp (p p1 p2)
  (or
    (and
      (<= 0 (angle p1 p) (* 0.5 pi))
      (<= pi (angle p2 p) (* 1.5 pi))
    )
    (and
      (<=  0 (angle p2 p) (* 0.5 pi))
      (<=  pi (angle p1 p) (* 1.5 pi))
    )
  )
)

评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 很给力!

查看全部评分

发表于 2021-2-7 19:07 | 显示全部楼层
;;理论上可以这样写,实际运用要加一些判断
(defun TEST (P1 P2 P)
  (setq P1 (list (car P1) (cadr P1)))
  (apply 'and (mapcar '(lambda (A B) (< 0 (/ A B) 1)) (mapcar '- P P1) (mapcar '- P2 P1)))
)
发表于 2017-10-6 21:14 | 显示全部楼层
黄总描述有问题,两点怎么构成矩形
 楼主| 发表于 2017-10-6 21:40 | 显示全部楼层
先由两角点构成矩形,然后再判断点是否在矩形内
发表于 2017-10-7 09:51 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
发表于 2017-10-7 12:21 | 显示全部楼层
感谢大神分享经验!
发表于 2017-10-7 14:03 | 显示全部楼层
严格说是正矩形,否则任意矩形要三点,黄总写个任意矩形的吧
 楼主| 发表于 2017-10-7 20:03 | 显示全部楼层
duotu007 发表于 2017-10-7 14:03
严格说是正矩形,否则任意矩形要三点,黄总写个任意矩形的吧

任意的没有必要。我们击一个按钮,其实就是判断一个点是否在矩形内,据说是最基本的了,也最有实用价值。
 楼主| 发表于 2021-2-7 11:44 | 显示全部楼层
菜卷鱼 发表于 2021-2-6 23:37
;;;;;菜卷鱼 点是否在 boundingbox里
(defun iboxp (p p1 p2)
  (or

也可以用点积判断,似乎看起来更省事
http://bbs.xdcad.net/forum.php?m ... 8%BA%CE%D2%E2%D2%E5
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 11:43 , Processed in 0.687214 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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