HTML5 は 3D および 2D 視覚化を実装します。QuadTree クアッドツリー衝突検出_PHP チュートリアル
HTML5 は 3D および 2D 視覚化 QuadTree クアッドツリー衝突検出を実装します
QuadTree は、その名前が示すように、ツリー状のデータ構造であり、各ノードには 4 つの子ノードがあり、2 次元平面をサブ領域に再帰的に分割できます。 QuadTree は、空間データベースのインデックス作成、3D 脊椎可視領域のトリミング、さらには画像の分析と処理にもよく使用されます。これは、ゲーム分野で最もよく使用される QuadTree の衝突検出です。 QuadTree アルゴリズムを使用すると、テストする必要がある衝突の数が大幅に減少するため、ゲームの更新パフォーマンスが向上します。この記事の例は、HT for Web の Canvas トポロジ マップと WebGL の 3D エンジン コンポーネントに基づいており、 GraphView と Graph3dView を介して同じデータ モデル DataModel を使用し、同時に 2D および 3D コリジョン ビュー効果を表示します: http://v.youku.com/v_show/id_XODQyNTA1NjY0.html
http://www.hightopo.com/ demo/QuadTree/ht-quadtree.html
QuadTree 実装の成熟したバージョンは多数ありますが、私が選択したのは https://github.com/timohausmann/quadtree-js/ です。quadtree アルゴリズムは非常に単純です。したがって、このオープン ソース ライブラリにはコードが約 200 行しかありません。使い方も非常に簡単で、最初のパラメータはゲーム空間の範囲を設定するためにrect情報に渡され、まず古いデータがquadtree.clear()によってクリアされます。 quadtree.insert(rect) 新しいノードの長方形領域。これにより、quadtree が初期化されます。残っているのは、必要に応じて、指定された長方形領域と交差する可能性のある長方形オブジェクトの配列を取得することだけです。検出されること。
私は HT (http://www.hightopo.com/) GraphView と Graph3dView の 2 つのコンポーネントを構築し、ht.widget.SplitView を通じて左右に分割しました。両方のビューが同じ DataModel を共有しているため、残りの懸念事項は解決されます。は、DataModel に対するデータ操作のみです。200 個の ht.Node オブジェクトが構築され、同時に、各オブジェクトの attr 属性に保存されます。これは、quadtree に繰り返し挿入されます。更新中にオブジェクトが繰り返し作成され、quadtree.retrieve(rect) で検出する必要がある長方形オブジェクトを取得するときに、その長方形オブジェクトも ht.Node オブジェクトを参照するように保存されます。関連付けられた ht.Node オブジェクト。最終的に衝突として検出されたプリミティブに赤色の効果を設定する必要があるためです。つまり、ht.Node は通常、デフォルトの青色を表示し、相互に衝突すると赤色に変わります。
quadtree.retrieve(rect) から取得される、検出する必要がある長方形オブジェクトの配列には、それ自身のプリミティブが含まれることになりますが、同時に、これらは衝突する可能性があるという意味ではありません。この例はすでに衝突しているため、ht.Default.intersectsRect(r1, r2) を使用して、それらが交差するかどうかを最終的に判断します。例が円の場合、2 つの円の中心間の距離を計算できます。交差するかどうかを判断する半径が 2 つ未満であるため、最終的な判断基準はゲームの種類によって異なります。
QuadTree を使用すると、コンピューティングのパフォーマンスが大幅に向上しました。そうでない場合、100 個のグラフィック要素には 100*100 回の監視が必要になります。この量は、通常、100*(10~30) になります。 youku.com/v_show/id_XODQyNTA1NjY0.html
http://www.hightopo.com/demo/QuadTree/ht-quadtree.html
衝突検出に加えて、QuadTree アルゴリズムには多くの興味深い応用分野があります。興味がある場合は、https://github.com/fogleman/Quads で試してみることができます
すべてのコードは次のとおりです。
りー
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

OnLeaks は、X (旧 Twitter) のフォロワーから 4,000 ドル以上を集めようとして失敗した数日後、Android Headlines と提携して Galaxy S25 Ultra のファーストルックを提供しました。コンテキストとして、h の下に埋め込まれたレンダリング イメージ

TCLは、2つの新しいスマートフォンの発表に加えて、NXTPAPER 14と呼ばれる新しいAndroidタブレットも発表しました。その巨大な画面サイズはセールスポイントの1つです。 NXTPAPER 14 は、TCL の代表的なブランドであるマット LCD パネルのバージョン 3.0 を搭載しています。

Vivo Y300 Pro は完全に公開されたばかりで、大容量バッテリーを備えた最もスリムなミッドレンジ Android スマートフォンの 1 つです。正確に言うと、このスマートフォンの厚さはわずか 7.69 mm ですが、6,500 mAh のバッテリーを搭載しています。これは最近発売されたものと同じ容量です

サムスンは、ファンエディション(FE)スマートフォンシリーズをいつアップデートするかについて、まだ何のヒントも提供していない。現時点では、Galaxy S23 FE は 2023 年 10 月初めに発表された同社の最新版のままです。

ここ数日、Ice Universeは、サムスンの次期主力スマートフォンであると広く信じられているGalaxy S25 Ultraの詳細を着実に明らかにしている。とりわけ、リーカーはサムスンがカメラのアップグレードを1つだけ計画していると主張した

Motorola は今年数え切れないほどのデバイスをリリースしましたが、そのうち折りたたみ式デバイスは 2 つだけです。ちなみに、世界の大部分ではこのペアが Razr 50 および Razr 50 Ultra として受け入れられていますが、Motorola は北米では Razr 2024 および Razr 2 として提供しています。

Redmi Note 14 Pro Plusは、昨年のRedmi Note 13 Pro Plus(Amazonで現在375ドル)の直接の後継者として正式に発表されました。予想通り、Redmi Note 14 Pro Plusは、Redmi Note 14およびRedmi Note 14 Proと並んでRedmi Note 14シリーズをリードします。李
