Winkel berechnen
-
durch den punkt p kannst du dir die punktsteigungsform der geraden h ausrechnen.
außerdem gilt: m=tan(α) (α=steigungswinkel der geraden)
--> also gilt αh-αg
da aber g parallel zur x achse ist der winkel schon logischer weise einfach nur αh
-
und wie rechne ich den steigungswinkel aus?
-
Hier nochmal die Grundlagen:
http://ruben.infinite-server.de/vorkurs/html/frame3.2.4.htmlDu weißt jetzt also mit dem Wort Anstieg was anzufangen.
Er wird mit m bezeichnet und der entspricht in deinem Beispiel auch dem gesuchten Schnittwinkel, da ja die Gerade g || zur X-Achse.Den Winkel erhältst du aus dem Anstieg m, indem du die Umkehrfunktion vom Tangens benutzt. Mit tan-1 bezeichnet.
Also: tan 45° = 1;
tan-1 1 = 45°
-
Danke, jetzt habe ich es verstanden.
-
ach...
gibt es in c++ eine funktion für tan-1???
und ich hab noch ein problem mit den rad und deg.
wenn ich mit dem taschenrechner tan(45) rechne kommt 1 heraus.
wenn ich mir jetzt am pc tan(45*(180/3.1415926535897932384)) ausrechnen lasse komme ich aber auf -1.36204was mahce ich falsch???
-
nuclearspider schrieb:
ach...
gibt es in c++ eine funktion für tan-1???
und ich hab noch ein problem mit den rad und deg.
wenn ich mit dem taschenrechner tan(45) rechne kommt 1 heraus.
wenn ich mir jetzt am pc tan(45*(180/3.1415926535897932384)) ausrechnen lasse komme ich aber auf -1.36204was mahce ich falsch???
Bei Taschenrechner kann man zumeist einstellen, ob man mit Deg oder Rad rechnet, Standard ist Deg.
Und probir mal tan((45/180)*3.1415926535897932384).btw: Die offizielle Bezeichnungen für die Umkehrungen der trigonometrischen Funktionen lauten arcsin, arccos, arctan etc.
In C++ werden die wohl entweder so, oder aber asin, acos, atan etc. heißen.
-
Kleiner Tip noch:
Pi ist für C/C++ schon in der "math.h" Datei als Konstante vordefiniert.
Musst nur vorher schreiben:#define _USE_MATH_DEFINES #include "math.h"
Statt 3.14... schreibst du dann einfach M_PI.
Ist doch etwas übersichtlicher und trozdem noch eine Nachkommastelle genauer als deine VariantePS: Der Reziprok 1/Π lautet dann M_1_PI für die Rückrechnung.
-
SeppSchrot schrieb:
Kleiner Tip noch:
Pi ist für C/C++ schon in der "math.h" Datei als Konstante vordefiniert.
Musst nur vorher schreiben:#define _USE_MATH_DEFINES #include "math.h"
Statt 3.14... schreibst du dann einfach M_PI.
Ist doch etwas übersichtlicher und trozdem noch eine Nachkommastelle genauer als deine VariantePS: Der Reziprok 1/Π lautet dann M_1_PI für die Rückrechnung.
wenn schon denn schon <cmath>
-
ich hab jetzt aber noch voll des problem:
float x; x = 45/180; cout << "x = " << x << endl;
Ergebnis: 0!!!!
(normalerweise sollte da 0.25 rauskommen)warum???
-
weil erst der ausdruck 45/180 ausgewertet wird und dann das ergebnis dieser auswertung der variablen x zugeordnet wird. auswertung von 45/180 ist 0, und das wird auch an x zugewiesen.
du mußt explizit aus einer der zahlen einen gleitkommatyp machen. z.b. mit 45.0 statt 45. dann klappts.
-
ok,
tan() funktioniert jetzt.
aber bei atan() kommen trotzdem falsche werte heraus.
-
Kann es sein, daß Du nicht zurückrechnest? Da kommt das Ergebnis auch wieder in Bogenmaß raus. atan(m)*180/M_PI sollte Dein Problem aber beheben.
MfG Jester