Нужно при помощи алгоритма Брезенхема нарисовать график функции A*sin(Bx+C)+D. Моя логика рассуждений такая - sin от -pi/2 до pi/2 возрастает, учитывая то, что у нас не sin(x), а sin(bx + c), то sin будет возрастать с -(pi+2c)/2b до (pi-2c)/2b. В точке -(pi+2c)/2b, sin(bx+c) будет равен -1, в итоге мы при данном x окажемся в точке (-(pi+2c)/2b, -a+d), и это будет стартовая точка. Т.к. функция возрастает, то мы можем от стартовой точки проверять только точки (xs+1, ys), (xs+1, ys + 1), (xs, ys+1), а остальные точки можно просто отражать т.к. функция периодическая. Ну и суть алгоритма Брезенхема в том, чтобы выбирать минимальное расстояние от точки, до чего-то, что связанно с особенностями функций. Я изначально думал, что нужно сравнивать расстояние до центра, но по итогу это конечно не так. Что-то связанное с производной, нет идей, будьте добры, подскажите расстояние до чего я должен сравнивать, и как его получить?

задан 7 Апр '18 12:22

изменен 7 Апр '18 12:25

Вопрос актуален!

(7 Апр '18 23:23) Viktor133743

@Viktor133743: здесь надо хорошо представлять себе детали этого алгоритма. Там в описании должно быть сказано, как и по какому принципу делать закраску. У Вас есть ссылка на реализацию этого алгоритма?

(8 Апр '18 0:08) falcao

@falcao, есть, но оно лишь для обыкновенных прямых, либо для гипербол/парабол, что не имеет отношения к синусоиде, везде принцип один, проверять точки dx+1, dx+1 dy+1, dy+1 на предмет расстояния до чего либо и выбирать минимум, вот только с синусоидой непонятно расстояние до чего считать, что-то должно быть связано с производной и направлением

(8 Апр '18 0:14) Viktor133743

@Viktor133743: алгоритм должен быть либо уже разработан и описан, либо его применять нельзя. Судя по всему, это вещь довольно старая, и там всё должно быть сделано. Специфика кривых вряд ли играет роль. Я думаю, что без точного описания тут делать нечего, так как гадать на предмет того, от чего берётся минимальное расстояние -- дело явно негодное.

(8 Апр '18 2:45) falcao
10|600 символов нужно символов осталось
Знаете, кто может ответить? Поделитесь вопросом в Twitter или ВКонтакте.

Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×192

задан
7 Апр '18 12:22

показан
206 раз

обновлен
8 Апр '18 2:45

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru