2011-11-10 2 views
3

私は自分のアプリケーションでマッピングを使用しています。だから、私は操作する必要があるintとdoubleの2Dポイント構造を持っています。私は現在、私のソリューションを2つのプロジェクト/アセンブリに分けています。 1つはコア機能を備えています。もう1つはユーザーインターフェースです。私は現在、WPFユーザーインターフェイスを使用しています。しかし、私はコアアセンブリの機能を最大限にしようとしましたが、どのC#ユーザーインターフェイスでも動作するようにしました。 XNAのような将来のAPIをXNAに組み込むことができます。C#のどのポイント、座標構造

これらの構造を私のコア機能の中で操作したいと思っています。 System.WindowsとSystem.DrawingにPoint構造体があることがわかります。しかし、これらは特定のWindows GUI APIに結びついているように見えるので、私はこれらを使用することを嫌っています。これは既存の構造体の機能の多くを再実装することになりますが、私自身の構造体を作るべきですか?私は数学のクラスがあることを知っていますが、有用な汎用目的の数学のクラスと構造を持つ数学の名前空間はありません。

3dポイント構造でも状況は同じですか?

答えて

3

フレームワーク内の現行のPoint(およびPoint3D)構造は、残念ながら特定のプラットフォームに結びついています。

System.WindowsバージョンのPointは、依存性を気にしない場合は個人的には、(マッピングにとって重要な)倍精度で、かなり軽量であるため、私は個人的に使用します。 Z値が必要な場合は、Point3Dもあります。

依存関係を取りたくない場合は、自分自身をロールバックする必要があります。

これは、ある時点では、他のプラットフォームをサポートしたいと思うと、とにかく自分の変換ルーチンを作成する必要があります。 XNAのポイント構造はすべて単精度浮動小数点で、WPFは倍精度で、GDI +は混合されています(整数値もあります)。そのため、「座標」を管理するための「正しい」方法はなく、各フレームワークには独自のルールと構造があります。したがって、選択したものに関係なく、最終的に変換が必要になります。

関連する問題