• Как рисовать линии в tkinter?

    @Twedis Автор вопроса
    У меня получилось. Правда код написан как попало, но он работает. Ещё более лучших линий можно добиться с помощью smooth (сглаживание линии), но для этого кроме последних и предпоследних координат нужны ещё и препредпоследние координаты
    from tkinter import *
    root = Tk()
    canv = Canvas(bg="white", width=1000,height=1000)  
    canv.pack()
    def click(event):	
    	canv.create_oval((event.x, event.y, event.x+20, event.y+20),  width=0,  fill='black')
    	xp = event.x
    	yp = event.y
    	xp = str(xp)+'\n'
    	yp = str(yp)
    	f = open('tt.txt','w')
    	xp = f.write(xp)
    	yp = f.write(yp)
    	f.close
    	canv.bind("<B1-Motion>", onmotion)
    def onmotion(event):
    	f = open(r'tt.txt')
    	xp = f.readlines()	
    	xp[0] = int(xp[0])+10
    	xp[1] = int(xp[1])+10	
    	f.close
    	canv.create_oval((event.x, event.y, event.x+20, event.y+20),  width=0,  fill='black')
    	canv.create_line(xp[0], xp[1], event.x+10, event.y+10,width=20, fill='black')
    	xp = event.x
    	yp = event.y
    	xp = str(xp)+'\n'
    	yp = str(yp)
    	f = open('tt.txt','w')
    	xp = f.write(xp)
    	yp = f.write(yp)
    	f.close	
    canv.bind("<Button-1>", click)
    root.mainloop()
    Ответ написан
    Комментировать
  • Как получить цвет пискеля с Canvas в tkinter?

    @Twedis Автор вопроса
    Вот готовый код который был мне нужен. Он написан как попало, но работает. С помощью него можно рисовать линии и получать массив закрашенных(1) и не закрашенных(0) линий.
    Код

    from tkinter import *
    root = Tk()
    screen = Canvas(root,width=504, height=504)
    screen.grid(row=0, column=0)
    screen.create_rectangle((0, 0, 504, 504),fill="white")	
    
    step = 36
    
    def click(event):    
        screen.create_oval((event.x, event.y, event.x+step, event.y+step),  width=0,  fill='black')
        xp = event.x
        yp = event.y
        xp = str(xp)+'\n'
        yp = str(yp)
        f = open('tt.txt','w')
        xp = f.write(xp)
        yp = f.write(yp)
        f.close
        screen.bind("<B1-Motion>", draw)
    
    
    
    def onmotion(event): 
        x = event.x
        y = event.y 
        a = []
        temp = 18
        p = temp//2
        for j in range(0, 504, temp):
        	
        	for i in range(0, 504, temp):
        		if screen.itemcget(screen.find_overlapping(i+p,j+p,i+p,j+p)[-1], "fill" ) != 'black':
        			a.append(0)
        		else:
        			a.append(1)
        	   
        f1 = open("arr.txt", 'w')    
        f1.write(str(a))
        f1.close
    
    
    def draw(event):
        f = open(r'tt.txt')
        xp = f.readlines()   
        xp[0] = int(xp[0])+step/2
        xp[1] = int(xp[1])+step/2    
        f.close
        
        screen.create_oval((event.x, event.y, event.x+step, event.y+step),  width=0,  fill='black')   
        screen.create_line(xp[0], xp[1], event.x+step/2, event.y+step/2,width=step, fill='black')
            
        xp = event.x
        yp = event.y
        xp = str(xp)+'\n'
        yp = str(yp)
        f = open('tt.txt','w')
        xp = f.write(xp)
        yp = f.write(yp)
        f.close
        screen.bind("<Motion>", onmotion)
    
    
    screen.bind("<Button-1>",click)
     
    
    root.mainloop()

    Ответ написан
    Комментировать
  • Почему пропала Ubuntu в GRUB после установки Kali Linux?

    @Twedis Автор вопроса
    Я короче перепробовал всё что возможно и невозможно не чего не вышло.Я установил ubuntu с нуля.Но пишите свои ответы для других потому-что я всё зделал.
    Ответ написан
    Комментировать
  • Почему не отправляется данные в базу данных при сокращенной ссылке php?

    @Twedis Автор вопроса
    Я решил эту проблему вместо того htaccess кода я нашел htaccess код с которым сокращается ссылка и отправляется в БД

    htaccess код:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    Ответ написан
    Комментировать