Ich bekomme den Kreis nicht ueber mitte

Fragen zu Tkinter.
Antworten
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

guten tag
Gedankenfehler bitte um hilfe
Bild
hier die verzwickte stelle

Code: Alles auswählen

for move in xrange(1,schritte+1):
    canvas_new_Y =150-((move*versatz)/scale)
    #Linien korrekt erzeugt aus testgruenden schraeg 
    w.create_line(145,canvas_old_Y,150,canvas_new_Y, fill = 'red')
    # -> Kasus knaxus warumm geht das nicht
    # am ende jeder linie sollte ein kreis um den mittelpunkt sein 
    w.create_oval(
        canvas_new_Y,
        canvas_new_Y,
        150+canvas_new_Y,
        150+canvas_new_Y,outline='red' )
    canvas_old_Y=canvas_new_Y
kompletter Code 64zeilen
http://python-forum.de/pastebin.php?mode=view&s=46

ALSO Erklärung die schrägen aufwärts gehenden Linien sind nur zu testzwecken schräg und sind auch da wo sie hinsollen in der Schleife
NUR die Kreise sollen über mitte des fadenkreutzes center 150,150 und am ende der Linien sein also konzentrisch
Die eine tut die andere leider nicht
Es sollen ja auch mehrere geben wenn sich die werte ändern und dann wirds bunt!
ich bitte um entwirren meiner Gehirnzellen
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Ich würde vorschlagen, dass du dein Problem erstmal in vollständigen Sätzen, mit einer korrekten Grammatik und ein wenig Rechtschreibung, beschreibst. Nach mehrmaligem Lesen ist mir immer noch nicht klar was du eigentlich willst. Wenn ich raten müsste: Es liegt an dem nicht angepassten Durchmesser des Kreises.

Sebastian
Das Leben ist wie ein Tennisball.
Trichter
User
Beiträge: 45
Registriert: Montag 20. April 2009, 10:21

Beim Aufruf von create_oval() übergibst du die Koordinaten der linken-oberen und rechten-unteren Ecke eines Rechteckes, in das dann der Kreis gezeichnet wird.
Du verschiebst nun zwar, die Koordinaten dieser Punkte, aber du passt die Größe des Rechteckes nicht an.
Dadurch verschiebt sich natürlich auch der Mittelpunkt.

Versuchs mal mit:

Code: Alles auswählen

w.create_oval(canvas_new_Y, canvas_new_Y,
              300-canvas_new_Y, 300-canvas_new_Y,
              outline='red')
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

DANKE
Bild

Es war schon eine Kopfnuss !
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

und nun das ganze mit der Spirale
Nur der 2te halbkreis will nicht !
warum? logic B)
Bild

Code: Alles auswählen

if spirale==1:
    halbkreise=schritte*2
    vsh=(versatz/scale)/2.0
    w.create_line(150,150,150+(versatz/scale),150, fill = 'red')
    for arc_curve in xrange(1,halbkreise+1):
        if arc_curve %2 == 0:#geradezahl
            if arc_curve==2:
                #canvas_new_Y =150-((arc_curve*(versatz/2.0))/scale)
                w.create_arc(canvas_new_Y+vsh,canvas_new_Y,300-canvas_new_Y+vsh,300-canvas_new_Y,start=180,extent=180,outline='red',style=ARC)
            else:
                canvas_new_Y =150-((arc_curve*(versatz/2.0))/scale)
                w.create_arc(canvas_new_Y+vsh,canvas_new_Y,300-canvas_new_Y+vsh,300-canvas_new_Y,start=180,extent=180,outline='red',style=ARC)
        else:
            if arc_curve ==1 :
                canvas_new_Y =150-((arc_curve*versatz)/scale)
                w.create_arc(canvas_new_Y,canvas_new_Y,300-canvas_new_Y,300-canvas_new_Y,start=0,extent=180,outline='red',style=ARC)
            else:
                canvas_new_Y =150-((arc_curve*(versatz/2.0))/scale)
                w.create_arc(canvas_new_Y,canvas_new_Y,300-canvas_new_Y,300-canvas_new_Y,start=0,extent=180,outline='red',style=ARC)
                
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Danke an den CHAT

Code: Alles auswählen

           if arc_curve==2:
                #canvas_new_Y =150-((arc_curve*(versatz/2.0))/scale)
                w.create_arc(canvas_new_Y,canvas_new_Y,300-canvas_new_Y+vsh,300-canvas_new_Y,start=180,extent=180,outline='red',style=ARC)
 
Antworten