如何用Python得到关于X轴和关于Y轴对称的圆

2020-01-05  本文已影响0人  秦文颖

写在前面,其实这道题做起来没有那么难,关键是思路理清楚,我想得到关于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()
上一篇下一篇

猜你喜欢

热点阅读