最も簡単な解決策は、あなたが探している可能性が最も高いと仮定して、軸の揃えられた境界ボックスを計算することです。これは、単純に最小値/最大値xの値を見つけた場合です。&それらからボックスを構築する。
point[] points = [[x = -2, y = 0], [x = 1, y = 2], [x = 1, y = 1], [x = -1, y = -2]];
box bounds = bounding_box(points);
:
私はあなたがそうこれらの与えられたジオメトリがで...
type point { float x; float y; }
type box { point topleft; point topright; point bottomleft; point
function bounding_box(points)
{
xmin = min(points.x)
xmax = max(points.x)
ymin = min(points.y)
ymax = max(points.y)
return new box{
topleft = { x = xmin, y = ymax },
topright = { x = xmax, y = ymax },
bottomleft = { x = xmin, y = ymin },
bottomright = { x = xmax, y = ymin }
};
}
表現されるタイプを投稿していないことを考えると、あなたはそのための擬似コードをあげます
以下のすべてが真であろう。もちろん
bounds.topleft == [x = -2, y = 2];
bounds.topright == [x = 1, y = 2];
bounds.bottomleft == [x = -2, y = -2];
bounds.bottomright == [x = -1, y = -2];
、座標系は、T最低座標を有する場合オペアンプ(例えば、典型的なディスプレイのように) - 計算を逆転させる必要があります。最初にオブジェクト空間で結果を計算し、その後に論理空間に変換することができます。
注意将来的に任意の位置にあるボックスに更新することを決定した場合、4つのコーナーをすべて表すボックスのタイプになりました(ただし、同じトークンでポイント+ 2ベクトル)。
残念ながら、私はこの問題でどこから始めるべきか分かりません。私はタイプ文字列のリストに座標を持ち、ここから移動する方法はわかりません。 – CSharpened
@Wellには2つのタイプがあります:軸に合わせたバウンディングボックス。 min x/yとmax x/yを見つけることによって簡単に見つけられます。または、あなたはより複雑な任意の向きのバウンディングボックスを持っています(http://en.wikipedia.org/wiki/Minimum_bounding_box_algorithms)。技術的にはまだボックスを描いていますが、地球の曲率を考慮する必要がある場合は、これはもっと複雑になりますが(実際には球の表面の一部ですおそらくあなたが必要とするもののためにあまりにも多く) –
私は参照してください。私はボックスの4座標を供給する関数が必要です。したがって、2つのX値と2つのY値。座標を分割してそれらをすべて比較して、最小のX値と最小のY値を見つけることが最良の方法だとお考えですか?私がそれをしなければならない場合、私はminXの値とmaxYの値しか得られないと仮定します。これら2つの図から、他のXとYの値を計算することは可能ですか?申し訳ありませんが、私は少し失われたようです。 Spatialは私のエリアではありません。 – CSharpened