《python语言程序设计》2018版第8章19题几何Rectangle2D类(中)-同志们我要起飞了

在这里插入图片描述


经过昨天晚上的努力我终于知道了如何完成该题剩余的几个点的办法.但是我还要继续解决昨天结束的时候第2个矩形偏离中心的地问题


为了方便大家观看.我将之前第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)

在这里插入图片描述

这个问题解决了其他的对比问题就应该不是很难了.

结果

在这里插入图片描述

利用已建立完的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()

Rectangle2D类的代码可以找上集看,今天是锻炼的一天好几个倒立体式解锁了.祝大家愉快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电饭叔

谢谢各位兄弟们的关注,谢谢破费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值