Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void BresenhamAlgorithm::BresenhamLine(int x0, int y0, int x1, int y1)
- {
- bool flag = true;
- int i = 0, s0 = sgn(x1 - x0), s1 = sgn(y1 - y0);
- int
- x = x0, y = y0,
- delta_x = abs(x1 - x0), delta_y = abs(y1 - y0),
- e_mod = 0;
- if (delta_y > delta_x)
- {
- swap(delta_x, delta_y);
- }
- else
- {
- flag = false;
- }
- e_mod = 2 * delta_y - delta_x;
- for (int i = 0; i <= delta_x; i++)
- {
- Tuple<int, int>^ temp_tuple = gcnew Tuple<int, int>(x, y);
- points->Add(temp_tuple);
- delete temp_tuple;
- while (e_mod >= 0)
- {
- if (flag)
- {
- x += s0;
- }
- else
- {
- y += s1;
- }
- e_mod -= 2 * delta_x;
- }
- if (flag)
- {
- y += s1;
- }
- else
- {
- x += s0;
- }
- e_mod += 2 * delta_y;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement