私のmousefuncでは関数bsplineを呼び出します。これは次のように機能します: マウスでコントロールポイントを置くことができ、これらのポイントに従ってbsラインが描画されます.3つのポイントを描いた場合、それらのポイント間の曲線が表示されます。別のポイントを追加すると、古いカーブが消え、新しいカーブが現れます。この新しいものは今4つのポイントの間にあります。これはうまく動作します。しかし、このbsplineカーブは1つのビューポートにのみ表示されます。このビューポートには黒い境界線があります。私のbsplineが再描画されると、この境界線が消えます。これは、glutPostredisplayを呼び出すために発生します。私のglutDisplayFuncではglClear(GL_COLOR_BUFFER_BIT)を呼び出しているからです。それが起こるのは自然なことです。私のdisplayfuncのglClear(GL_COLOR_BUFFER_BIT)を削除すると、ボーダーは残っていますが、古いカーブもそのまま残ります。国境が再描画されるべきだと言っても、何も起こりません。私は代替案を考えることができません。Bsplineは、ウィンドウの残りの部分をすべて削除することなく再描画する必要があります
0
A
答えて
1
OpenGLでは、通常は、シーンの一部が変更されるたびにシーン全体を再レンダリングする方法があります。あなたの場合、Bスプラインのコントロールポイントを変更すると、mouseclickハンドラ関数で描画操作を実行する代わりに、シーンの再表示がトリガされます。
OpenGLにはジオメトリの持続性がありません。プリミティブをピクセルベースのフレームバッファに描画するだけです。あなたはそれを使用する必要があります。
BSpline *b_spline;
void on_mouseclick(int x, int y)
{
float x_, y_;
transform_screen_to_scene(x,y, &x_, &y_);
bspline_add_control_point(b_spline, x_, y_);
trigger_redisplay();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
setup_viewport_and_projection();
bspline_draw(b_spline);
swap_buffers();
}
:
は、いくつかの擬似コードを明確にするために、
関連する問題
- 1. mysql_queryの最初の要素を削除して残りの部分をすべて取り除く方法は?
- 2. spannableStringの一部を削除する必要があります
- 3. 不要なスペースエレメントを削除する必要があります
- 4. すべてのフレームでSurfaceLayerを再描画する必要がありますか?
- 5. NN最新のエントリだけを残して残りの部分をすべて削除してください
- 6. カーソルで移動する線を描画する必要がありますが、100msごとにウィンドウ全体を再描画しないようにしたい
- 7. 大きなファイルを削除する必要があります
- 8. jqueryは部分ページポストバックでイベントを再バインドする必要があります
- 9. Google map marker - 情報ウィンドウでマーカーを削除する必要があります
- 10. ここからマーカーを削除すると、ハンドラーを削除する必要がありますか?
- 11. ファイルを削除して再作成すると、別のリビジョンになる必要がありますか?
- 12. カフカストリームのヌルを削除する必要があります
- 13. 配列のハイフンを削除する必要があります
- 14. テーブルを削除する場合は、外部キー/インデックスを個別に削除する必要があります。
- 15. 静的ベクトルは削除する必要がありますか?
- 16. Pythonでイテレータの残りの部分を取得する必要があります
- 17. BST削除ノードメソッドがツリーの残りの部分を切り捨てる
- 18. layout_weight必要なだけ正確に1つのアイテムに残り、残りのアイテムはすべて残ります
- 19. WordPressのサイトでこの画像を削除するには、コードのどの部分を編集する必要がありますか?
- 20. 親から子を削除する必要があります。親の子をすべてフェッチする必要はありますか?
- 21. ファイルの削除は7日間のファイルを残しておく必要がありますが、5を残すだけです...なぜですか?
- 22. SSIS外部メタデータ列を削除する必要があります
- 23. Globbyとrimrafは.ymlファイル以外のすべてを削除する必要があります
- 24. 画面レイアウトは部分ダイアログの代わりに全画面表示する必要があります
- 25. イベントハンドラを削除する必要がありますか?
- 26. Elasticsearchエイリアスを削除する必要がありますか?
- 27. 仮想インデックスを削除する必要がありますか?
- 28. OOP - 投稿を削除する必要がありますか?
- 29. バッチファイルを削除する必要があります
- 30. Android Studioでキャッシュを削除する必要があります