Ermitteln ob ein Dreieck im-/ oder gegen den Uhrzeigersin gezeichnet wird



  • Hi,

    ich befasse mich zur Zeit mit SoftwareRendering und habe auch schon einen Funktion ein Dreieck zumindest einmal sauber zeichnet. Soll heißen dass der Rand gut aussieht und somit die Dreiecke gut aneinander passen.
    Allerdings ist bei Realtime-SoftwareRendering Optimierung sehr, sehr wichtig daher wollte ich euch fragen wie ich rechnerisch am bessten ermitteln kann ob das Dreieck im-/ oder gegen den Uhrzeigersin gezeichnet wird.

    Im Uhrzeiger sin:
    
    1\
    | \
    |  2
    | /
    3/
    
    Gegen den Uhrzeiger sin:
    
    1\
    | \
    |  3
    | /
    2/
    

    Danke schon mal 🙂



  • Ich nenne deine Punkte mal ein wenig um:

    A\
    | \
    |  B
    | /
    C/
    

    Es sei d = det(AB, AC) = (B.x - A.x)(C.y-A.y) - (B.y - A.y)(C.x-A.x).

    Wenn d > 0 dann sind die Punkte im gleichen Sinn wie die Einheitsvektoren angeordnet. Wenn d < 0 anders rum. Wenn d = 0 dann hast du ein Strich.

    Der erste Einheitsvektor ist normalerweise (1, 0) und der zweite (0, 1). Wie du drehen musst um vom ersten auf den zweiten zu kommen hängt von der Wahl deiner Axen ab.



  • Wunder bar, danke schön 😃


Anmelden zum Antworten