問題タブ [rectangles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
6249 参照

algorithm - 座標/点の配列から長方形を作成します

http://img853.imageshack.us/img853/2475/picture1eu.jpg

直線多角形を表すポイント/座標のArrayListがあります。ArrayListに格納されているPointsを使用して、この形状を長方形に分割したいと思います。

アルゴリズムを開始しましたが、終了できず、もっと簡単な方法が必要だと感じています。

ArrayListは「allCoordinates」と呼ばれます。
ArrayList「xMatch」と「yMatch」はallCoordinatesのサブセットです。

アルゴリズム:


したがって、上記の図の場合:
(Set 1 = [x1、y1]-[x8、y8]、
Set2 = [x7、y7]-[x2、y2]、
Set3 = [x4、y4] [x5、x5 ]、
Set4 = [x3、y3] [x6、x6])


したがって、上記の図の場合:
(Set 1 = [x1、y1]-[x2、y2]、
Set2 = [x3、y3]-[x4、y4]、
Set3 = [x5、y5] [x6、x6 ]、
Set4 = [x7、y7] [x8、x8])



これで、すべて垂直エッジとすべて水平エッジの2つのarrayListができました。今、私はそれらがすべて一緒に接続されているかどうかを確認する方法が必要ですか?私が言ったように、もっと簡単な方法が必要です...?

編集:

長方形は、既存の座標で開始および終了する交差する線を使用して形成する必要があることを明確にできますか。たとえば、(x6、y6)から水平に線を引き、エッジ(x1、y1)-(x8、y8)で終了することができます。この線は既存の座標から始まりますが、既存の座標で終わることはありません。したがって、その行は無効になります。

0 投票する
0 に答える
93 参照

algorithm - 可能な限り少ない長方形で形状をカバーする

重複の可能性:
一連の長方形をカバーする最小の長方形を見つけるためのアルゴリズム

アルゴリズムを理解するのに助けが必要です。以下に示すように、グリッド上にレイアウトされた形状があります。

グリッド上のシェイプ http://www.benfillmore.com/shape.png

目標は、次のように正方形をより大きな長方形に結合することです。

大きな長方形 http://www.benfillmore.com/boxes.png

できるだけ少ない長方形で形状のすべての正方形をカバーしようとしています。長方形が互いに重なり合っていても問題ありません。

オーバーラップ http://www.benfillmore.com/overlap.png

私は完全な解決策、単なるアイデア、または正しい方向に私を向けている誰かを探しているわけではありません. 私はいくつかのアイデアを実装しましたが、最適に近づくことさえできません。処理時間は形状作成時に一度だけなので気にしません。できるだけ少ない長方形が必要です。

どうもありがとう

0 投票する
4 に答える
21493 参照

java - ペイントメソッドjava-輪郭のある長方形

青い線の輪郭と黒い塗りつぶしの壁を作りたいです。現在、青い壁しかなく、グラフィックスの方法をいくつか試しましたが、機能しませんでした。

0 投票する
1 に答える
124 参照

javascript - Googleマップ:Xを超える面積を持つ長方形をユーザーに作成させないようにするにはどうすればよいですか?

javascriptを使って自分のウェブサイト(localhost)にグーグルマップを設定しました。現在、ユーザーは作成するcirclesrectangles、左または右クリックして作成できます。ユーザーは長方形を大きくしたり小さくしたりすることもでき、同じことが円にも当てはまります。ユーザーにXを超える面積の長方形を作成させないようにしたいのですが、円の面積はとで定義されるため、円でこれを実現することができましradiusMath.PI。長方形の場合、面積は底の長さに高さの長さを掛けたものであることを私は知っています。しかし、南西と北東の角の緯度と経度からこの情報を見つけるにはどうすればよいですか?

前もって感謝します

0 投票する
1 に答える
3915 参照

ios - ビュー内のポイントがサブビューの境界内にあるかどうかを判断する

UIViewのparentViewと、parentViewに対して未知の角度で回転するサブビューのchildViewがあるとします。parentView内のポイント(parentViewの座標系の座標を知っています)がchildViewの座標系の長方形内にあるかどうかを判断する最も効率的な方法は何ですか(長方形はその境界に直交していますが、その境界に等しくなく、おそらくparentViewに直交していません)境界)?

0 投票する
1 に答える
2330 参照

rectangles - 交差する長方形の交差長方形(点)を見つける方法

[(x1,y1)(x2,y2)][(x3,y3)(x4,y4)]2 つの頂点で記述される 2つの交差する長方形があるとします。交差の効果である長方形を見つける方法(これらの長方形が交差する2つのポイントを取得します)。

プログラミング言語は問いません。疑似コードの可能性があります。

PS: 長方形は OXY に平行です。

0 投票する
3 に答える
25998 参照

java - Rectangle クラスのような Java のサークル クラスはありますか

ちょっと簡単なプログラムを書いていて、衝突検出に円を使用する必要がある場所に出くわしました。しかし、私の知る限り、.intersects(Point p) メソッドを持つ Rectangle クラスしかありません。同じように使える円のようなものはありますか?

0 投票する
5 に答える
8567 参照

php - 複数の隣接する長方形を1つのポリゴンにマージ

背景:私は、複数の長方形の「ユニット」を借りることができる小さなショッピングセンターのサイトで作業しています。「お店」が来ると、1つまたは複数の「ユニット」を借りることができます。お店で構成されるマップを作成したいと思います(未レンタルのユニットはありません)。

問題

ポイントのペアで定義された長方形(ユニット[[lefttop_x;lefttop_y];[rightbottom_x;rightbottom_y]])のリストがあり、それらをポリゴンにマージして、適切にスタイルを設定できるようにします(Canvas / SVG / VML / Raphael.jsを介してレンダリングします)。

  • 単位は常に長方形です
  • ユニットのサイズは異なります
  • ユニットは常に隣接しています(ユニット間にスペースはありません)

この操作(できればPHPですが、擬似コードを処理できます)の結果として、ポリゴンポイントの配列が必要です。

長方形のマージ–視覚的な手がかり

ありがとうございました。

PS:私はこれを調べていて、「欲しいものに近い」質問と回答が複数見つかりましたが、疲れすぎているか、数学に長時間触れていません:)

0 投票する
1 に答える
3938 参照

gps - すべての緯度/経度座標が与えられたときに、ポイントが長方形内にあるかどうかを判断するにはどうすればよいですか?

長方形の 4 つの隅すべての x/y 座標と別の x/y 座標が与えられた場合、左上が 0,0 の場合、点が長方形内にあるかどうかを簡単に判断できます。

しかし、座標が負になる緯度/経度の場合はどうなるでしょうか (添付を参照してください)。この場合に有効な式はありますか?

ここに画像の説明を入力

0 投票する
1 に答える
1403 参照

c# - 隣接する長方形を自動的にマージする

私はXNAでトップダウンのシューティングゲームを作成しており、マップに長方形の衝突が必要で​​す。

マップの衝突壁は、次の形式のテキストファイルに保存されます。rect[0,0,1024,8]

値は、長方形(x、y、幅、高さ)の定義に対応しています。

私は、地図画像のデータを読み書きできない別のアプリケーションを作成し、黒(または壁の任意の色)のピクセルを見つけて、そこに長方形を作成できると考えていました。基本的に、このプログラムは衝突に必要な長方形を生成します。理想的には、それはピクセルパーフェクトであり、すべての壁をカバーする幅1ピクセルごとに1000個の長方形のようなものが必要になります。

これらの長方形(または私が言うべき正方形)のどれが互いに隣接しているかを検出し、それらをより大きな(しかし同じ領域をカバーしている)長方形に接続する方法はありますか?

例えば。10 x 2の壁があるとします。プログラムは、それぞれ1ピクセルの高さの20個の異なる長方形を生成します。これらの長方形が隣接していることを効率的に検出し、20個の異なる小さなピクセルの長方形ではなく、壁全体を覆う10 x 2の長方形を自動的に作成するにはどうすればよいですか?

編集:私は自分の目的に合った解決策を考え出しました。将来の参考のために、私のコードは以下のとおりです。

基本的に、ピクセルデータを水平方向にループします。壁のピクセルに遭遇すると、カウンターを停止し、(whileループを使用して)壁以外のピクセルに当たるまで、カウンターを1つずつ右に移動します。次に、その幅の長方形を作成し、続行します。このプロセスの後、それぞれ1pxの高さの長方形の大きなリストが作成されます。基本的に、水平線の束。次のループは水平線を通過し、上記と同じプロセスを使用して、同じX値と同じ幅値(y + 1)を持つ長方形があることを検出します。これは、1つの大きな長方形が作成され、使用された長方形がリストから削除されるまで、増加し続けます。