问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

判断线段与矩形是否相交

发布网友 发布时间:2022-04-19 00:07

我来回答

2个回答

懂视网 时间:2022-04-19 04:28

本文实例讲述了Python判断直线和矩形是否相交的方法。分享给大家供大家参考。具体实现方法如下:

"""
A(ax,ay),B(px,py)为两个点 (x1,y1),(x2,y2)为矩形的左上角和右下角坐标 ,判断A,B两点是否和矩形相交 
"""
def Judge(ax, ay, px, py, x1, y1, x2, y2):
 #转换为真除法
 ax, ay, px, py = float(ax), float(ay), float(px), float(py)
 x1, y1, x2, y2 = float(x1), float(y1), float(x2), float(y2)
 #判断矩形上边线和两点直线相交的点
 sx = (y1 - ay) * (px - ax) / (py - ay) + ax
 if sx >= x1 and sx <= x2:
 return True
 #判断矩形下边线和两点直线相交的点
 xx = (y1 - ay) * (px - ax) / (py - ay) + ax
 if sx >= x1 and sx <= x2:
 return True
 #判断矩形左边线和两点直线相交的点
 zy = (y2 - ay) * (x2 - ax) / (px - ax) + ay
 if zy >= y1 and zy <= y2:
 return True
 #判断矩形右边线和两点直线相交的点
 yy = (y2 - ay) * (x2 - ax) / (px - ax) + ay
 if yy <= y1 and yy >= y2:
 return True
 return False
ax = raw_input()
ay = input()
px = input()
py = input()
x1 = input()
y1 = input()
x2 = input()
y2 = input()
print Judge(ax, ay, px, py, x1, y1, x2, y2)

希望本文所述对大家的Python程序设计有所帮助。

热心网友 时间:2022-04-19 01:36

Sample Input1 4 9 11 2 1 5 7 1Sample OutputFJudge Tips注意看题目说明,top的值可能会小于bottom. 线段在矩形里面也算相交.///// WA了三次,存到博客上以供查询。思路,相看线段所在直线是否与矩形相交,如果不相交则必为 “F”,如果相交,则看线段的两个点是否在矩形的同一边(即两点的 x(y) 坐标都比矩形的小 x(y) 坐标小,或者大),若在同一边则为“F”,否则就是相交的情况。//// my code#include <iostream>using namespace std;int main(){int n,xs,ys,xe,ye,xleft,ytop,xr,yb;cin>>n;for(int i=0; i<n; i++){cin>>xs>>ys>>xe>>ye>>xleft>>ytop>>xr>>yb;int a=ys-ye, b=xe-xs, c=xs*ye-xe*ys;if( (a*xleft+b*ytop+c>=0 && a*xr+b*yb+c<=0)||(a*xleft+b*ytop+c<=0 && a*xr+b*yb+c>=0)||(a*xleft+b*yb+c>=0 && a*xr+b*ytop+c<=0)||(a*xleft+b*yb+c<=0 && a*xr+b*ytop+c>=0) ){if(xleft > xr)swap(xleft,xr);if(ytop < yb)swap(ytop,yb);if( (xs<xleft && xe<xleft) ||(xs>xr && xe>xr) ||(ys>ytop && ye>ytop) ||
判断线段与矩形是否相交

思路,相看线段所在直线是否与矩形相交,如果不相交则必为 “F”,如果相交,则看线段的两个点是否在矩形的同一边(即两点的 x(y) 坐标都比矩形的小 x(y) 坐标小,或者大),若在同一边则为“F”,否则就是相交的情况。/// my code#include &lt;iostream&gt;using namespace std;int main(){int...

C#中,怎么判断一条线段与矩形相交?

矩形有四个顶点,线段是两个顶点,根据这些顶点坐标的关系可以判断.注意点的坐标.

判断线段是否与多边形相交

算法描述:1、首先要判断是否有点在矩形内(边界也算),线段上两个点只要至少有一个点在矩形内就可以认为线段与矩形相交(千万别忘记题目要求线段在矩形内也算相交)2、接下来循环遍历每一条边,判断线段是否与矩形的边相交,当然只要有一条边相交就可以认定线段和矩形相交。

如何判断一条线段和一个矩形或者圆相交

如果d&lt;r,就相交 或者看线段和圆有几个公共点,如果有两个就相交 矩形………难道是判断线段和矩形的四边分别有无交点?

java取得线段与矩形的交点

1、若都无解,肯定不相交。2、有1个或2个解,可能相交。看求得的横坐标和纵坐标是否同时在线段DE(或EF或FG或GD)和线段AB的范围内。3、计算过程中x、y的系数完全抵消,这是重合情况。解法二:AB和矩形DEFG相交,有两种情况:(1)有一个点在矩形内部,另一个点在矩形外部,这时候只有一个...

计算两个矩形是否有相交部分,求C或C++源代码算法

//判断两条线段是否相交 bool judgep(point a, point b, point c, point d){ return a,b在cd直线两边 &amp;&amp; c,d在ab直线两边;} //判断矩形相交 bool judger(rect r1, rect r2){ //通过(x1,y1),(x2,y2),d计算出矩形四个点 四条边每两条线段判断是否相交;} ...

判断两个矩形是否相交

以前写过一篇如何判断线段相交的问题,上网查了一些方法,在这里做一下后一个问题的总结:方法一:假定矩形是用一对点表达的(minx,miny)(maxx, maxy) ,那么两个矩形rect1{(minx1,miny1)(maxx1, maxy1)}, rect2{(minx2,miny2)(maxx2, maxy2)} 相交的结果一定是个矩形,构成这个相交矩形...

如何检验平面内一条线段是否穿过一个矩形

回答:直接得出矩形的右下方的坐标再得出直线CD的方程,可以确定此点在直线上还是直线下还是直线上面

判断两线段是否相交

:我们分两步确定两条线段是否相交:(1)快速排斥试验 设以线段 P1P2 为对角线的矩形为R, 设以线段 Q1Q2 为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。(2)跨立试验 如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于...

判断两线段是否相交

下面的方法是标准算法:我们分两步确定两条线段是否相交:(1)快速排斥试验设以线段 P1P2 为对角线的矩形为R, 设以线段 Q1Q2 为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。(2)跨立试验 如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( ...

怎么判断两条线段是否相交 判断是不是线段一看是不是 如何判断两个矩形是否相交 判断直线是否相交 线段相交的判断 如何判断线段相交 判断两个线段相交 判断是否线段 两线段是否相交
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年小麦价格多少钱一斤 酸甜口味的凉拌菜如何制作? 小麦价格什么时候涨 明年小麦还会继续上涨吗 怎么做家常韭菜烧豆腐? 家常烧豆腐块怎么做? 单核CPU512内存 加内存会让电脑运行快吗 我的电脑配置 CPU AMD速龙 双核 3600+ 内存 512MB 显卡64M 什么情况... 我的cpu是AMD Sempron 3000+的 内存是512M 显示卡是 Radeon X300/X550/... 我的电脑是双核CPU 2G内存 512独显 怎样才能加快电脑运行速度 微信开发,关注微信后自动回复,后面蓝色字体那种链接是怎么做到的 在微信里面,关注一个公众号之后会自动回复下图所示的文字,请问蓝色字体的链接是怎么做成的!求指点! 甲虫兽的进化信息 急需纳兰容若的比较著名的几首诗词及赏析! 谁有纳兰性德词的赏析或者评论? 纳兰容若的词赏析 sting的《fields of gold》的中文翻译是什么? 笑傲江湖第二季陆敏雪拔牙的那个小品,咕叽咕叽棒棒啥的那个歌叫啥 英文的, 求DRAMA啊啊啊~ 纳兰性德《画堂春》赏析 英文歌曲带走莎啦啦啦啦莎拉拉啦啦沙拉啦啦啦啦莎啦啦啦啦啦后面是什么歌名 纳兰容若的词及其鉴赏 求一首拉丁舞曲,前面嗯嗯嗯,然后英文,由慢到快,开头好像是hao hao baby什么 一首经典英文老歌,旋律很慢,有点像《毕业生》,男的唱的,第一句好像是什么“gXXX gold say goodbye” 纳兰词赏析 求绯闻少女第四季第一集插曲 权力的游戏第七季黄老板唱的什么歌 Tears Of Gold 歌词 KISS GOLD;K&G;KG注册过商标吗?还有哪些分类可以注册? 箭牌水龙头怎么样?价格如何 求《网络对学生的影响》调查报告怎么写? 网络社会调查 5000块钱装电脑你会选择什么显卡? 请问,自己组装电脑如何选则cpu、主板、和显卡? 怎样才能让脸快速的白起来 问区号:请问028是哪个省电话区号? 028是哪个城市的区号 028是哪里的区号? 自己想组装电脑,如何选择显卡? 028是哪里的区号 028是哪里区号 区号028是那里 028是哪个地区的区号 028是哪个地方的区号 区号028是哪里 028区号是哪里 我胳膊好细,做什么运动可以让胳膊变粗,最好是1年时间以内能见效的 区号028是什么地方? 028开头是哪里的区号 028区号电话是69602175是哪里的地方