Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Создание графика функции с параметрами.


Автор: kolorimage 7.11.2010, 21:25
Народ!
Подтолкните меня на правильный путь..
Мне нужно написать функцию которая будет рисовать параболу.
Но эта функция должна быть очень гибкая.
То есть, я должен регулировать ширину (по оси Х) и высоту (по оси У), а также выгнутость дуги.
например по оси Х она может быть 100,по оси у - 10
или по Х-100, а по У-20, то есть, по Х она такая же как предыдущая, но в два раза выше (по У)...

Автор: ksnk 7.11.2010, 21:55
Ну а какие проблемы?

Пишешь уравнение параболы в широком смысле
y=a(x+b)^2+с
соответственно - 3 параметра для определения вида параболы. "окно" в котором видно параболу - еще пара пар параметров. На все про все не более 7и инпутов. Гибкость максимальная, разве что цвет и толщину еще можно указать  smile 

График строить по точкам. Шаг выбрать так, чтобы соседние значения y не различались более чем на 2 пикселя. метод половинного деления в помощь.

для более быстрого построения графика - можно строить его линиями, шаг тогда уместно будет выбрать побольше, пикселей 5-10... Смотря насколько точно нужно строить...

Автор: kolorimage 7.11.2010, 22:09
Ну все вроде как без проблем..но!
как вот мне этот график сжать:
http://ipicture.ru/
чтобы не заканчивался где то там вверху..а именно на 100 по оси У

Автор: ksnk 7.11.2010, 22:29
Как решать квадратные уравнения нужно объяснять?  smile 

находишь 2 решения для y=100. Изменяешь максимальное значение X на min(максимальная граница X,максимальный корень), минимальное значение X = max(минимальная граница X,минимальный корень).

Автор: kolorimage 7.11.2010, 22:46
Ууу...я совсем глупый, наверное..
Я думал что нужно будет какое то значение поменять, или параметр добавить..
А можно то что и раньше но немножко по подробнее?  smile 

Автор: ksnk 7.11.2010, 23:02
Цитата(kolorimage @  7.11.2010,  22:46 Найти цитируемый пост)
то что и раньше но немножко по подробнее? 

Цитата(ksnk @  7.11.2010,  22:29 Найти цитируемый пост)
находишь 2 решения для y=100. Изменяешь максимальное значение X на min(максимальная граница X,максимальный корень), минимальное значение X = max(минимальная граница X,минимальный корень). 

Смотрим на твой рисунок.
для функции решениями при y=100 будут x= 5 и x=-15. Границы просмотра, установленные юзером - X от 0 до 10. Так что когда будем ставить настоящие границы графика, минимальную границу X оставим 0 (max(0,-15)) верхнюю границу ставим 5 (min(5,10)) итого, получается график для x от 0 до 5.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)