首页 / PYTHON / Python测试点是否在矩形中
Python测试点是否在矩形中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python测试点是否在矩形中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3333字,纯文字阅读大概需要5分钟。
内容图文
![Python测试点是否在矩形中](/upload/InfoBanner/zyjiaocheng/695/0aefbc090b71401dbf8ee1a849506d27.jpg)
我是python的新手,仍然学习绳索??,但是我希望有更多经验的人可以帮助我.
我正在尝试编写以下Python脚本:
>创造四个点
>创建四个矩形
>检查每个点是否在任何矩形中,然后将结果写到输出文件中.
问题涉及两个数据结构Point和Rectangle类.我已经开始创建Point类和Rectangle类.矩形类应包含通过随机模块的random方法创建的相关数据集.从我的尝试中可以看出,我到处都是,但是我已经使用#comments来尝试去做.
我的具体问题是:
1)如何使该脚本正常工作?
2)我缺少哪些变量或函数来生成随机矩形,并查看这些矩形中是否有特定点?
## 1. Declare the Point class
class Point:
def __init__(self,x = 0.0, y = 0.0):
self.x = x
self.y = y
pass
## 2. Declare the Rectangle class
class Rectangle:
def __int__(self): ## A rectangle can be determined aby (minX, maxX) (minY, maxY)
self.minX = self.minY = 0.0
self.maxX = self.maxY = 1.0
def contains(self, point): ## add code to check if a point is within a rectangle
"""Return true if a point is inside the rectangle."""
# Determine if a point is inside a given polygon or not
# Polygon is a list of (x,y) pairs. This function
# returns True or False.
def point_in_poly(x,y,poly):
n = len(poly)
inside = False
p1x,p1y = poly[0]
for i in range(n+1):
p2x,p2y = poly[i % n]
if y > min(p1y,p2y):
if y <= max(p1y,p2y):
if x <= max(p1x,p2x):
if p1y != p2y:
xints = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
if p1x == p2x or x <= xints:
inside = not inside
p1x,p1y = p2x,p2y
return inside
## 3. Generate four points
##define a Point list to keep four points
points = []
##add codes to generate four points and append to the points list
polygon = [(0,10),(10,10),(10,0),(0,0)]
point_x = 5
point_y = 5
## 4. Generate four rectangles
##define a Rectangle list
rects = []
for i in range(4):
rectangle = Rectangle()
## Generate x
x1 = random.random()
x2 = random.random()
## make sure minX != maxX
while(x1 == x2):
x1 = random.random()
if x1<x2:
rectangle.minX=x1
rectangle.maxX=x2
elif x1>x2:
rectangle.minX=x2
rectangle.maxX=x1
rects.append(rectangle)
## Develop codes to generate y values below
## make sure minY != maxY
while(y1 == y2):
y1 = random.random()
if y1<y2:
rectangle.minY=y1
rectangle.maxY=y2
elif y1>y2:
recetangle.minY=y2
racetangle.maxY=y1
## add to the list
rects.append(rectangle)
## 5. Add code to check which point is in which rectangle
resultList = [] ## And use a list to keep the results
for i in range(4):
for j in range(4):
if points[i] in rectangle[j]:
print i
# write the results to file
f=open('Code5_4_1_Results.txt','w')
for result in resultList:
f.write(result+'\n')
f.close()
解决方法:
这是非常简单的数学.给定一个具有点(x1,y1)和(x2,y2)的矩形,并假定x1≤x. x2和y1< y2(如果不是,则可以交换它们),如果x1 <x,则点(x,y)在该矩形内. &="" =表示矩形边界上的点(例如,点(x1,y1))算作在其内部,而使用<因此意味着这些点不在其内.<="" div="" x="" x2和y1<="" x2等).="" x和x<="" y2.由于可以将python比较运算符链接在一起,因此这甚至是有效的python代码,也应该会产生正确的结果(在其他语言中,您必须编写x1<="" 如果需要,可以使用<="代替<.使用<" <="">
相关文章
- python - 测试点是否在某个矩形中
- c# - 如何测试一个矩形是否在另一个矩形中?
- javascript - 如何测试一个点是否在一个旋转角度的矩形区域?
- 如何检测非方形矩阵的所有行是否在python中是正交的
- 图形 - 如何测试线段是否与2D中的轴对齐的矩形相交?
- python-2.7 - 如何在python中测试一个单词是否是单数形式?
- javascript - 点矩形测试
- 在Python和matplotlib的3D散点图中的两点之间绘制一个矩形或条形
转载注明原文:Python测试点是否在矩形中 - 代码日志
内容总结
以上是互联网集市为您收集整理的Python测试点是否在矩形中全部内容,希望文章能够帮你解决Python测试点是否在矩形中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。