Где я ошибаюсь в алгоритме рисования круга Брезенхема?

Что ж, это звучит смешно, но сейчас я уже более десяти раз пытаюсь понять, что я делаю неправильно в этом примере. Я видел учебник в Интернете, и пример показан ниже:

введите здесь описание изображения

На этапе 3: разве мы не должны уменьшать Yi до 9? Я говорю это, потому что переменная решения Pi=13 удовлетворяет условию if Pi>=0, Yi +1=Yi-1, как показано ниже:введите здесь описание изображения

Вопрос. Где я ошибаюсь? Пожалуйста, кто-нибудь, объясните мне это.

PS: Я ценю еще больше проработанных примеров, спасибо.


person Nation Chirara    schedule 04.11.2015    source источник
comment
При возникновении проблем с пониманием итераций полезно 1) записать итерации вручную и 2) записать итерации со значениями. ( ` если p0 ‹ 0 then { y1 = y0; p1 = p0 + 4*x0 + 6 ; } else if p0 ›=0 { y1 = y0 -1; p1 = ... .... ` ) Пишите до тех пор, пока не возьми !!! :-)   -  person GameAlchemist    schedule 04.11.2015
comment
Спасибо, это то, что я делал, но не знал, какие Pi определяют какие координаты.   -  person Nation Chirara    schedule 05.11.2015


Ответы (1)


Нет, мы не должны уменьшать значение Yi до 9 на 3-м этапе. Позвольте мне уточнить, где вы ошибаетесь,

  • Считайте, что вы находитесь на 3-м этапе.
  • Теперь вы проверяете значение Pi на основе предыдущего значения самого себя, которое получено на 2-м этапе.
  • Вот и сделай, Pi = -1 + 4(2) + 6
  • Значение 13 будет получено после выполнения этой операции на данном этапе.
  • После того, как это значение будет получено, на 4-м этапе вы проверите значение Pi на 3-м этапе.
  • Теперь Pi будет больше 0 и, следовательно, Yi уменьшится до 9.

Надеюсь это поможет.

person Mayur Bhangale    schedule 04.11.2015
comment
Вы имеете в виду, что Pi из 2nd stage определяет координаты (x,y) 3-го этапа`, Пи из 3-го определяет координаты 4-го этапа,...? Например, мы сначала вычисляем координаты этапа 3 на основе значения Pi из 2-го этапа, прежде чем вычислять Pi этапа 3? - person Nation Chirara; 04.11.2015
comment
да. Точно! Попробуйте сделать это на бумаге для более точного понимания. - person Mayur Bhangale; 04.11.2015
comment
Что ж, спасибо, я делал это на бумаге, и теперь это имеет смысл. - person Nation Chirara; 05.11.2015