0

私は数学が苦手ですが、iOS アプリケーションで計算するには、PHP の数学ルーチンを Objective C に変換する必要があります。

私はこのコードをPHPで持っていますが、問題なく動作しています:

 function torad ( $arg )        { return ($arg * (pi() / 180.0)); }         
 function kepler ( $m, $ecc ) {
    $EPSILON = 1e-6;
    $m = torad( $m );
    $e = $m;
    do  {
        $delta = $e - $ecc * sin( $e ) - $m;
        $e -= $delta / ( 1 - $ecc * cos($e) );
    } while ( abs($delta) > $EPSILON );
    return ( $e );
 }

これはコードです。Objective C (iOS 用) に含まれています。

+ (double) toRad:(double)arg{
    return (arg * (3.14159265 / 180.0));  // 3.14159265 = pi()
}

+ (double) kepler:(double)m  ecc:(double)ecc {
    double EPSILON = 1e-6;
    double _m = [self toRad:m];
    double e = _m;

    double delta;

    do {
        delta = e - ecc * sin(e) - m;
        e -= delta / (1 - ecc * cos(e));
    } while (abs(delta) > EPSILON);

    return e;
}

ケプラー関数が正しく動作しません。たぶん、どこが間違っていたかわかりますか?ありがとう。

4

1 に答える 1

3

mこの行の代わりに使用_mしています:

delta = e - ecc * sin(e) - m;
于 2012-10-07T01:40:59.240 に答える