2015-11-30 2 views
0

Мне удалось создать функцию, которая с заданным радиусом, начальной точкой и рядом точек. Она создаст большой круг и с этим кругом создаст 4 маленьких круга. Я хочу добавить сетку на заднем плане, которая будет отображать оси Y и X в TKinter каждые 100 пикселей друг от друга, начиная с верхнего левого угла, а положительное направление X - вправо, а положительное направление Y - вниз , Например, если экран 300X300, то tkinter будет иметь на своей оси X 100 200 300, идущей слева направо и 100 200 300 от донизу. вид вида сетки, который у вас есть, когда вы рисуете функцию y (x) с осью y и x, но с другой начальной точкой и в другом «правильном направлении» оси y.Как создать сетку на TKINTER в python

пример кода из noraml, полный, штриховой рисунок я использую, из класса линии, созданной, который содержит 2 очка начальную точку и конечную точку:

rootWindow = Tkinter.Tk() 
rootFrame = Tkinter.Frame(rootWindow, width=1000, height=800, bg="white") 
rootFrame.pack() 
canvas = Tkinter.Canvas(rootFrame, width=1000, height=800, bg="white") 
canvas.pack() 
def draw_line(l): 
"Draw a line with its two end points" 
draw_point(l.p1) 
draw_point(l.p2) 
# now draw the line segment 
x1 = l.p1.x 
y1 = l.p1.y 
x2 = l.p2.x 
y2 = l.p2.y 
id = canvas.create_line(x1, y1, x2, y2, width=2, fill="blue") 
return id 
+0

В какой части проблемы вы боретесь? Похоже, вы знаете, как рисовать круги. Вы знаете, как рисовать линии? Вы знаете, как создать цикл, который прыгает с шагом в 100? –

+0

Да, я знаю, как создать линию [или, по крайней мере, у меня есть пример, который, как я думаю, я понимаю). но при создании сетки линии сетки arent, как обычная линия. линии сломаны. Я имею в виду вместо _________ это будет - - - - - - -. – maor

+0

, пожалуйста, покажите пример кода, который это делает. Мы не можем исправить код, который мы не видим. –

ответ

2

Это позволит создать сетку на холсте для вас

import tkinter as tk 

def create_grid(event=None): 
    w = c.winfo_width() # Get current width of canvas 
    h = c.winfo_height() # Get current height of canvas 
    c.delete('grid_line') # Will only remove the grid_line 

    # Creates all vertical lines at intevals of 100 
    for i in range(0, w, 100): 
     c.create_line([(i, 0), (i, h)], tag='grid_line') 

    # Creates all horizontal lines at intevals of 100 
    for i in range(0, h, 100): 
     c.create_line([(0, i), (w, i)], tag='grid_line') 

root = tk.Tk() 

c = tk.Canvas(root, height=1000, width=1000, bg='white') 
c.pack(fill=tk.BOTH, expand=True) 

c.bind('<Configure>', create_grid) 

root.mainloop() 
Смежные вопросы