Ermittelung der Steigung einer Geraden ohne Division



  • Hallo,
    Wenn ich im 2 Dimensionalen Raum zwei Punkte gegeben habe und die Geradengleichung der Geraden durch diese zwei Punkte ermitteln möchte, bestimmte ich ja zuerst deren Steigung:

    m=(y2-y2)/(x2-x1)
    

    Kann man die Steigung dieser Geraden auch ohne Division bestimmen?
    Hintergrund ist der, dass ich gerade ein Spiel programmiere und langsam anfangen möchte, die performance ein wenig zu verbessern (Division ist nunmal teuer 🙂 )


  • Mod

    Divisi schrieb:

    (Division ist nunmal teuer 🙂 )

    Nein.



  • Programmierst du n Spiel für'n C64? 🤡



  • SeppJ schrieb:

    Divisi schrieb:

    (Division ist nunmal teuer 🙂 )

    Nein.

    Natürlich geht es.

    Division ist nichts weiter wie eine Folge von Subtraktionen.

    Wenn du zum Beispiel eine 8 hast und willst sie durch vier teilen dann musst du einfach:

    8-4= 4 (eins gemerkt, vier übrig)
    4-4= 0 (2 gemerkt, null übrig)

    also ist das ergebnis zwei.

    Man Subtrahiert also bei (y2-y1)/(x2-x2) den Nenner vom Zähler nach der o. g. Methode. Meistens ergibt es noch einen Rest.



  • die performance ein wenig zu verbessern

    Weisst du denn, wie teuer Division im Vergleich zur Addition ist auf einem modernen Rechner? Und wie viel das von deiner Gesamtperformance ausmacht ...



  • a) Die Division von floats ist nicht so enorm teuer.
    b) atan2 benutzen, vielleicht ist das recht schnell, ka.
    c) make_pair(y2-y2,x2-x1) speichern und in den vergleichen multiplizieren.



  • TravisG schrieb:

    Programmierst du n Spiel für'n C64? 🤡

    ARMs, also quasi 99% der mobilve devices, haben keine division.

    @topic
    wenn du sagst wofuer du es brauchst, kann man dir eher helfen. zum zeichnen oder z.b. schnittpunkttesten kommst du vollkommen ohne division aus.


Anmelden zum Antworten