python在終端繪制一個畫布:consoleCanvas
效果如圖 :
已發布到pypi
https://pypi.org/project/ConsoleCanvas/
Project description
ConsoleCanvas用法:
0.安裝
pip install ConsoleCanvas -i https://pypi.python.org/simple
0.1.終端顯示cv2的img:
import consoleCanvas,cv2 img=cv2.imread("C:\\Users\\Administrator\\Desktop\\1.png") consoleCanvas.cvShow(img)
1.先初始化對象:
import consoleCanvas A=consoleCanvas.consoleCanvas()
2.生成畫布:
A.ProduceCanvas(80,80)#創建畫布
3.繪制像素點:
A.reviseCanvas([x,y],1) #[x,y]是坐標,1是代表繪制黑色點,0是繪制白色點
4.顯示畫布:
A.show() #顯示畫布
5.清空畫布:
A.ProduceCanvas(80,80)#也就是重新創建畫布
6.例子
#繪制圓形 import consoleCanvas a=10 b=10 r=10 A=consoleCanvas.consoleCanvas()#初始化 A.ProduceCanvas(21,21)#創建畫布 A.reviseCanvas([0,0],1) for x in range(a-r,a+r): y=int((((r**2)-(x-a)**2)**(1/2))+b) A.reviseCanvas([x,y],1)#繪制畫布像素 for x in range(a+r,a-r,-1): y=int(-1*(((r**2)-(x-a)**2)**(1/2))+b) A.reviseCanvas([x,y],1)#繪制畫布像素 A.show() #顯示畫布
輸出:
⠁⠀⠔⠀⠀⠁⠀⠂⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠠⠃⠀⠀⠀⠀⠀⠀⠈⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠇⠀⠀⠀⠀⠀⠀⠀⠀⠨⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠇⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠈⠆⠀⠀⠀⠀⠀⠀⠠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠑⠀⠀⠄⠀⠂⠁⠀
用法:
1.先初始化對象:
A=consoleCanvas()
2.生成畫布:
A.ProduceCanvas(80,80)#創建畫布
3.繪制像素點:
A.reviseCanvas([x,y],1) #[x,y]是坐標,1是代表繪制黑色點,0是繪制白色點
4.顯示畫布:
A.show() #顯示畫布
5.清空畫布:
A.ProduceCanvas(80,80)#也就是重新創建畫布
Python示例代碼:
class consoleCanvas: def __init__(self): #這些字符是盲文字符 self.li=["⠀", "⠁", "⠂", "⠃", "⠄", "⠅", "⠆", "⠇", "⠈", "⠉", "⠊", "⠋", "⠌", "⠍", "⠎", "⠏", "⠐", "⠑", "⠒", "⠓", "⠔", "⠕", "⠖", "⠗", "⠘", "⠙", "⠚", "⠛", "⠜", "⠝", "⠞", "⠟", "⠠", "⠡", "⠢", "⠣", "⠤", "⠥", "⠦", "⠧", "⠨", "⠩", "⠪", "⠫", "⠬", "⠭", "⠮", "⠯", "⠰", "⠱", "⠲", "⠳", "⠴", "⠵", "⠶", "⠷", "⠸", "⠹", "⠺", "⠻", "⠼", "⠽", "⠾", "⠿", "⡀", "⡁", "⡂", "⡃", "⡄", "⡅", "⡆", "⡇", "⡈", "⡉", "⡊", "⡋", "⡌", "⡍", "⡎", "⡏", "⡐", "⡑", "⡒", "⡓", "⡔", "⡕", "⡖", "⡗", "⡘", "⡙", "⡚", "⡛", "⡜", "⡝", "⡞", "⡟", "⡠", "⡡", "⡢", "⡣", "⡤", "⡥", "⡦", "⡧", "⡨", "⡩", "⡪", "⡫", "⡬", "⡭", "⡮", "⡯", "⡰", "⡱", "⡲", "⡳", "⡴", "⡵", "⡶", "⡷", "⡸", "⡹", "⡺", "⡻", "⡼", "⡽", "⡾", "⡿", "⢀", "⢁", "⢂", "⢃", "⢄", "⢅", "⢆", "⢇", "⢈", "⢉", "⢊", "⢋", "⢌", "⢍", "⢎", "⢏", "⢐", "⢑", "⢒", "⢓", "⢔", "⢕", "⢖", "⢗", "⢘", "⢙", "⢚", "⢛", "⢜", "⢝", "⢞", "⢟", "⢠", "⢡", "⢢", "⢣", "⢤", "⢥", "⢦", "⢧", "⢨", "⢩", "⢪", "⢫", "⢬", "⢭", "⢮", "⢯", "⢰", "⢱", "⢲", "⢳", "⢴", "⢵", "⢶", "⢷", "⢸", "⢹", "⢺", "⢻", "⢼", "⢽", "⢾", "⢿", "⣀", "⣁", "⣂", "⣃", "⣄", "⣅", "⣆", "⣇", "⣈", "⣉", "⣊", "⣋", "⣌", "⣍", "⣎", "⣏", "⣐", "⣑", "⣒", "⣓", "⣔", "⣕", "⣖", "⣗", "⣘", "⣙", "⣚", "⣛", "⣜", "⣝", "⣞", "⣟", "⣠", "⣡", "⣢", "⣣", "⣤", "⣥", "⣦", "⣧", "⣨", "⣩", "⣪", "⣫", "⣬", "⣭", "⣮", "⣯", "⣰", "⣱", "⣲", "⣳", "⣴", "⣵", "⣶", "⣷", "⣸", "⣹", "⣺", "⣻", "⣼", "⣽", "⣾", "⣿"] def ProduceCanvas(self,Width, height): self.map_c=[[0 for i in range(80)] for i in range(80)] return self.map_c def reviseCanvas(self,position, data): self.map_c[position[0]][position[1]]=data return self def getnum(self,data): #匹配字符索引 q=[ [1,8], [2,16], [4,32], [64,128],] num=0 for w in range(len(data)): for h in range(len(data[w])): if (data[w][h]==1): num+=q[w][h] return num def show(self,map_c=""): if map_c=="": map_c=self.map_c list_data=[] for wi in range((len(map_c)%3)+(len(map_c)%3)):#補齊行數不足寬度 map_c.append([0 for i in range(len(map_c[0]))]) for hi in map_c:##補齊列數不足寬度 for n in range((len(map_c)%3)+(len(map_c)%3)): hi.append(0) for w in range(0,len(map_c),3): #切片地圖,變換地圖 lis=[] for i in range(0,len(map_c[w]),2): lis.append([map_c[w][i:i+2],map_c[w+1][i:i+2],map_c[w+2][i:i+2]]) list_data.append(lis) for i in list_data: #顯示地圖 for x in i: num=self.getnum(x) print(self.li[num],end="") print() if __name__ == "__main__": A=consoleCanvas()#初始化 A.ProduceCanvas(80,80)#創建畫布 a=50 b=50 r=20 for x in range(a-r,a+r): y=int((((r**2)-(x-a)**2)**(1/2))+b) A.reviseCanvas([x,y],1)#繪制畫布像素 for x in range(a+r,a-r,-1): y=int(-1*(((r**2)-(x-a)**2)**(1/2))+b) A.reviseCanvas([x,y],1)#繪制畫布像素 A.show() #顯示畫布

