2012-04-04 18 views
-1

Dieser Teil einer App, an dem ich arbeite, habe ich die folgende Gleichung in Ziel C. Alle Variablen sind Floats. r ist ein Sinus eines Winkels und ich möchte r in Radianten umwandeln, wenn es im Textfeld angezeigt wird.Sine zu Radianten Objective-C

r = ns/ni 
r = sinf(r); 
rr = asinf(r); 

textfieldRi.text = [NSString stringwithFormat:@"%.02f", rr]; 

Ich bekomme keine korrekten Ergebnisse. Irgendwelche Vorschläge bitte?

Antwort

2

Ich bin nicht ganz sicher, was Sie glauben, dass Sie gewinnen, indem Sie einen Sinus gefolgt von einem inversen Sinus ausführen, außer möglicherweise um den Bereich von r auf seinen kleinsten Bereich zu reduzieren, in diesem Fall asin(sin(r)) sollte gut funktionieren, angenommen, r ist bereits im Bogenmaß.

Wenn Sie r in Radiant umwandeln will, muss ich in Grad ist es zur Zeit zu übernehmen, wobei in diesem Fall brauchen Sie nur, wie etwas zu tun:

radians = degrees * 3.141592653589/180.0; // or M_PI in math.h. 
+1

Ich würde M_PI anstelle von 3,14159 verwenden, obwohl ... – lnafziger

+0

Ja, ich weiß nie, ob ObjC _all_ das Zeug hat, das C hat, also habe ich nur auf Nummer Sicher gegangen. Wenn Sie eine PI-Konstante haben, verwenden Sie diese. Aktualisiert, um den Vorschlag zu übernehmen. – paxdiablo

+0

Vielen Dank für diesen Ratschlag! – MacUser

1

Objective-C verwendet automatisch radians statt Grad, Um Graden in Radianten umzurechnen, dividiere durch 180 und multipliziere mit PI.

+0

Ich beginne gerade, die mathematische Funktion in Ziel C zu verwenden, das ist sehr wichtig zu wissen, danke. – MacUser