前言
- 昨天的原始绘制两个矩形的代码段draw_rec2
- 原始draw_rec2运行结果
- 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
- 结果
- 利用已建立完的Rectangle2D类来实现
- Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快
经过昨天晚上的努力我终于知道了如何完成该题剩余的几个点的办法.但是我还要继续解决昨天结束的时候第2个矩形偏离中心的地问题
一、矩形为什么偏离了原点
- 昨天的原始绘制两个矩形的代码段draw_rec2
- 原始draw_rec2运行结果
- 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
- 结果
- 利用已建立完的Rectangle2D类来实现
- Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快
为了方便大家观看.我将之前第2个矩形的中心点颜色从黄色换成了比较明显的蓝色
昨天的原始绘制两个矩形的代码段draw_rec2
def draw_rec2(self, other_rec):
x_1 = other_rec.__x
y_1 = other_rec.__y
width_r = other_rec.__width
height_r = other_rec.__height
turtle.penup()
turtle.goto(self.__x, self.__y)
turtle.dot(6, "blue")
turtle.goto(self.__x - self.__width / 2, self.__height / 2 + self.__y)
turtle.pendown()
turtle.forward(self.__width)
turtle.right(90)
turtle.forward(self.__height)
turtle.right(90)
turtle.forward(self.__width)
turtle.right(90)
turtle.forward(self.__height)
turtle.penup()
turtle.goto(x_1, y_1)
turtle.dot(6, "blue")
turtle.goto(x_1 - width_r / 2, height_r / 2 + y_1)
turtle.pendown()
turtle.forward(width_r)
turtle.right(90)
turtle.forward(height_r)
turtle.right(90)
turtle.forward(width_r)
turtle.right(90)
turtle.forward(height_r)
turtle.hideturtle()
turtle.done()
原始draw_rec2运行结果
蓝色点是第2个rec的位置.但是它发生了旋转,我之前的几章也做过绘制两个园的情况,我都解决了.但这次我不想这样的方式.我想了解一下.
我首先尝试在第一个矩形绘制结束后加入了一个left
turtle.left(90)
我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
真不对
我只看到了最后一次往右转了90度.但是之前呢.是不是还有2次往右转90度呢???
所以不是90度.应该是270
turtle.left(270)
这个问题解决了其他的对比问题就应该不是很难了.
二、实现输入坐标、计算周长和面积
- 昨天的原始绘制两个矩形的代码段draw_rec2
- 原始draw_rec2运行结果
- 我们不是上面往右转90.我怎么往左转90不对吗??? ☺️
- 结果
- 利用已建立完的Rectangle2D类来实现
- Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快
结果
利用已建立完的Rectangle2D类来实现
def main():
x1,y1,width1,height1 = eval(input("Enter x1,y1,width1,height1: "))
x2,y2,width2,height2 = eval(input("Enter x2,y2,width2,height2: "))
r1 = Rectangle2D(x1,y1,width1,height1)
r1.print_text(1)
area_r1 =r1.get_area()
print(f"Area for r1 is {area_r1}")
perimeter_r1 =r1.get_perimeter()
print(f"Perimeter for r1 is {perimeter_r1}")
r2 = Rectangle2D(x2,y2,width2,height2)
r2.print_text(2)
area_r2 = r2.get_area()
print(f"Area for r2 is {area_r2}")
perimeter_r2 = r2.get_perimeter()
print(f"Perimeter for r2 is {perimeter_r2}")
main()