簡體   English   中英

如何找到定義了兩個點的矩形的面積和周長?

[英]How to find the area and perimter of a rectangle that has two points defined?

我設置了一個 Point 類和 Rectangle 類,這是它的代碼:

import math

class Point:
    """A point in two-dimensional space."""

    def __init__(self, x: float = 0.0, y: float = 0.0)->None:               
        self.x = x
        self.y = y    


    def moveIt(self, dx: float, dy: float)-> None:
        self.x = self.x + dx
        self.y = self.y + dy    

    def distance(self, otherPoint: float): 
        if isinstance(otherPoint, Point):
            x1 = self.x
            y1 = self.y
            x2 = otherPoint.x
            y2 = otherPoint.y

            return ( (x1 - x2)**2 + (y1 - y2)**2 )**0.5    


class Rectangle:
    def __init__(self, topLeft = Point(0,0), bottomRight = Point(1,1)):
        self.topLeft = topLeft
        self.bottomRight = bottomRight

兩點是矩形的左上角和右下角。 我怎么能從兩點找到這個矩形的面積和周長? 將不勝感激任何和所有的幫助!

我們可以訪問每個點的 x 和 y 值並計算高度和寬度,從那里我們可以創建計算面積和周長的方法

class Rectangle():
    def __init__(self, topLeft = Point(0,0), bottomRight = Point(1,1)):
        self.topLeft = topLeft
        self.bottomRight = bottomRight
        self.height = topLeft.y - bottomRight.y
        self.width = bottomRight.x - topLeft.x
        self.perimeter = (self.height + self.width) * 2
        self.area = self.height * self.width

rect = Rectangle(Point(3,10),Point(4,8))
print(rect.height)
print(rect.width)
print(rect.perimeter)
print(rect.area)
 chrx@chrx:~/python/stackoverflow/9.24$ python3.7 rect.py 2 1 6 2

或者使用方法

class Rectangle():
    def __init__(self, topLeft = Point(0,0), bottomRight = Point(1,1)):
        self.topLeft = topLeft
        self.bottomRight = bottomRight
        self.height = topLeft.y - bottomRight.y
        self.width = bottomRight.x - topLeft.x

    def make_perimeter(self):
        self.perimeter = (self.height + self.width) * 2
        return self.perimeter

    def make_area(self):
        self.area = self.height * self.width
        return self.area

rect = Rectangle(Point(3,10),Point(4,8))
print(rect.height)
print(rect.width)
print(rect.make_perimeter())
print(rect.make_area())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM