Python-Test, wenn sich der Punkt im Rechteck befindet

Ich bin neu in Python und lerne immer noch die Seile, aber ich hoffe, jemand mit mehr Erfahrung kann mir helfen.

Ich versuche ein Python-Skript zu schreiben, das:

schafft vier Punkte Erstellt vier RechteckeÜberprüfen Sie, ob sich jeder Punkt in einem der Rechtecke befindet, und schreiben Sie die Ergebnisse in eine Ausgabedatei.

Das Problem besteht aus zwei Datenstrukturen, der Point- und der Rectangle-Klasse. Ich habe bereits damit begonnen, die Klassen Point und Rectangle zu erstellen. Die Rechteckklasse sollte relevante Datensätze enthalten, die mit der Zufallsmethode des Zufallsmoduls erstellt wurden. Wie Sie aus meinen Versuchen ersehen können, bin ich ziemlich weit verbreitet, aber ich habe #comments verwendet, um zu versuchen, das zu bekommen, was ich zu tun versuche.

Spezifische Fragen, die ich habe, sind:
1) Wie kann ich dieses Skript zum Laufen bringen?
2) Welche Variablen oder Funktionen fehlen mir, um zufällige Rechtecke zu generieren und festzustellen, ob bestimmte Punkte in diesen Rechtecken enthalten sind?

## 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()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage