p>
output
outputstrong>- ライン生成アルゴリズムの中点は次のとおりです: 3,3 4 ,4 5,5 6,5 7,6 8,7 9,7 10,8
説明
- 与える座標は、x_1 = 3、x_2 = 10、y_1 = です。 3、y_2 = 8。したがって、ステップではまず dx = x_2 - x_1 を 10 - 3 = 7 として計算し、dy を y_2 - y_1 8 - 3 = 5 として計算します。 次に、dy が dx より小さいかどうかを確認します。ここで d を 5 - (7 / 2) = 2 として計算します。最初の点は x_1 と y_1 です。印刷してください。ここで、x_1 入力: int x_1 = 2、int y_1 = 2、int x_2 = 3、int y_2 = 4出力: 行から生成セグメント アルゴリズムによって取得される中点は次のとおりです: 2,2 3,3 3,4
説明:
指定された座標は、x_1 = 2、x_2 = 2、y_1 = 3、y_2 = です。 4.中点セグメント生成アルゴリズムを適用することにより、すべての中点ピクセルが出力として計算されます。次のプログラムで使用されるメソッドは次のとおりです。
入力整数点は int x_1、int y_1、int x_2、int y_2 です。関数 Mid_Point(x_1, y_1, x_2, y_2) を呼び出して線分を生成します。
関数内部 Mid_Point(x_1, y_1, x_2, y_2)#include<bits/stdc++.h> using namespace std; void Mid_Point(int x_1, int y_1, int x_2, int y_2){ int dx = x_2 - x_1; int dy = y_2 - y_1; if(dy <= dx){ int d = dy - (dx / 2); int first_pt = x_1; int second_pt = y_1; cout<< first_pt << "," << second_pt << "\n"; while(first_pt < x_2){ first_pt++; if(d < 0){ d = d + dy; } else{ d = d + (dy - dx); second_pt++; } cout << first_pt << "," << second_pt << "\n"; } } else if(dx < dy){ int d = dx - (dy/2); int first_pt = x_1; int second_pt = y_1; cout << first_pt << "," << second_pt << "\n"; while(second_pt < y_2){ second_pt++; if(d < 0){ d = d + dx; } else{ d += (dx - dy); first_pt++; } cout << first_pt << "," << second_pt << "\n"; } } } int main(){ int x_1 = 3; int y_1 = 3; int x_2 = 10; int y_2 = 8; cout<<"Mid-Points through Line Generation Algorithm are: "; Mid_Point(x_1, y_1, x_2, y_2); return 0; }
Mid-Points through Line Generation Algorithm are: 3,3 4,4 5,5 6,5 7,6 8,7 9,7 10,8
以上が中点ライン生成アルゴリズムの C++ 実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。