第一、重新分析
- 第一-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()
今天领导说让我去下面的分院讲课,但是后来又不用了.可是我却充满着期待.自己准备起来.
所以今天就是中集不是下集
看来一天两更还是有些困难.
另外我感觉我似乎有点明白题的要求.