Python... de inkább matematika... de mindenképpen kezdő.. LOOL

Re
Szóval a lényegre térek..
Adott egy feladat:
A « Vonalat rajzol » gombra kattintva a
vásznon megjelenik egy új, színes vonal, ami
minden alkalommal elhajlik az előzőtől.
Ha a « Más szín » gombra kattintunk, akkor
egy véges színkészletből véletlenszerűen egy új színt választ a script. Ez lesz a következő egyenes
színe.
A « Kilép » gomb az alkalmazás befejezésére és az ablak zárására való.

És adott a megoldás:

from Tkinter import *
from random import randrange
# --- az eseménykezel függvények definíciója : --ő -
def drawline():
global x1, y1, x2, y2, color
can1.create_line(x1,y1,x2,y2,width=2,fill=color)
# a koordináták módosítása a következő egyenes számára :
y2, y1 = y2+10, y1-10
def changecolor():
global color
pal=['purple','red','blue','orange','yellow']
c = randrange(8) # => véletlenszám generálása 0 és 7 között
color = pal[c]
#------ Főprogram -------
# a következő változókat globális változókként használjuk :
x1, y1, x2, y2 = 10, 190, 190, 10 # az egyenes koordinátái
color = 'dark red' # az egyenes színe
# A fő-widget létrehozása ("master") :
abl1 = Tk()
# a "slave" widget-ek létrehozása :
can1 = Canvas(abl1,bg='dark grey',height=500,width=650)
can1.pack(side=LEFT)
gomb1 = Button(abl1,text='Kilép',command=abl1.quit)
gomb1.pack(side=BOTTOM)
gomb2 = Button(abl1,text='Vonalat rajzol',command=drawline)
gomb2.pack()
gomb3 = Button(abl1,text='Más szín',command=changecolor)
gomb3.pack()
abl1.mainloop() # eseményfogadó indítása
abl1.destroy()

Rendben, értem is a feladatot, de a köv. feladat azt kéri, hogy egy módosítás után a vonalak, amiket ezután a vászonra rajzol vízszintes és függőlegesek legyenek.
Azt tudom, hogy az x1, x2, y1, y2 írja le a koordinátákat, de nem értem a logikát, hogy miszerint befolyásolja a függvények közti szöget.. ezért kérem hogy valaki magyarázza el..
remélem, hogy eléggé érthetően írtam le amit nem értek..
Tudom, hogy ostoba kérdés és bocsánat a hosszú tartalomért, de nem szeretném ennyiben hagyni a dolgot, mert a többi feladat is erre épül..

Előre is köszönöm..
egy kezdő Pythonozó..

Hozzászólások

bocs de a tabulátorok kiszürődtek..

 # a koordináták módosítása a következő egyenes számára :
y2, y1 = y2+10, y1-10

Az egyenes kezdőpontjának y koordinátáját 10 ponttal csökkenti, a végpont y koordinátáját pedig 10 ponttal növeli minden egyes "rajzol" gombnyomásra. Függőleges vonal rajzolásához (k,y1) kezdő és (k,y2) végpont, vízszintes vonalhoz pedig (x1,l) (x2,l) végpontok szükségesek.

Ehh.. igen azt tudom, hogy változók.. de engem úgy érdekelnek mint kordináták... ennél akadtam el...
Felrajzoltam egy papirra, és most felfedeztem a rendszert az egészben..
Adott egy koordinátarendszer ami jelen esetben a vászonon van...
Az egyenesnek van két pontja.. az egyik A(x1,y1) a másik A`(x2,y2) ...
Nah, és majd az y1 csökken 10 el az y2 növekszik.. gondolom így fog megváltozni az egyenes...
A következő kérdések amik még nem tiszták:
A vásznon hogy is van ez a koordinátarendszer? Hol helyezkedik el, és mi a mértékegysége (tipp: pixel?)

Itt keletkezik a vászon:
can1 = Canvas(abl1,bg='dark grey',height=500,width=650)

Itt pedig a vonal:
can1.create_line(x1,y1,x2,y2,width=2,fill=color)

A vászon tehát 650 pixel széles, és 500 pixel magas (legalábbis, míg át nem méretezed az ablakot).
A bal felső sarok a (0,0), a jobb alsó pedig a (650,500).