2

誰かがこの狂気のしくみを説明してくれませんか: http://www.youtube.com/watch?v=KL8QLLmUvbg

具体的には、与えられた数の正方形をパスに沿って均等に分配することに興味があります。また、これが複数の線分で機能するかどうかも疑問です。これは 1 つの曲線セグメントであり、複数の曲線を含む 1 つの大きな線にオブジェクトを分散させるソリューションが必要です。

基本的にはキャラクターにリアルに追従するしっぽを作ろうとしています。

ありがとう

4

3 に答える 3

7

まず、ベジェスプラインは。によってパラメータ化された曲線tです。ただしt、曲線に沿った弧長ではありません。したがって、手順はこれです。

  1. ベジェ曲線の長さを計算します。
  2. 曲線をN個の等しい長さのセグメントに分割するt値を見つけます。

ただし、これらの2つの手順には注意が必要です。

1つ目は、2次ベジエのみの閉形式の解です。(ここで解決策を見つけることができます)それ以外の場合は、細分割と近似のアプローチ、または数値積分のアプローチを使用します(そして、ある意味でこれらは同等です-数値積分のアプローチを使用します。トリッキーな実装ですが、気にする場合と気にしない場合があります。)

2つ目は基本的に値の推測であり、アプローチを改善します(各ステップでステップ1と同じスタイルの計算を使用します)。ニュートン法の検索を使用するために必要な導関数は計算するにはコストがかかりすぎると思われるため、割線スタイルの検索を使用してこれを実装します。

オブジェクトの位置を取得したら、カーブの接線とコタンジェントを使用して、オブジェクトのローカル参照フレームを作成する必要があります。これにより、オブジェクトがすべて同じ方向になるのではなく、カーブのパスにうまく収まるようになります。これは2Dでのみうまく機能することに注意してください。3Dでは、オブジェクト指向で奇妙な動作をする可能性があります。

于 2012-08-16T05:19:05.213 に答える
0

ベジェ曲線がどのように計算されるかを調べることから始めることができます。ウィキペディアには説明付きの素晴らしいアニメーションがいくつかあり、このリンクにはいくつかのas3コードがあります。

ただし、テールを作成しようとしている場合は、次の動作や物理ライブラリを使用するなど、より簡単な方法があります。

于 2012-08-16T04:56:29.427 に答える
0

シンプルにするために、ダニエルが推奨するような次の動作システムを作成することになりました。しかし、マイケルのすばらしい答えを詳しく説明するために、スプライン手法の詳細を説明するこのチュートリアルに出くわしました。

http://gamedev.tutsplus.com/tutorials/implementation/create-a-glowing-flowing-lava-river-using-bezier-curves-and-shaders/

于 2012-10-10T16:04:32.220 に答える