1

クリッピング アルゴリズムには、2D ライン クリッピング用の Cohen-Sutherland、Cyrus-Beck アルゴリズムなどの多くの手法があり、円と多角形には他にも多くの手法があります。しかし、次の画像で説明されているように、C ++で行を三角形のウィンドウにクリップする方法を探しています: ここに画像の説明を入力

だから私は3つのケースを持っています.1つ目は線が三角形の内側にあり、描画する必要があります.2番目のケースは三角形の外側にあり、描画してはいけません.では、処理のパフォーマンスに関してこれを行うための最良の方法は何ですか?!

4

1 に答える 1

3

ここで必要な基本原則は、三角形の各辺の交点を計算し、交点がエッジの内側にあるかコーナーを超えているかを判断することです (交点アルゴリズムが提供するはずです)。

基本的に、三角形の辺 CD に対する線分 AB の交点は、A と C が時間 = 0 を表し、B と D が 1 の時間を表す交点時間を示します。両方の線分が 0 と 1 の間の値であれば、それらが交差することを意味します。 、三角形の外側の点が交点に配置されるように、テストしている線分を変更する必要があります。その範囲外の値は、三角形のその辺を無視できることを意味します。(線分が完全に三角形の外側にあるか、他の 2 つの辺で切り取ります。)

あなたは順番に各側でそれを行うだけです.

于 2013-04-10T18:26:01.900 に答える