# ToyDesigner形状(Shape) > 源码:[shape.py](https://gitea.winkinshly.site/songsenand/ToyDesigner/blob/main/toydesigner/shape.py) ## 点(Point) 点是 ToyDesigner 中最基本的形状,它代表着坐标系中的一个点。声明方式为`point = Point(x, y)`,参数`x`和`y`分别代表着该点的横坐标和纵坐标。 > 注意:ToyDesigner 中的坐标系为直角坐标系。 ```python # 示例 from toydesigner.shape import Point # 声明一个点 point = Point(1, 2) # 打印点的坐标 print(point.x, point.y) # 1 2 # 弹出GUI展示点的位置 point.show() ``` ## 直线(Line) 直线是由两个点组成的线段。 声明方式为`line = Line(point1, point2)`,参数`point1`和`point2`分别是该线段的两个端点。也可使用`line = Line((x1, y1), (x2, y2))`,参数`x1`、`y1`、`x2`、`y2`分别是该直线的两个端点的横、纵坐标。 > 注意:直线的两个端点必须是不同的点。否则将会抛出ValuError异常。 ```python # 示例 from toydesigner.shape import Point, Line # 声明两个点 point1 = Point(1, 2) point2 = Point(3, 4) # 声明一个直线 line = Line(point1, point2) # 另一种写法 line = Line((1, 2), (3, 4)) ``` ## 矩形(Rectangle) 矩形是由两个点组成的矩形,它可以用来绘制矩形、圆角矩形等图形。 声明方式为`rectangle = Rectangle(point1, point2)`,参数`point1`和`point2`分别是该矩形左上角和右下角两个端点,也可使用`rectangle = Rectangle((x1, y1), (x2, y2))`,参数`x1`、`y1`、`x2`、`y2`分别是该矩形左上角和右下角两个端点的横、纵坐标。 > 注意:矩形的两个端点必须是不同的点。否则将会抛出ValuError异常。 ```python # 示例 from toydesigner.shape import Point, Rectangle # 声明两个点 point1 = Point(1, 2) point2 = Point(3, 4) # 声明一个矩形 rectangle = Rectangle(point1, point2) # 另一种写法 rectangle = Rectangle((1, 2), (3, 4)) ``` ## 圆(Circle) 圆是由中心点和半径组成的图形。 声明方式为`circle = Circle(center, radius)`,参数`center`是该圆的中心点,参数`radius`是该圆的半径,也可使用`circle = Circle((x, y), r)`,参数`x`、`y`是该圆的中心点的横、纵坐标,参数`r`是该圆的半径。 > 注意:radius必须大于0。否则将会抛出ValueError异常。 ```python # 示例 from toydesigner.shape import Point, Circle # 声明一个中心点和半径 center = Point(1, 2) radius = 3 # 声明一个圆 circle = Circle(center, radius) # 另一种写法 circle = Circle((1, 2), 3) ``` ## 多边形(Polygon) 多边形是由多个点组成的图形。 声明方式为`polygon = Polygon(points)`,参数`points`是该多边形的点列表,列表中的每个元素都是一个点。也可使用`tuple(x, y)`代替`Point(x, y)`,声明方式为`polygon = Polygon([(x1, y1), (x2, y2), (x3, y3), ...])`,参数`x1`、`y1`、`x2`、`y2`、`x3`、`y3`分别是该多边形的点的横、纵坐标。 ```python # 示例 from toydesigner.shape import Point, Polygon # 声明点列表 points = [Point(1, 2), Point(3, 4), Point(5, 6)] # 声明一个多边形 polygon = Polygon(points) # 另一种写法 polygon = Polygon([(1, 2), (3, 4), (5, 6)]) ```