Kann jemand diese Formel vereinfachen ??



  • α = 180/PI * arccos((ax*bx+ay*by)/sqrt((ax*ax+ay*ay)*(bx*bx+by*by))



  • oggs_the_progger schrieb:

    α = 180/PI * arccos((ax*bx+ay*by)/sqrt((ax*ax+ay*ay)*(bx*bx+by*by))

    Wo geht die arccos Klammer zu?

    also was geht:

    (ax*bx+ay*by) 
    = (ab*x[h]2[/h]+ab*y[h]2[/h]) 
    = ab(x[h]2[/h]+y[h]2[/h])
    
    und
    
      sqrt((ax*ax+ay*ay)*(bx*bx+by*by)) 
    = sqrt((a[h]2[/h]x[h]2[/h]+a[h]2[/h]y[h]2[/h])*(b[h]2[/h]x[h]2[/h]+b[h]2[/h]y[h]2[/h]))
    = sqrt((a[h]2[/h](x[h]2[/h]+y[h]2[/h])*b[h]2[/h](x[h]2[/h]+y[h]2[/h]))
    = sqrt((a[h]2[/h]*b[h]2[/h]*(x[h]2[/h]*y[h]2[/h])[h]2[/h]))
    Wurzelziehn
    = a*b*(x[h]2[/h]+y[h]2[/h])
    

    Wenn nun Arccos den ganzen bruch einschliesst, kürzt sich das zu 1 weg
    also

    [e]alpha[/e] = 180/PI * arccos( 1 )
    

    danke für die Aufgabe, schreib in 2 Wochen Mathearbeit Abilevel, und muss noch viel üben 👍



  • wow echt genial danke



  • Wie gesagt, danke dir 👍

    Is denn nun die Klammer vom arccos um alles rum?
    Was rechnest du damit?



  • Buena Vista schrieb:

    also was geht:

    [...]
    = sqrt((a[h]2[/h]*b[h]2[/h]*(x[h]2[/h]*y[h]2[/h])[h]2[/h]))
    Wurzelziehn
    = a*b*(x[h]2[/h]+y[h]2[/h])
    

    Das gilt aber nur fuer positive Basen.



  • ax*ax = a2x2

    Keine Angst, die werden positiv 😃
    Aber natürlich haste recht, habe +/- vergessen.



  • Hinweis: ax ist vermutlich a_x und nicht a*x. Dann ist das da oben falsch.



  • na wenn das nichtmal der aufgabensteller merkt..



  • naja das hat der aufgabensteller schon gemerkt denn:

    ax ist keine multiplikation (a*x) sondern eine Variable

    ich errechne damit ob eine bestimmte koordinate innerhalb oder außerhalb eines dreiecks liegt.

    das problem ist diese formel braucht sehr lange um alle dreiecke zu überprüfen

    es sind ca. 1500*800*200*3 berechnungen nötig



  • oggs_the_progger schrieb:

    naja das hat der aufgabensteller schon gemerkt denn:

    ax ist keine multiplikation (a*x) sondern eine Variable

    ich errechne damit ob eine bestimmte koordinate innerhalb oder außerhalb eines dreiecks liegt.

    das problem ist diese formel braucht sehr lange um alle dreiecke zu überprüfen

    es sind ca. 1500*800*200*3 berechnungen nötig

    vielleicht solltest du erstmal versuchen diese anzahl (1500*800*200*3 = 720.000.000 ) zu minimieren. In Echtzeit kriegt das kein Rechner hin.



  • oggs_the_progger schrieb:

    α = 180/PI * arccos((ax*bx+ay*by)/sqrt((ax*ax+ay*ay)*(bx*bx+by*by))

    normiere vorher die (ax,ay), (bx,by) dann wird die rechnung einfacher.



  • normieren 😕 😕 😕



  • oggs_the_progger schrieb:

    normieren 😕 😕 😕

    bei der formel möchtest du doch bloß nen winkel zwischen vektoren ausrechnen, oder? also ist die länge der dinger doch egal.
    wenn du also in einem preprocessing-step eine normierung vornimmst, d.h
    durch die länge teilst, d.h

    ax' := ax / sqrt(ax2+ay2)
    ay' := ay / sqrt(ax2+ay2)

    und dann mit ax' und ay' weiterrechnest.
    kannst du dir die division durch sqrt(ax2+ay2) sparen.

    nichts desto trotz solltest du wirklich die anzahl der berechnungen minimieren.
    das bringt VIEL mehr.



  • normieren = durch die norm teilen. damit sie laenge 1 haben. du teilst in deiner formel durch das produkt der euklidischen normen der beiden vektoren.
    das fiele dann weg und waere sinnvoll, wenn das haeufig fuer dieselben vektoren gemacht wird. wenn natuerlich jeder nur einmal auftaucht, ist es egal, ob du das vor oder in der formel machst.

    wenn du gemerkt hast, dass man deine notation fehlinterpretiert hat, warum weist du nicht darauf hin sondern sagst "genial, danke"? das ist doch ein wenig irrefuehrend...



  • PeterTheMaster schrieb:

    wenn du gemerkt hast, dass man deine notation fehlinterpretiert hat, warum weist du nicht darauf hin sondern sagst "genial, danke"? das ist doch ein wenig irrefuehrend...

    Ja aber echt he 🙄 😃
    Na egal.
    Ich hab mich schon gefreut über die tollen Terme, die so wunderbar aufgingen, aber den Sinn hab ich nicht geschnallt. Denn es käme ja immer der gleiche Winkel raus..
    Übrigens, noch ne Frage, ist arccos( 1 ) = arccos( -1 ) ?



  • das ist genau dann der fall, wenn du einen winkel findest, dessen kosinus sowohl 1 als auch -1 ist. 😉

    ernsthaft: nein, umkehrrelationen von funktionen sind notwendigerweise injektiv, da funktionen eindeutig sind.



  • Ok, dann hat ichs falsch im Kopf
    Beim cosinus kommt aber das Gleiche raus, mit 1 und -1, sagt mir jedenfalls mein TR.



  • ja, der kosinus ist eine gerade funktion. deshalb ist er insbesondere nicht injektiv und man muss ihn einschraenken, bevor man in (als funktion) umkehren kann.



  • verdammt das geht alles nich

    ich kann die anzahl der berechnungen nicht vermindern

    und kann mir einer die "normierte" Formel schreiben

    THX



  • beschreib doch mal, wodurch die berechnungen entstehen. du kriegst die anzahl mit sicherheit mindestens logarithmiert und dabei gleichzeitig die einzelnen berechnungen vereinfacht, wenn du irgendwie bounding boxen schachtelst oder so.
    es klingt ja so, als haettest du eine riesige tesselierte flaeche und willst nun wissen, welches teildreieck getroffen wird.


Anmelden zum Antworten