2

私は CGPoints の配列を持っています (2 つの float を持つ基本的な構造体: x と y)。OpenGL ES を使用して、これらのポイントを使用してテクスチャ カーブを描画したいと考えています。2点だけでもいいのですが、複数の点から線を引く必要がある場合は難しくなります。

現在、水平に線を引き、指定された点から角度を計算してから回転させます。曲線内のすべての線に対してこれを行うのは良い考えではないと思います。おそらくもっと速い方法があります。

すべてのポイントを一度に「拡大」または「収縮」して、何らかの幅のある曲線を作成できると考えています。

4

1 に答える 1

1

私はあなたが達成したいことを確信していませんが、これを考慮してください:

ポイントの順序付きリストに基づいて、それらのポイントを使用してポリラインを描画できます。2D テクスチャを含むポリラインが必要な場合は、一連の四角形を描くことができます (もちろん、それぞれに 2 つの三角形を使用します)。これらの四角形は、catmul-rom スプライン生成と同様のアイデアを使用して生成できます。

一連の点 p[i-1]、p[i]、p[i+1] を考えてみましょう。ここで、各 i について、p[i-1] と p[i+1] を結ぶ線に垂直な線に沿って、p[i] からそれぞれイプシロン距離離れた 2 つの点を見つけることができます。p[0] から p[1] への線に垂線を使用するなど、さまざまな方法で端点に対して生成された 2 つのポイントを決定できます。

これがあなたの方法よりも速いかどうかはわかりませんが、結果をキャッシュする必要があります。フレームごとにこれを実行する予定がある場合は、問題に対する別のタイプの解決策が必要になる場合があります。

于 2009-12-30T06:43:54.413 に答える