実際に私はこの呼び方がわかりませんが、固定長の描画カーブ
私はこのような機能を実装したいと思います。そして、この線は例えば100ピクセルの長さ、もはや...この曲線の長さが100ピクセルより大きくなったとき、最後の(古い)ピクセルを隠す(消去する)必要があります。ピクセルは良いアイデアですので、私はあなたの助言が必要ですplz
実際に私はこの呼び方がわかりませんが、固定長の描画カーブ
私はこのような機能を実装したいと思います。そして、この線は例えば100ピクセルの長さ、もはや...この曲線の長さが100ピクセルより大きくなったとき、最後の(古い)ピクセルを隠す(消去する)必要があります。ピクセルは良いアイデアですので、私はあなたの助言が必要ですplz
OpenGLESはglBegin/Endをサポートしていないため、配列以外のオプションはありません。 100pxがあまりにも多く割り当てられていないので、リンクリスト構造を使用してピクセルデータを保存し、更新が発生するたびにOpenglバッファを再構築します(入力イベント)。
リンクされたリストの代わりに、私はstartとendのインデックスを保持して配列を使って、それらを循環させることで、arrayを使うことを提案できます。しかし分数ポイントに注意する必要があります。擬似コードは次のようになります。
public void addVertice(float x,float y){
{
if(curveLength<MAX_CURVE_SIZE)
{
ar[end][0]=x;
ar[end][1]=y;
end++;
curveLength++;
}
else{
ar[end][0]=x;
ar[end][1]=y;
end=1+(end+1)%(MAX_CURVE_SIZE-1);// cycle, but never left only one element in array
start=1+(start+1)%(MAX_CURVE_SIZE-1);
ar[MAX_CURVE_SIZE][0]=ar[1][0];
ar[MAX_CURVE_SIZE][1]=ar[1][0];
ar[0][0]=ar[MAX_CURVE_SIZE-1][0];
ar[0][1]=ar[MAX_CURVE_SIZE-1][0];
}
updateBuffers();
}
バッファーを描画するには、2つのサイズ指定を処理する必要があります。 start
がend
より小さい場合、開始点を最後まで描画します。 start
がend
より大きい場合は、start
〜MAX_CURVE_LENGTH
と0〜end
を入力する必要があります。どちらの場合も、同じインデックスバッファを使用できます。
あなたはどの言語/プラットフォームで作業していますか? –
アンドロイドとiOSの両方... OpenGL – davs
が質問タグを更新したとします。質問に正しい眼球を得るのに役立ちます。 –