创建圆的类和对象
项目需求:
用面向对象的方法创造一个圆,并且打印圆的属性(半径,颜色,坐标,周长,面积)。在图形界面中根据对象的属性显示出对应的圆。
完整代码:
import math
import turtle
import time
class Circle:
#初始化圆的参数
def __init__(self,r=50,border="black",fill="blue",x=0,y=0):
self.r = r
self.border = border
self.fill = fill
self.x = x
self.y =y
#计算圆的周长
def get_c(self):
return 2 * math.pi * self.r
#计算圆的面积
def get_s(self):
return math.pi * math.pow(self.r,2)
#打印圆的基本信息
def show(self):
info = "半径为{}的圆的周长为{:.2f},面积为:{:.2f}\n坐标:({},{})"
info = info.format(self.r,self.get_c(),self.get_s(),self.x,self.y)
print(info)
return info
#绘制圆
def showPower(self):
"""在图形界面中根据对象的属性显示出对应的圆"""
# turtle.setup(600,600)
# turtle.title("根据所给条件绘制一个圆")
# pen = turtle.Pen()
global pen
pen.reset()
pen.up()
pen.goto(self.x,self.y) #起笔后移动到圆心坐标处
pen.down()
pen.color(self.border) #设置画笔颜色(设置圆的边框颜色)
pen.fillcolor(self.fill) #设置填充颜色
pen.begin_fill() #开始填充
pen.circle(self.r) #绘制圆,这个圆默认值是被填充颜色的
pen.end_fill() #结束填充
pen.up()
pen.goto(-260,-150)
pen.color("black")
pen.write(self.show(),font=("微软雅黑",16))
# turtle.done()
if __name__ == '__main__':
turtle.setup(600,600)
turtle.title("根据所给条件绘制一个圆")
pen = turtle.Pen()
circle1 = Circle()
circle1.show()
circle2 = Circle(60,"cyan","green",100,100)
circle2.showPower()
time.sleep(3)
circle3 = Circle(100)
circle3.showPower()
turtle.done()
打印结果:
绘制circle2:
打印circle1、circle2、circle3的数据: