0

天文学的な計算の幾何学を計算する際にたくさんのコーディングをしました。物事は常にラジアンとの間で変換されているため、結果のコードはちょっと醜いです。クラスの優れた点の1つは、ユニットなどをカプセル化できることです。だからお金は良い例です。一般に、Moneyクラスでは、不変の実装が見られる傾向があります。これは、お金を稼ぐとユニットを固定し、お金を変更したい場合は、で新しいお金を稼ぐためです。希望するターゲットユニット。

ラジアンから度への変換、およびマクロに関する投稿はたくさんあります。それは私が求めていることではありません。ラジアンまたは度の列挙型である可能性のあるGeometricUnitを内部に使用して、GeometricValueのようなクラスを実行することを考えている人は他にいますか。ただし、この場合、私がやりたいことは次のようなものだと思います。

GeometricMeasure elevationAngle = [[GoemetricMeasure alloc] initWithValue:30 andUnits:GeometricUnits.Degrees];

しかし、数行後に私は次のことができました:

double radians = [elevationAngle asRadians];

あなたが想像できるもう一つのことは自動変換です。野蛮人が実行のピーク時にC++に夢中になったとき、人々が愚かなことをすることができ、コピーコンバーターも危険だったので、演算子のオーバーロードは馬鹿げていたという議論はばかげていると思いました。次のような方程式を実行できることは非常に理にかなっています。

acos(sin(elevationAngle) + sin(hourAngle))

そして、コードに各メジャーを操作に必要な単位(ラジアン)に自動的に変換させます。他の人はこれを検討する価値があると思いますか?またはすでにこの方向で何かをしましたか(私は見つけることができませんでした)?

ありがとう。

4

0 に答える 0