3

http://www.doobybrain.com/wp-content/uploads/2008/03/traffic-simulation.gifのような交通シミュレーターを作成したいのですが、 これについてはあまり深く理解していませんでした。

クラスカーを作ります。すべての車には、独自の色や位置などがあります。

そして、私は配列で道路を作成することができました。

しかし、どこに行くべきかを車に伝える方法は?あなたの考えを聞いてもらえますか?

編集:優れたプログラマーから新しいアイデアを得るのは禁じられていますか?なぜこのスレッドを閉じたい人がいるのですか?それともそのような質問をすることでしたか?私はそれらを理解していません。:(

EDIT2:次回はゲーマーフォーラムに行きます。今までのアイデアが好きです。ありがとう!

4

7 に答える 7

5

You don't tell a car where to go. It goes anyway due to its velocity. By looking ahead (where will it be a few timesteps from now, and is there still a road?) you can see whether you need to adjust the velocity.

And a road isn't an array; it's a matrix or bitmap. You can't go all that fast in the corner or you'll fly from the road.

It's always a good idea to clearly formulate the goals and scope first. In this case, you would be thinking about the extent of the modeling (the physics involved) and the complexity of the car movements (collisions, following bend roads, and so on).

I find that if you can state your concept clearly in plain English (or Dutch in my case), writing the code becomes much easier, almost trivial sometimes.

EDIT

For clarity, when I'm talking about velocity I'm talking about a vector, which has both magnitude (10MPH) and direction. Your vectors would have 2 elements, x and y, unless you also want airplanes, or want to model hills and such (you don't want hills 'cause you'd also have to take gravity into account:) where a z position and velocity are used.

于 2010-04-27T10:36:18.633 に答える
2

衝突検出も考慮する必要があります。必ずしも車同士の衝突ではありませんが、他の車両の近くにいるときにいつブレーキをかけるのが適切かをエージェント (AI) に伝える方法が必要です。これは、各車の周囲に境界球を配置して行うことができます。

于 2010-04-27T11:32:17.410 に答える
2

各車には、位置、速度、方向/軌道/目的地があります。この情報、他の車の相対位置、および (最終的には) 「道路標識」の存在に基づいて、各車の次の位置と、車が減速するか加速するかを計算できます。

新しい車をシミュレーションに追加するときは、最初の位置、速度、および目的地を設定するだけです。

于 2010-04-27T11:25:10.143 に答える
2

これには私自身のプロジェクトを使用することをお勧めします。それはGarlicSimと呼ばれ、シミュレーションを作成するためのプラットフォームであり、あなたが念頭に置いている種類のシミュレーションに最適です。(ちなみに、ちょうど昨日、バージョン 0.4 という大きなリリースを行いました)。

これはすべて Python であり、優れた GUI も提供します。

真剣に考えていただければ、simpack の作成をお手伝いできます。やりたい方はメーリングリストにメールを送ってください。

于 2010-04-27T11:53:20.383 に答える
2

シミュレーターの背後にある理論はキューイング理論です。母校のコースで、役立つキーワードをいくつか示しているページを見つけました - https://www.erasmus.cvut.cz/prospectus/FTS/11THO-E.html。シミュレータ自体は「より簡単」になります。

于 2010-04-27T12:32:54.170 に答える
1

アーティストや非プログラマーまたは初心者プログラマーを対象とした、処理と呼ばれる Java ベースのパッケージがあり、非常に優れた視覚化機能が含まれています。例えば)。パーティクル システムを示すデモを見て、個々の車をモデル化する方法を理解してください。このコード呼び出しpyprocessingの Python 表現があります。これは、同じ単純なプログラミング イディオムのほとんどに従います。

これが私の小さな「tesla」アプレットです- マウスを 2 つの球状電極の間で動かしてください。

于 2010-04-27T12:36:33.397 に答える
0

最初の質問: シミュレーションの範囲は?

高度な AI と高度なフォトリアリスティック グラフィックスとサウンド エフェクトを使用して、離散時間の 1 次元セル オートマトンのように単純にすることも、本格的な物理システム (エンジン内の化学反応をモデル化することもできます!) と同じくらい複雑にすることもできます。 .

その間に、多くの可能性があります。何ができるか、何を学びたいかを考えてください。

于 2010-04-27T12:36:02.363 に答える