python判断点在矩形内_Python测试点是否在矩形中

我是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

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

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+'

')

f.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值