提交 e752ca3f 编写于 作者: 1_bit's avatar 1_bit

basice core file version 0.1 demo

上级
from turtle import *
class Core:
'''
设置
'''
#填充颜色色值
#@fcolor=点填充颜色
def fillcolor_set(self,fcolor="black"):
fillcolor(fcolor)
#笔杆颜色设置
#@fcolor=点填充颜色
#@pcolor=线颜色
def pencolor_set(self,fcolor="black",pcolor="1"):
if pcolor=="1":
pcolor=fcolor
pencolor(pcolor)
else:
pencolor(pcolor)
#笔杆尺寸
#@psize=线尺寸
def pensize_set(self,psize=1):
pensize(psize)
'''
other func
'''
#跳转
def loc_goto(self,movepos):
penup()
goto(pos()+movepos)
pendown()
def goto_(self,pos_):
penup()
goto(pos_)
pendown()
#line方法的绘图跳转控制
def line_control_func_draw_move(self,cout_i,direction,lenght,plenght):
if cout_i!=(lenght-1):
if direction=="right":
self.loc_goto((plenght,0))
elif direction=="left":
self.loc_goto((-plenght,0))
elif direction=="up":
self.loc_goto((0,plenght))
elif direction=="down":
self.loc_goto((0,-plenght))
elif cout_i==(lenght-1):
if direction=="left":
self.loc_goto((plenght,0))
if direction=="up":
self.loc_goto((0,-plenght))
#step方法的绘图跳转控制
#@lenght=总长
#@blenght=bit一个位长度
#@plenght=点长度
#@direction1=横线绘制方向
#@direction2=竖线绘制方向
#@fcolor=填充颜色
#@pcolor=笔颜色
#@psize=笔大小
#@gotopos=如何跳转pos位置
#@cout_i=循环控制变量i
def step_control_func_draw_move(self,lenght,blenght,plenght,direction1,direction2,fcolor,pcolor,psize,gotopos1,gotopos2,cout_i,height):
print('-----------',blenght)
posdict={}
posdict['line'+str(cout_i)]=self.line(lenght=blenght,plenght=plenght,direction=direction1,fcolor=fcolor,pcolor=pcolor,psize=psize)
self.loc_goto(gotopos1)
posdict['vline'+str(cout_i)]=self.line(lenght=height,plenght=plenght,direction=direction2,fcolor=fcolor,pcolor=pcolor,psize=psize)
if cout_i!=(lenght-1):
self.loc_goto(gotopos2)
return posdict
'''
绘制
'''
#绘制点
#@plenght=点长度
#@fcolor=点填充颜色
#@pcolor=线颜色
#@psize=线尺寸
def point(self,plenght=10,fcolor="black",pcolor="1",psize=1):
poslist=[]
self.fillcolor_set(fcolor)
self.pencolor_set(fcolor,pcolor)
self.pensize_set(psize)
begin_fill()
for i in range(0,4):
poslist.append(pos())
fd(plenght)
right(90)
end_fill()
return poslist
#绘制线段
#@lenght=线长度
#@plenght=点长度
#@fcolor=点填充颜色
#@pcolor=线颜色
#@psize=线尺寸
def line(self,lenght=1,plenght=10,direction="right",fcolor="white",pcolor="1",psize=1,symmetrical="f",symmetrical_direction="right"):
posdict={}
symmetrical_point="f"
if symmetrical!="f":
if symmetrical_direction=="right":
symmetrical_point=pos()+(int(symmetrical)*plenght,0)
elif symmetrical_direction=="left":
symmetrical_point=pos()+(-int(symmetrical)*plenght,0)
elif symmetrical_direction=="up":
symmetrical_point=pos()+(0,int(symmetrical)*plenght)
elif symmetrical_direction=="down":
symmetrical_point=pos()+(0,-int(symmetrical)*plenght)
for i in range(0,lenght):
posdict['point'+str(i)]=self.point(plenght=plenght,fcolor=fcolor,pcolor=pcolor,psize=psize)
self.line_control_func_draw_move(i,direction,lenght,plenght)
if symmetrical!="f":
self.goto_(symmetrical_point)
posdict['symmetrical_point']=self.line(lenght=lenght,plenght=plenght,direction=direction,fcolor=fcolor,pcolor=pcolor,psize=psize,symmetrical="f")
self.goto_(posdict['point'+str(lenght-1)][3])
return posdict
#绘制线段
#@lenght=线长度
#@height=线高度
#@blenght=bit一个位长度
#@plenght=点长度
#@fcolor=点填充颜色
#@pcolor=线颜色
#@psize=线尺寸
def step(self,lenght=1,height=1,blenght=1,plenght=10,direction="right",fcolor="black",pcolor="1",psize=1,symmetrical="f",symmetrical_direction="right"):
posdict={}
symmetrical_point="f"
symmetrical_draw_direction=''
if symmetrical!="f":
if symmetrical_direction=="right":
symmetrical_point=pos()+(int(symmetrical)*plenght,0)
if direction=="right":
symmetrical_draw_direction="left"
elif direction=="left":
symmetrical_draw_direction="right"
elif direction=="rightdown":
symmetrical_draw_direction="leftdown"
elif direction=="leftdown":
symmetrical_draw_direction="rightdown"
elif symmetrical_direction=="left":
symmetrical_point=pos()+(-int(symmetrical)*plenght,0)
if direction=="right":
symmetrical_draw_direction="left"
elif direction=="left":
symmetrical_draw_direction="right"
elif direction=="rightdown":
symmetrical_draw_direction="leftdown"
elif direction=="leftdown":
symmetrical_draw_direction="rightdown"
elif symmetrical_direction=="rightdown":
symmetrical_point=pos()+(0,int(symmetrical)*plenght)
if direction=="right":
symmetrical_draw_direction="left"
elif direction=="left":
symmetrical_draw_direction="right"
elif direction=="rightdown":
symmetrical_draw_direction="leftdown"
elif direction=="leftdown":
symmetrical_draw_direction="rightdown"
elif symmetrical_direction=="leftdown":
symmetrical_point=pos()+(0,-int(symmetrical)*plenght)
if direction=="right":
symmetrical_draw_direction="left"
elif direction=="left":
symmetrical_draw_direction="right"
elif direction=="rightdown":
symmetrical_draw_direction="leftdown"
elif direction=="leftdown":
symmetrical_draw_direction="rightdown"
for i in range(0,lenght):
if direction=="right":
posdict["step"+str(i)]=self.step_control_func_draw_move(lenght,blenght,plenght,direction,"up",fcolor,pcolor,psize,(plenght,plenght),(plenght,plenght*2),i,height)
elif direction=="left":
posdict["step"+str(i)]=self.step_control_func_draw_move(lenght,blenght,plenght,"left","up",fcolor,pcolor,psize,(-plenght*2,plenght),(-plenght,plenght*2),i,height)
elif direction=="rightdown":
posdict["step"+str(i)]=self.step_control_func_draw_move(lenght,blenght,plenght,"right","down",fcolor,pcolor,psize,(plenght,-plenght),(plenght,-plenght),i,height)
elif direction=="leftdown":
posdict["step"+str(i)]=self.step_control_func_draw_move(lenght,blenght,plenght,"left","down",fcolor,pcolor,psize,(-plenght*2,-plenght),(-plenght,-plenght),i,height)
#对称
if symmetrical!="f":
self.goto_(symmetrical_point)
posdict['symmetrical_step']=self.step(lenght=lenght,height=height,blenght=blenght,plenght=plenght,direction=symmetrical_draw_direction,fcolor=fcolor,pcolor=pcolor,psize=psize)
print(posdict)
self.goto_(posdict['step'+str(lenght-1)]['vline'+str(lenght-1)]['point'+str(height-1)][0])
return posdict
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册