写在前面,其实这道题做起来没有那么难,关键是思路理清楚,我想得到关于X轴和关于Y轴对称的圆,那么我就要先得到关于X轴和关于Y轴对称的圆心,然后根据画圆的方法,进而得到关于X轴和关于Y轴对称的圆。
import math;
import matplotlib.pyplot as plt;
class Point:
def __init__(self, a = None, b = None, r = None):
self.a = a
self.b = b
self.r = r
self.area = round(math.pi*r*r,2) #round可以用作保留几位小数
def reflect_x(self):
__x = self.a
__y = -self.b
__r = self.r
plt.figure(figsize=(5, 5)) #设定最后圆所在的平面图形的宽度和高度是多少英寸
circle = plt.Circle((__x, __y), __r, color='yellow', fill = False)
plt.gcf().gca().add_artist(circle) #gcf() 表示获取当前图形,gca() 表示获取当前轴
plt.axis('equal')
plt.xlim(-10, 10)
plt.ylim(-10, 10)
return plt.show()
def reflect_y(self):
__x = -self.a
__y = self.b
__r = self.r
plt.figure(figsize=(5, 5))
circle = plt.Circle((__x, __y), __r, color='purple',fill = False) #建议看这个链接,讲的很详细 https://stackoverflow.com/questions/9215658/plot-a-circle-with-pyplot
plt.gca().add_artist(circle) #另一种写法
plt.axis('equal')
plt.gca().set_xlim(-10, 10) #另一种写法
plt.gca().set_ylim(-10, 10)
return plt.show()
g = Point(2, 2, 2)
print(g.area)
g.reflect_x()
g.reflect_y()
网友评论