[Code] Python/Mathe: Koordinatensystem Seitenhalbierende

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von G33z4RR, 12. April 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. April 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Python/Mathe: Koordinatensystem Seitenhalbierende

    Hey,
    ich muss etwas in einer einfachen Programmiersprache (Python) erstellen und muss mich schon seit ner halben Stunde am Kopf kratzen... Vielleicht erkennt von euch einer meinen Fehler?

    Die Aufgabe:
    Ein Programm für ein Koordinatensystem schreiben, bei dem man die gewünschten Eckpunkte eines Dreiecks eintippen kann, welches dann dieses Dreieck zeichnet. So weit so gut, aber wie kann ich dem Programm übermitteln, die Seitenhalbierende zu finden?

    (bzw. wie lautet die Formel für die Seitenhalbierende? Ist es die hier?
    Spoiler
    newbitmapimage2a.png
    {img-src: //img168.imageshack.us/img168/9742/newbitmapimage2a.png}

    Wenn es die hier ist, dann muss ich die Schreibweise im Programm umgehen, da die Koordinaten mit einem Komma getrennt werden und das Programm bei Rechnungen diese Trennung nicht erkennt und es als normale Kommazahl sieht!

    Hier ist mal mein Script:
    newbitmapimagekd.png
    {img-src: //img168.imageshack.us/img168/169/newbitmapimagekd.png}


    Würde mich echt über Lösungsvorschläge freuen! BWs sind klar!

    Mfg
     
  2. 12. April 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    nö... isse nicht... (mal abgesehen davon, dass die zeichnung nicht zu den koordinaten passen kann und du dir wohl der bedeutung von "=" nicht im klaren bist)

    x_halb = (x_a + x_b) / 2
    y_halb = (y_a + y_b) / 2

    dementsprechend ist auch deine umsetzung im programm falsch.
     
  3. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Jaa, ich hatte mir das für mich selbst in Paint gemalt (als kleine Skizze) weil ich keinen Stift und Papier gefunden habe), hättest du dir den Script aber mal angeguckt und/oder weitergelesen, dann hättest du gesehen, dass es im Programm richtig ist (auch ohne vertauschte a-b Variablen)...

    Jemand, der Ahnung von Python hat?
     
  4. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Du solltest das Programm vieleicht als Text posten(souce-Tag), weil so kann man das Programm nur testen, indem man es abschreibt und ich glaub die wenigsten werden das machen.
     
  5. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Code:
    # -*- coding: utf-8 -*-
    from Tkinter import *
    
    blatt = Canvas(width=400,height=400,bg='white')
    blatt.pack()
    
    #strecke=blatt.create_line(0,0,200,200)#Strecke von (x1/y1) nach (x2/y2)
    #kreis=blatt.create_oval(25-25,25-25,25+25,25+25) #Kreis um (25/25) mit r=25
    
    #1. Dreieck zeichnen durch gegebenes A, B, C
    #2. Seitenhalbierende zeichnen (Strecke vom Mittelpunkt einer Seite
    # zur gegenueberliegenden Ecke)
    #3. Schnittpunkt der Seitenhalbierenden berechnen.
    #
    
    a1=input("Koordinaten x von A: ")
    a2=input("Koordinaten y von A: ")
    b1=input("Koordinaten x von B: ")
    b2=input("Koordinaten y von B: ")
    c1=input("Koordinaten x von C: ")
    c2=input("Koordinaten y von C: ")
    
    def main ():
     s1= (a1+b1+c1)/3
     s2= (a2+b2+c2)/3
     streckesa=blatt.create_line(s1,s2,a1,a2)
     streckesb=blatt.create_line(s1,s2,b1,b2)
     streckesc=blatt.create_line(s1,s2,c1,c2)
     dreieck ()
     print "Der Schnittpunkt lautet"
     print s1,s2 
     halbierende ()
    
    def dreieck ():
     strecke1=blatt.create_line(a1,a2,b1,b2)
     strecke2=blatt.create_line(b1,b2,c1,c2)
     strecke3=blatt.create_line(c1,c2,a1,a2)
    
    def halbierende ():
     halb1=(a1+(a2))/2
     halb2=(b1+(b2))/2
     go1=blatt.create_line(halb1,halb2,c1,c2)
     halb3=(b1+(b2))/2
     halb4=(c1+(c2))/2
     go2=blatt.create_line(halb3,halb4,a1,a2) 
     halb5=(c1+(c2))/2
     halb6=(a1+(a2))/2
     go3=blatt.create_line(halb5,halb6,b1,b2)
    
    main ()
    
     
  6. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Seitenhalbierende – Wikipedia

    Einfach die Formeln anwenden.

    statt
    Code:
    main()
    
    würd ich schreiben:
    Code:
    if __name__ == '__main__':
     methodeA()
     methodeB()
    
    So hast du eine bessere Modularisierung. Wenn du auf der Python-Shell das Modul importierst wird dann nicht immer sofort die main-Methode ausgeführt.
     
  7. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    ich habe keine länge gegeben, ich habe lediglich nur 3 Eckpunkte des Dreiecks gegeben, die in einem KOS sind. Demnach ist diese Wikipedia Formel nicht umsetzbar.

    Was hilft mir die Modularisierung, wenn ich die Aufgabe nicht packe?
     
  8. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Was genau suchst du jetzt? Die Seitenhalbierenden oder dessen Schnittpunkt (den Schwerpunk). Letzteres lässt sich relativ einfach berechnen:
    Bild
    Zu den Seitenhalbierenden:
    Du nimmt den Mittelpunkt zweier strecken und verbindest diesen mit dem gegenüber liegendem Punkt.
    PS: Dein Koordinatensystem funktioniert so nicht. Du musst dein Koordinatensystem in das Pixelsystem von Tinker umwandeln und skalieren!
     
  9. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    ja danke, hab ich...

    halb1=(a1+(a2))/2

    nach dem text für den input kann man erkennen dass a1 die x koordinate von A ist und a2 die y koordinate des punktes. wenn du diese miteinander verrechnest kommt ne zahl raus, die alles andere als die mitte zwischen den x bzw. y koordinaten von punkt A und B ist.

    ...aber wenn du mir nicht glauben willst, dann versuch das doch mal per hand in einem koordinatensystem einzuzeichnen...

    für die seitenhalbierende braucht man nur den mittelpunkt einer strecke zwischen zwei punkten


    wenn kein "normales" koordinatensystem eingezeichnet werden soll, sondern nur das dreieck mit den seitenhalbierenden, dann kann man dies vernachlässigen, es sei denn tkinter benutzt ein extrem außergewöhnliches pixelsystem. (herauskommen sollte in jedem fall ein zum gewünschten dreieck kongruentes dreieck)

    diese formel gibt ihm die länge der seitenhalbierenden an, nicht den punkt der mitte zwischen den punkten einer strecke

    gibts hier auch leute, die denken bevor sie posten?
     
  10. 12. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Also sagst du, dass es eigentlich

    halb1=(a1+(b2))/2 sein sollte? Das klappt aber auch nicht...
    Ich habe es mit dem Schwerpunkt (wie hier angegeben:
    s1= (a1+b1+c1)/3
    s2= (a2+b2+c2)/3
    streckesa=blatt.create_line(s1,s2,a1,a2)
    streckesb=blatt.create_line(s1,s2,b1,b2)
    streckesc=blatt.create_line(s1,s2,c1,c2)

    )
    überprüft und die beiden geraden sind nicht kongruent...
    Ich brauche die Koordinaten Der Mittenseitenlänge,(nicht eine Formel mit Längen) mehr nicht, doch bin ich zu dumm dies hinzubekommen...

    Verzeihung, wenn ich nicht verstehe, was du mir sagen willst ?( Naja, hast eine BW für deine Bemühungen
     
  11. 13. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Hast doch die Lösung gegeben bekommen, schau doch was du falsch gemacht hast!
    Eventuell das nächste mal die Variablen so bennen das man auch selbst den Inhalt direkt herausschliessen kann

    =>
    Code:
    halb1 = (a1+b1)/2
    halb2 = (a2+b2)/2
    Und das ganze zum C Punkt hin-"ziehen/zeichen", das haste ja richtig.

    Mfg Rushh0ur
     
  12. 13. April 2010
    AW: Python/Mathe: Koordinatensystem Seitenhalbierende

    Danke für eure Bemühungen, letzendlich lag's doch an meiner Dummheit ^^sry
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.