《python语言程序设计》2018版第8章18题几何circle2D类(下部)

请添加图片描述

把情绪从不停的幻想演讲,感觉中拉回来

又一次开始初始化.
第8章第4程序Rational给了我灵感,我可以设计一个添加second valid的

def __add__(self,second_contains):

来完成我的想法

比如删掉我设计的导入第二个园的x,y,radius的函数

def set_have_two(self, x2, y2, radius2):
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2

直接将第2个园的坐标长度带入到第一个里面.
但是问题是,如何在初始化没有第2个园的信息中
完成诸如两个点之间距离的计算
对比我似乎有点把握了.参考了书中8.4Rational代码
但是计算我还没有把握.

今天检查完毕,接下来要迎接11月的ISO检查
另外10月份要瑜伽演出.我还帮别的老师带到汇演中,希望领导多给这些老师展示的机会.

我做了之前设计的变化.


class Circle2D:
    # 初始化
    def __init__(self, x, y, radius):
        self.__x1 = x
        self.__y1 = y
        self.__radius = radius

        # 针对获得第一个园的面积

    def get_area(self):
        return pow(self.__radius, 2) * math.pi

        # 针对第一个园的周长

    def get_perimeter(self):
        return 2 * math.pi * self.__radius

    def set_radius(self, radius):
        self.__radius = radius

    def print_radius(self):

    # 比对两个点之间的距离

    def have_between(self, other_x, other_y):
        a_t_valid = other_x - self.__x1
        b_t_valid = other_y - self.__y1
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05

        # 比对第2点是否在圆的里面

    def contains_points(self):
        return self.__radius.__lt__(Circle2D.have_between)
        # 比对第2个园是否在第1个园里

    def contain(self, other_radius):
        circle1 = self.__radius
        circle2 = other_radius
        if circle2 < circle1 and Circle2D.contains_points(self) is True:
            print("c1 contains the c2?, True.")
        else:
            print("c1 contains the c2?, False.")

结果失败的其中一个截图

请添加图片描述

建立了两个可以将x,y拿出来的函数out


    def out_x(self):
        return self.__x

    def out_y(self):
        return self.__y

计算两个坐标之间的距离

    def have_between(self, other_x, other_y):
        a_t_valid = other_x - self.__x
        b_t_valid = other_y - self.__y
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05

利用已知的两个坐标之间的距离来比对第1个园里的半径,看第2个园的坐标是否在第一个园中

    def contains_points(self,other):
        one_date=  self.__radius.__lt__(other)
        if one_date is True:
            print("The 2 Circle is in 1 Circle")
        else:
            print("The 2 Circle is not in 1 Circle")

main代码的内容

b = Circle2D(10, 10, 50)
a = Circle2D(5, 5, 20)
b.print_condition()
b.get_x(100)
b.get_y(10340)
b.print_condition()
between_date = b.have_between(a.out_x(), a.out_y())
b.contains_points(between_date)

请添加图片描述

我没有想到我能这么简单的解决这个问题.

out函数确实带来了我新的算法和想法.
期待下一个作品.但十一结束后,学院将会有大量的演出.我还要帮助更多老师做宣传.加油吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

电饭叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值