目次
HTML5 は 3D および 2D 視覚化 QuadTree クアッドツリー衝突検出を実装します
ホームページ バックエンド開発 PHPチュートリアル HTML5 は 3D および 2D 視覚化を実装します。QuadTree クアッドツリー衝突検出_PHP チュートリアル

HTML5 は 3D および 2D 視覚化を実装します。QuadTree クアッドツリー衝突検出_PHP チュートリアル

Jul 12, 2016 am 09:03 AM
android

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

Screen Shot 2014-12-06 at 12.41.24 AM

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


Screen Shot 2014-12-06 at 12.42.35 AM

衝突検出に加えて、QuadTree アルゴリズムには多くの興味深い応用分野があります。興味がある場合は、https://github.com/fogleman/Quads で試してみることができます

Screen Shot 2014-12-06 at 12.52.17 AM

すべてのコードは次のとおりです。

りー

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1080259.html技術記事 HTML5 は 3D および 2D の視覚化を実装しています QuadTree クアッドツリー衝突検出 QuadTree クアッドツリーは、名前が示すように、各ノードに 4 つの子ノードがあり、2 次元平面を再帰的に分割できます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:23 PM

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

Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Samsung Galaxy S25 Ultraの最初のレンダリング画像がリークされ、噂のデザイン変更が明らかに Sep 11, 2024 am 06:37 AM

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

IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します IFA 2024 | TCLのNXTPAPER 14は、パフォーマンスではGalaxy Tab S10 Ultraに匹敵しませんが、サイズではほぼ匹敵します Sep 07, 2024 am 06:35 AM

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

Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Vivo Y300 Pro は、7.69 mm のスリムなボディに 6,500 mAh のバッテリーを搭載 Sep 07, 2024 am 06:39 AM

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

Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Samsung Galaxy S24 FEは、4色と2つのメモリオプションで予想よりも低価格で発売されると請求されています Sep 12, 2024 pm 09:21 PM

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

新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します 新しいレポートは、噂のSamsung Galaxy S25、Galaxy S25 Plus、Galaxy S25 Ultraのカメラアップグレードのひどい評価を提供します Sep 12, 2024 pm 12:22 PM

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

Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Motorola Razr 50s は初期リークで新たな予算を折り畳める可能性があることを示す Sep 07, 2024 am 09:35 AM

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

Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Xiaomi Redmi Note 14 Pro Plusは、Light Hunter 800カメラを搭載した初のQualcomm Snapdragon 7s Gen 3スマートフォンとして登場します Sep 27, 2024 am 06:23 AM

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シリーズをリードします。李

See all articles