Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
PQ Discord Server: #planetquake Spenden? Hier entlang!
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
PQ Discord Server: #planetquake Spenden? Hier entlang!
Cotangens, Arcus Tangens, Inv Tan etc.
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Cotangens, Arcus Tangens, Inv Tan etc.
Also ich komm grad gar nicht klar..
Wollte einen Wert berechnen und drei verschiedene Taschenrechner liefern mir für die (soweit mir bisher bekannt war) gleiche Funktion drei verschiedene Werte
google Rechner
arctan(1,308997) = 0,918430819
Windows Taschenrechner
Inv Tan (1,308997) = 52,622209676344536802130668192902
C-Programm
double winkel = atan(theta);
> 1.23658
Ist das nicht eigentlich alles das gleiche? Gut, ich weiß, dass es Gradmaß und Bogenmaß gibt, aber selbst dann müssten doch zwei der 3 obigen Werte gleich seinm aber sie sind's nicht annähernd
Der Wert, den ich eigentlich haben möchte, ist der den der Windows Taschenrechner liefert..
Wenn ich den nämlich mit Pi multipliziere komme ich auf den Wert, den ich gerne hätte (ca 165°)..
Kann mir jemand sagen, wo der Hund begraben liegt, dass mir die anderen Rechner einen anderen Wert liefern?
Oder vielleicht kennt sogar jemand den entsprechenden Befehl in C?
Wollte einen Wert berechnen und drei verschiedene Taschenrechner liefern mir für die (soweit mir bisher bekannt war) gleiche Funktion drei verschiedene Werte
google Rechner
arctan(1,308997) = 0,918430819
Windows Taschenrechner
Inv Tan (1,308997) = 52,622209676344536802130668192902
C-Programm
double winkel = atan(theta);
> 1.23658
Ist das nicht eigentlich alles das gleiche? Gut, ich weiß, dass es Gradmaß und Bogenmaß gibt, aber selbst dann müssten doch zwei der 3 obigen Werte gleich seinm aber sie sind's nicht annähernd
Der Wert, den ich eigentlich haben möchte, ist der den der Windows Taschenrechner liefert..
Wenn ich den nämlich mit Pi multipliziere komme ich auf den Wert, den ich gerne hätte (ca 165°)..
Kann mir jemand sagen, wo der Hund begraben liegt, dass mir die anderen Rechner einen anderen Wert liefern?
Oder vielleicht kennt sogar jemand den entsprechenden Befehl in C?
-
- Klesk
- Beiträge: 713
- Registriert: Mai 2005
- Wohnort: M
google rechnet richtig
http://www.google.de/#&q=%28arctan+1.308997%29*360/2pi
woher kommt die c funktion?
edit:
ahja, ich empfehle für sowas wolframalpha
http://www.wolframalpha.com/input/?i=ar ... .308997%29
http://www.google.de/#&q=%28arctan+1.308997%29*360/2pi
woher kommt die c funktion?
edit:
ahja, ich empfehle für sowas wolframalpha
http://www.wolframalpha.com/input/?i=ar ... .308997%29
-
- Patriot
- Beiträge: 1412
- Registriert: Nov 2008
Mein Taschenrechner sagt:EviLsEyE hat geschrieben: google Rechner
arctan(1,308997) = 0,918430819
Windows Taschenrechner
Inv Tan (1,308997) = 52,622209676344536802130668192902
C-Programm
double winkel = atan(theta);
> 1.23658
google-Ergebnis: radiant
fenster-Ergebnis: Grad
die zwei lassen sich auch entsprechend umrechnen
c-Ergebnis: keine Ahnung
edit: Warum habe ich mir eigentlich die erste Antwort nicht durchgelesen? ._.
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Danke, auf Wolframalpha bin ich jetzt gar nicht gekommen
Jemand 'ne Idee was das sein könnte, was er mir da berechnet? Laut Definition berechnet die Funktion:
Aber keine Ahnung was ich damit anfangen kann..
Oder hat vielleicht jemand 'ne Idee wie ich auf meine gewünschten 52,62 (bzw. 165°) komme?
Das ist atan() aus math.hsnakyo hat geschrieben:woher kommt die c funktion?
Jemand 'ne Idee was das sein könnte, was er mir da berechnet? Laut Definition berechnet die Funktion:
Code: Alles auswählen
double atan(double x) arctan(x) im Bereich [-p/2, p/2].
Oder hat vielleicht jemand 'ne Idee wie ich auf meine gewünschten 52,62 (bzw. 165°) komme?
-
- Patriot
- Beiträge: 1412
- Registriert: Nov 2008
-
- Rampage
- Beiträge: 14303
- Registriert: Jun 2001
- Steam: TomHonks
achte darauf dass der arctan uU mehrdeutig ist, -x/y gibt so was anderes als x/-y (was auch klar ist, wenn man sich die zahlen im kartesischen koordinatensystem aufzeichnet)
http://de.wikipedia.org/wiki/Arctan#Definition
bei matlab gibt es dafür die funktion atan2 die 2 werte als übergabe erwartet. in der math.h wird die wohl nich drin sein, evtl brauchst du das ja auch garnich.
http://de.wikipedia.org/wiki/Arctan#Definition
bei matlab gibt es dafür die funktion atan2 die 2 werte als übergabe erwartet. in der math.h wird die wohl nich drin sein, evtl brauchst du das ja auch garnich.
Danke an Drasora für ihr Wichtelgeschenk!
MAR hat geschrieben:Führt der durch den Terrence-Hill?
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Okay, ich sollte diesen Thread besser löschen und alle Spuren verwischen, dass es ihn gegeben hat
Wie eigentlich immer saß der Fehler vor dem Rechner
Hab in meinem Programm nämlich 'ne Schleife gehabt, die mir in Abhängigkeit von ein paar Sonderfällen gewisse Werte überschreibt..
Und so gab mein Debug-Output zwar den Wert "1,308997" aus, mit dem ich dann in den externen Taschenrechnern gerechnet hab, um das Ergebnis zu verifizieren..
In meinem Programm wurde dieser Wert allerdings von einer "2,irgendwas" überschrieben, ohne dass ich's mitbekommen hab und davon ist der atan() nunmal 1.23658
Danke vielmals für Eure Hilfe
Wie eigentlich immer saß der Fehler vor dem Rechner
Hab in meinem Programm nämlich 'ne Schleife gehabt, die mir in Abhängigkeit von ein paar Sonderfällen gewisse Werte überschreibt..
Und so gab mein Debug-Output zwar den Wert "1,308997" aus, mit dem ich dann in den externen Taschenrechnern gerechnet hab, um das Ergebnis zu verifizieren..
In meinem Programm wurde dieser Wert allerdings von einer "2,irgendwas" überschrieben, ohne dass ich's mitbekommen hab und davon ist der atan() nunmal 1.23658
Danke vielmals für Eure Hilfe
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Eine Sache hätte ich zu dem Thema vielleicht noch..
Denn für Winkel bis ca. 25° krieg ich mehr oder weniger korrekte Ergebnisse.. je höher die Werte allerdings steigen, ab 35° besonders auffällig, liefert mir der arcus tangens immer ungenauere Ergebnisse..
Weiß jemand woran das liegen könnte? Ich arbeite mit Fließkommazahlen mit 6 Nachkommastellen, daran wird's vermutlich nicht liegen?
Hier mal illustriert, vielleicht erkennt ja jemand mit bloßem Auge einen Fehler, der mir einfach nicht auffallen will..?
Übrigens rechne ich den atan-Wert (zwecks RAD->DEG) wie folgt aus:
fMax ist das was in den Bildern als Theta bezeichnet ist, CV_PI ist die Zahl Pi..
Den Theta-Wert krieg ich übrigens von der OpenCV-Funktion cvHoughLines2() zurück, falls das bei der Problemsuche relevant sein könnte..
Ich seh's einfach nicht und wüsste nicht, was ich noch ausprobieren könnte..
Danke schon mal für jeden hilfreichen Beitrag!
Denn für Winkel bis ca. 25° krieg ich mehr oder weniger korrekte Ergebnisse.. je höher die Werte allerdings steigen, ab 35° besonders auffällig, liefert mir der arcus tangens immer ungenauere Ergebnisse..
Weiß jemand woran das liegen könnte? Ich arbeite mit Fließkommazahlen mit 6 Nachkommastellen, daran wird's vermutlich nicht liegen?
Hier mal illustriert, vielleicht erkennt ja jemand mit bloßem Auge einen Fehler, der mir einfach nicht auffallen will..?
Übrigens rechne ich den atan-Wert (zwecks RAD->DEG) wie folgt aus:
Code: Alles auswählen
fAngle = tan(fMax)*(180/CV_PI);
Den Theta-Wert krieg ich übrigens von der OpenCV-Funktion cvHoughLines2() zurück, falls das bei der Problemsuche relevant sein könnte..
Ich seh's einfach nicht und wüsste nicht, was ich noch ausprobieren könnte..
Danke schon mal für jeden hilfreichen Beitrag!
-
- Angel
- Beiträge: 589
- Registriert: Dez 2002
- Wohnort: Graz
Wenn ich jetzt nicht völlig falsch liege, dann könnte es nochmal peinlich werdenEviLsEyE hat geschrieben:Eine Sache hätte ich zu dem Thema vielleicht noch..
Denn für Winkel bis ca. 25° krieg ich mehr oder weniger korrekte Ergebnisse.. je höher die Werte allerdings steigen, ab 35° besonders auffällig, liefert mir der arcus tangens immer ungenauere Ergebnisse..
Weiß jemand woran das liegen könnte? Ich arbeite mit Fließkommazahlen mit 6 Nachkommastellen, daran wird's vermutlich nicht liegen?
Hier mal illustriert, vielleicht erkennt ja jemand mit bloßem Auge einen Fehler, der mir einfach nicht auffallen will..?
Übrigens rechne ich den atan-Wert (zwecks RAD->DEG) wie folgt aus:fMax ist das was in den Bildern als Theta bezeichnet ist, CV_PI ist die Zahl Pi..Code: Alles auswählen
fAngle = tan(fMax)*(180/CV_PI);
Du sagst, du berechnest den arcustangens auf folgende Weise:
Code: Alles auswählen
fAngle = tan(fMax)*(180/CV_PI);
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Stimmt, ich schreib hier überall arctan und nutze in Wirklichkeit tan
Hab gestern nämlich aus voller Verzweiflung alle möglichen Werte errechnet und geschaut welche nun am besten in mein Schema passen - tan ist als einzige vernünftige Lösung übrig geblieben ;>
Beim Verfassen des Posts hab ich nicht drüber nachgedacht und immer wieder "atan" (was meine 1. Lösung war) gesagt
Also bitte überall wo ich "atan" oder "arcus tangens" geschrieben hab, einfach vorstellen, ich hätte "tan" bzw. "tangens" geschrieben
Ich weiß aber nicht mal 100%ig, ob ich überhaupt eins von beiden benötige..
ArcTan war halt meine erste Idee, als ich damit angefangen hab und das hab ich dann so weiter verfolgt, bis ich dann drauf gekommen bin, dass mir Tan für die meisten Fälle richtige Ergebnisse liefert..
Das einzige was ich weiß ist der Wert von Theta für die jeweiligen Bilder.. da diese von mir zur Analyse erstellt wurden, weiß ich in welchem Winkel jeweils die Gerade gedreht ist und hab somit einen Soll-Wert - aber eigentlich soll mein Programm da allein drauf kommen..
Was mir also fehlt ist der Schritt wie ich von diesem Theta-Wert auf die Winkel in Grad komme, um das Bild dann in seinen Ursprung drehen zu können..
Aktuell liefert mir die Berechnung von tan(x)*180/Pi die besten Ergebnisse, was aber nicht heißen muss, dass das auch die richtige Lösung ist
Hab gestern nämlich aus voller Verzweiflung alle möglichen Werte errechnet und geschaut welche nun am besten in mein Schema passen - tan ist als einzige vernünftige Lösung übrig geblieben ;>
Beim Verfassen des Posts hab ich nicht drüber nachgedacht und immer wieder "atan" (was meine 1. Lösung war) gesagt
Also bitte überall wo ich "atan" oder "arcus tangens" geschrieben hab, einfach vorstellen, ich hätte "tan" bzw. "tangens" geschrieben
Ich weiß aber nicht mal 100%ig, ob ich überhaupt eins von beiden benötige..
ArcTan war halt meine erste Idee, als ich damit angefangen hab und das hab ich dann so weiter verfolgt, bis ich dann drauf gekommen bin, dass mir Tan für die meisten Fälle richtige Ergebnisse liefert..
Das einzige was ich weiß ist der Wert von Theta für die jeweiligen Bilder.. da diese von mir zur Analyse erstellt wurden, weiß ich in welchem Winkel jeweils die Gerade gedreht ist und hab somit einen Soll-Wert - aber eigentlich soll mein Programm da allein drauf kommen..
Was mir also fehlt ist der Schritt wie ich von diesem Theta-Wert auf die Winkel in Grad komme, um das Bild dann in seinen Ursprung drehen zu können..
Aktuell liefert mir die Berechnung von tan(x)*180/Pi die besten Ergebnisse, was aber nicht heißen muss, dass das auch die richtige Lösung ist
-
- Angel
- Beiträge: 589
- Registriert: Dez 2002
- Wohnort: Graz
Irgendwie verstehe ich nicht, was du überhaupt machen willst
Du hast also von irgendwo her Theta Wert und willst damit was machen?
€ Daran hab ich auch gedacht, aber das ist wohl nicht alles. Wie kommt er dann auf tan oder arctan? Selbst wenn nicht klar ist, dass Theta nur die Winkel in Bogenmaß sind sieht man sofort, dass die Theta Werte linear steigen, oder?
Du hast also von irgendwo her Theta Wert und willst damit was machen?
€ Daran hab ich auch gedacht, aber das ist wohl nicht alles. Wie kommt er dann auf tan oder arctan? Selbst wenn nicht klar ist, dass Theta nur die Winkel in Bogenmaß sind sieht man sofort, dass die Theta Werte linear steigen, oder?
-
- Administrator
- Beiträge: 23012
- Registriert: Jan 2000
- Wohnort: NRW
- Kontaktdaten:
Wow, so einfach war'ssnakyo hat geschrieben:Ich bin gerade ein wenig verwirrt, aber die Theta-Werte in den Bildern sind doch einfach die Winkel im Bogenmaß. Die kannst du einfach mit "THETA * 180 / PI" ins Gradmaß umrechnen.
Danke, danke, danke!
Auch wenn ich jetzt schwören könnte, auch das mal probiert zu haben, hab ich's offenbar doch nicht gemacht
Was ich damit einfach nur bezwecken wollte:
.. ich hab 'ne Grafik
.. daraus lass ich mir mittels Hough Transformation die Kanten extrahieren
.. anhand gewisser Konstellationen weiß ich welches meine Referenzkante ist, die die Drehung des Bildes bestimmt
.. von dieser Kante brauch ich den Winkel (Theta), um das Bild dann in seinen Ursprung zurück zu drehen
.. mit dem Bild kann ich dann weiterarbeiten
Wie ich auf Tan bzw. ArcTan kam, kann ich nicht mal genau sagen.. vermute mal das war ein Erinnerungsfetzen an meine letzte Arbeit mit der HoughTransformation vor ein paar Jahren
Danke Euch vielmals, ich hab mich schon fast damit abgefunden, nur die Winkel bis 25° zu betrachten