1

DDMathParser:関数、つまりsin関数への入力が度またはラジアンのどちらであるかをパーサーに通知するにはどうすればよいですか?「モード」が度の場合、実行したい:sin(n * 2 * pi / 360)、または「モード」がラジアンの場合は単にsin(n)。

_DDFunctionUtilitiesのクラスメソッドで、他の場所で定義されているプロパティを認識できません。

4

1 に答える 1

1

ライブラリは C の math.h sin() 関数を使用している可能性が高く、これは単純に常にラジアン単位です。(興味がある場合) C標準のセクション7.12.4.6を参照してください(大きなPDF)

アプリで両方をオプションとして提供するには、さまざまな方法でこれを実現できます。最適な方法はアプリによって異なります。モードを使用して電卓を作成する場合、sin/rad モードの @property を持つ電卓インスタンス (モデル) があり、ビューには viewController メソッド-(IBAction)toggleAngleMeasurementUnit:(UIButton) senderに接続されたボタンがあり、これが適切なメソッドを呼び出します。 calc オブジェクト (他のほとんどのボタン押下の委譲も担当します。次に、電卓クラス内で、これらの値を使用するコードはすべて、最初にモードをチェックし、適切な変換を行います (または、より説得力のある方法として、モードはアクセサ メソッドにのみ影響します。値は標準的な方法 (つまり、常にラジアン) で保存されます。これにより、30 度 + pi ラジアン = ? を実行できます。

于 2012-07-08T17:56:28.680 に答える