早教吧 育儿知识 作业答案 考试题库 百科 知识分享

判断点是否处于正方形内1.给定一个边长为的正方形,其4个角点坐标依次为:(0,1),(-1,0),(0,-1),(1,0),然后输入一个点的坐标(x,y),判断该店是否在给定的正方形上(包括在边上).在if语句的条

题目详情
判断点是否处于正方形内
1.给定一个边长为 的正方形,其4个角点坐标依次为:(0,1),(-1,0),(0,-1),(1,0),然后输入一个点的坐标(x,y),判断该店是否在给定的正方形上(包括在边上).在if语句的条件表达式中,你能不使用“或”、“与”等逻辑运算完成判断吗?(实在不行的话可以使用)
2.给定4个边长为2的正方形,其左上角与右下角的坐标依次为:((1,3),(3,1)),((-3,3),(-1,1)),((-3,-1),(1-,-3)),((1,-1),(3,-3)).然后输入一个点坐标(x,y),判断该点是否在某个给定的正方形上(包括边上).要求使用一条if语句,分别用2种方式编程.
1.在if语句的条件表达式中,用“或”运算连接4组条件,每组条件有一个“与”运算.
2.不使用“或”运算或其它逻辑运算,将4组条件合并为一组条件.
▼优质解答
答案和解析
通过已知点矩形对角线顶点形成的角度差来判断,如果差值在大于90度且小于270度,则点在矩形内部,如果角度差等于90度或270度,则已知点在矩形的边上,其他情况在矩形的外面.
下面附一段AutoCAD LISP代码,
;;;计算三点间角度差
;;;参数:pt0 基点坐标
;;; pt1 第一点坐标
;;; pt2 第二点坐标
;;;
如果正方形与坐标轴平行,直接判断这个点的坐标是否大于正方形的X坐标最大值或小于X坐标最小值,Y的也如此.
;;;返回值 三点的角度差(单位:弧度)
(defun angle3p (pt0 pt1 pt2 / ang)
(setq ang (- (angle pt0 pt2) (angle pt0 pt1)))
(if (< ang 0)
(setq ang (+ ang (* 2 pi))
\x05 )
)
ang
)