Foren

iOS Wie verwendet man Sin, Cos und Tan?

m

MrPenguin9

Originalplakat
1. August 2008
  • 13. Mai 2009
Wie verwendet man sin, cos und tan im iPhone SDK? Und auch, wie verwendet man die Umkehrung von ihnen?

Vielen Dank

SilentPanda

emeritierter Moderator
8. Oktober 2002
Der Bambuswald


  • 13. Mai 2009
Ich vermute, Sie würden nur die C-Versionen von cos, sin und tan verwenden. m

MrPenguin9

Originalplakat
1. August 2008
  • 13. Mai 2009
Kann ich bitte ein Beispiel dafür haben.

Vielen Dank

PhoneyDeveloper

2. September 2008
  • 13. Mai 2009
Code: |_+_|
Gibt es noch etwas?

Versuchen Sie, dies im Terminal einzugeben oder googeln Sie es

Mann Sünde m

MrPenguin9

Originalplakat
1. August 2008
  • 13. Mai 2009
Aber wenn ich 'tan(1)' in xcode mache, gibt es mir 1556013989 zurück!?!? Aber die Bräune von 1 ist 0,017455... Was mache ich falsch?

Vielen Dank R

Ron C

18. Juli 2008
Chicago-Gebiet
  • 13. Mai 2009
Riecht nach Typproblem

MrPenguin9 sagte: Aber wenn ich 'tan(1)' in xcode mache, gibt es mir 1556013989 zurück!?!? Aber die Bräune von 1 ist 0,017455... Was mache ich falsch?

Vielen Dank

1556013989? Es könnte nur ein gleitkommaformatierter Wert als Ganzzahl ohne die Typkonvertierung gedruckt werden?

Woher bekommen Sie diese tan()-Funktion? mathe? Welchen Typ gibt beispielsweise tan() zurück? Braucht es Radiant oder Grad? In welchem ​​Typ speicherst du den Rückgabewert?

Ich habe die Manpage für tan() überprüft und dort steht:
Code: |_+_| Also .... die einzige Funktion, die dieser Signatur entspricht, nimmt ein Double (automatische Konvertierung) und gibt ein Double zurück (ebenfalls automatische Konvertierung) und nimmt Radiant an.

Wie siehst du den Wert? Wie sieht dein Code aus?

BEARBEITEN: Ich habe gerade den Wert von tan (1 Radiant) in Calculator.app überprüft - er sagt: 1,557408. Also... warum sollte es Ihrer Meinung nach 0,017455 sein? Das ist der Wert von tan (1 GRAD) m

MrPenguin9

Originalplakat
1. August 2008
  • 13. Mai 2009
Hier mein Code von MainView.m Code: |_+_| (Oh, und ich wusste nicht, dass tan(x) im Bogenmaß steht.) Danke Jungs für die Hilfe! g

Guiyon

19. April 2008
Cambridge, MA
  • 13. Mai 2009
MrPenguin9 sagte: -(void)wakeFromNib {
Text.text = [NSString stringWithFormat'%d', tan(1)];
}

Es gibt Ihr Problem, tan gibt ein Double zurück, aber der %d-Formatstring erwartet eine Ganzzahl. Das Ändern von '%d' in '%lf' sollte das beheben. Wenn Sie am Terminal 'man 3 printf' eingeben, erhalten Sie viel mehr Informationen über die Formatzeichenfolgen im printf-Stil, die Apple (und viele andere Bibliotheken) verwenden; Suchen Sie nach dem Teil, der mit 'Der Formatstring besteht aus null oder mehr Direktiven' beginnt. R

Ron C

18. Juli 2008
Chicago-Gebiet
  • 14. Mai 2009
Eine kurze Anmerkung zu automatischer Konvertierung und Gleitkomma-Verrücktheit...

Guiyon sagte: Da ist dein Problem, tan gibt ein Double zurück, aber der %d-Formatstring erwartet eine ganze Zahl. Das Ändern von '%d' in '%lf' sollte das beheben. Wenn Sie am Terminal 'man 3 printf' eingeben, erhalten Sie viel mehr Informationen über die Formatzeichenfolgen im printf-Stil, die Apple (und viele andere Bibliotheken) verwenden; Suchen Sie nach dem Teil, der mit 'Der Formatstring besteht aus null oder mehr Direktiven' beginnt.

Diese 'magischen' Typkonvertierungen treten nicht auf, es sei denn, der Compiler weiß, dass es eine geben sollte. Ein Fall, in dem es nicht weiß, ist in Code wie stringWithFormat: - Es weiß nicht wirklich, dass es eine Konvertierung geben sollte, also gibt es fröhlich ein Double weiter. Sobald Sie anfangen, mit Gleitkommatypen zu spielen, müssen Sie darauf achten.

Noch eine kurze Anmerkung zu Gleitkommatypen. Schreiben Sie keinen Code wie: Code: |_+_| Das Problem mit = und Gleitkommatypen besteht darin, dass es sehr unwahrscheinlich ist, dass sie gleich sind. Sogar so etwas wie: Code: |_+_| Auf Ihrem Whiteboard sind diese Zahlen identisch. Im Computer müssen sie nicht sein. Es ist seltsam, aber man muss sich daran gewöhnen. m

MrPenguin9

Originalplakat
1. August 2008
  • 15. Mai 2009
Es funktionierte.

Danke an alle, die mir geholfen haben!