在Python

时间:2016-11-24 21:03:57

标签: python python-3.x

我想知道如何计算我的物体的周长,称为“矩形”。如果我没有在Rectangle类中保存x坐标和y坐标。

class Point:

    def __init__(self, xcoord=0, ycoord=0):
        self.x = xcoord
        self.y = ycoord

    def setx(self, xcoord):
        self.x = xcoord

    def sety(self, ycoord):
        self.y = ycoord

    def get(self):
        return (self.x, self.y)

    def move(self, dx, dy):
        self.x += dx
        self.y += dy

class Rectangle:

    def __init__(self, bottom_left, top_right, colour):
        self.bottom_left = bottom_left
        self.top_right = top_right
        self.colour = colour

    def get_colour(self):
        return self.colour

    def get_bottom_left(self):
        return self.bottom_left

    def get_top_right(self):
        return self.top_right

    def reset_colour(self, colour):
        self.colour = colour

    def move(self,dx,dy):
        Point.move(self.bottom_left,dx,dy)
        Point.move(self.top_right,dx,dy)

    def get_perimeter(self):

我用以下格式调用python shell中的函数

r1=Rectangle(Point(),Point(1,1),'red')
r1.get_perimeter()

1 个答案:

答案 0 :(得分:2)

这是比Python更基本的几何。

由于您只提供左下角和右上角,我假设矩形的边与x / y轴平行。在那种情况下:

def get_perimeter(self):
    return 2*(abs(self.top_right.x-self.bottom_left.x)+abs(self.bottom_left.y-self.top_right.y))

我已将abs功能用于衡量标准,因为左和右对,顶部&底部并不预先假定坐标系的方向。

注意:您x课程中“保存”(可访问)的2个定义点 yRectangle,而非直接作为直接会员,但作为会员的一员。