
 
第一、重新分析
- 第一-1、我设计的第一模式
- 第一-1-1、遇到的逻辑分析迷雾
- 第一-1-2、无畏挣扎后的无奈
 
- 第二-1、我就把你们两个放到一起,
- 第二-2、我的想法
当我看到了这个2个园并且比对.
第一-1、我设计的第一模式
设计一个最抽象的Circle2D类.
 这个类只包含一个x,y和circle
 这个我看到了书里写的直接理解.
第一-1-1、遇到的逻辑分析迷雾
我现在建立了一个仅包含园的类
class Circle2D:
    def __init__(self, x1, y1, radius1):
        self.__x1 = x1
        self.__y1 = y1
        self.__radius1 = radius1
问题来了.这么个初始化状态,如何添加另一个园呢.第一次做8.18题2023.5,可能就是停在这里.
那我该如何办呢???
第一-1-2、无畏挣扎后的无奈
那我在类里增加一个get_other的函数???
    def get_other(self,x2,y2):
       
x2,y2用它们来完成,可是我们都清楚__init__没有注明过它们两个.谁能帮我???
第二、爱谁谁
- 第一-1、我设计的第一模式
- 第一-1-1、遇到的逻辑分析迷雾
- 第一-1-2、无畏挣扎后的无奈
 
- 第二-1、我就把你们两个放到一起,
- 第二-2、我的想法
第二-1、我就把你们两个放到一起,
class Circle2D:
    def __init__(self, x1, y1, radius1, x2, y2, radius2):
        self.__x1 = x1
        self.__y1 = y1
        self.__radius1 = radius1
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2
    def get_area(self):
        return pow(self.__radius1, 2) * math.pi
    def get_perimeter(self):
        return 2 * math.pi * self.__radius1
    def set_radius(self, radius1):
        self.__radius1 = radius1
    def print_radius1(self):
        return self.__radius1
    def set_have_two(self, x2, y2):
        self.__x2 = x2
        self.__y2 = y2
    # 比对两个点之间的距离
    def have_between(self):
        a_t_valid = self.__x2 - self.__x1
        b_t_valid = self.__y2 - self.__y1
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05
    def show_other(self):
        print(self.__x2, self.__y2)
    # 比对第2点是否在圆的里面
    def com_distance(self):
        return self.__radius1.__lt__(Circle2D.have_between)
对正如大家看到的.我把x1,y1,radius1,x2,y2,radius2放到一个函数.
第二-2、我的想法
其1,我如果不用建立第2个的园和坐标我可以都写0,
 然后利用建立set来做后补,
class Circle2D:
    # 初始化
    def __init__(self, x1, y1, radius1, x2, y2, radius2):
        self.__x1 = x1
        self.__y1 = y1
        self.__radius1 = radius1
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2
    # 针对获得第一个园的面积
    def get_area1(self):
        return pow(self.__radius1, 2) * math.pi
    # 针对获得第二个园的面积
    def get_area2(self):
        return pow(self.__radius2, 2) * math.pi
    # 针对第一个园的周长
    def get_perimeter1(self):
        return 2 * math.pi * self.__radius1
    # 针对第二个园的周长
    def get_perimeter2(self):
        return 2 * math.pi * self.__radius2
    def set_radius1(self, radius1):
        self.__radius1 = radius1
    def print_radius1(self):
        return self.__radius1
    def set_have_two(self, x2, y2, radius2):
        self.__x2 = x2
        self.__y2 = y2
        self.__radius2 = radius2
    # 比对两个点之间的距离
    def have_between(self):
        a_t_valid = self.__x2 - self.__x1
        b_t_valid = self.__y2 - self.__y1
        return (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05
    def show_other(self):
        print(self.__x2, self.__y2)
    # 比对第2点是否在圆的里面
    def contains_points(self):
        return self.__radius1.__lt__(Circle2D.have_between)
    # 比对第2个园是否在第1个园里
    def contain(self):
        circle1 = self.__radius1
        circle2 = self.__radius2
        if circle2 < circle1 and Circle2D.contains_points(self) is True:
            print("c1 contains the c2?, True.")
        else:
            print("c1 contains the c2?, False.")
# 判断另外一个园的圆心是否在园内.
def main_contain_point():
    a = Circle2D(0, 0, 10, 20, 60, 2)
    a.set_have_two(30, 20, 40)
    b_valid = a.contains_points()
    if b_valid is False:
        print(a.get_area1())
        print(f"The two point {a.show_other()} not in")
    else:
        print(f"The two point is in Circle")
# 此段代码是按两个园的信息放在一个类进行设计.
def main_contain():
    a = Circle2D(5, 5.5, 10, 9, 1.3, 10)
    a.contain()
main_contain()
今天领导说让我去下面的分院讲课,但是后来又不用了.可是我却充满着期待.自己准备起来.
所以今天就是中集不是下集
 看来一天两更还是有些困难.
另外我感觉我似乎有点明白题的要求.

















![[数据结构与算法·C++] 笔记 2.1 线性表](https://i-blog.csdnimg.cn/direct/dadbec2c12074b60983861b117f59f72.png#pic_left)
