2016-08-14 3 views
2

テーブル内に長方形を格納しようとしています。Left、Top、Width、Heightを格納するPostgreSQL Rectangleデータ型

  • トップ
  • 私はPostgreSQLがboxと呼ばれるデータ型を提供していることに気づい
  • 高さ

左:現時点では

iは4つの別々の列を持っています。

しかし、このデータ型は自動的に基づいて値を並べ替え:

任意の二つの対向する角が入力に供給することができるが、右上と左下隅を格納するのに必要な値は、その中に、並べ替えされ注文。

Iは長方形のためのボックスデータ型を使用して試みたが、それは上、左、幅と高さを記憶するには適していないので、それは時々、upperrightとbottomleftを混合したように。

私はこれらの値を扱うC#アプリケーションを作成しています。したがって、C#Rectangle型と同等のデータ型があればいいと思います。

矩形/矩形データ型を実装する方法が不思議です。たぶん、4つの整数(配列[4])に基づいて独自のデータ型を書くことさえできますか?

+0

現在のソリューションでは何が動作しませんか? – Renzo

+0

@Renzo矩形の内側に負の値を扱うとき、lowerleftとupperrightに基づいて値をミックスします。また、ネイティブのC#Rectangle型に変換することはできません。私はその質問を編集した。 – Thomas

答えて

0

ポイントを混合しないで、最初に右上の値で保存します。あなたはこれらを読んで、必要な場合には自分で他の2点を自分で作り直さなければなりません。

これは厳密には複雑ではありません。少なくとも、上/右の点を読んで、上の値と下/左の点を取って左の点を取って、あなたが望む上/左の点を得ることができます。同様に、読み幅はちょうど右から左にずれています。

+0

私はこれらの値を扱うC#アプリケーションを作成しています。したがって、C#Rectangle型と同等のデータ型があればいいと思います。質問を編集してより明確にしました。 – Thomas

+0

画面の左下に座標原点がある場合は、最適化されたインデックス作成メカニズムから2つの最大値を一緒に格納することが非常に重要です。 Rectを新しいc#データ型に変換するか、または置き換えるには、C#コードにファサードを記述する必要があります。 – gbjbaanb

関連する問題