LINUX.ORG.RU

Построение графиков


0

0

Что-то не могу придумать как написать программу которая строила бы график какой-либо функции (2d), я так понимаю для построения нужны множество точек x и f(x), но как их соединить в единое целое? просто ставить много точек, с очень маленьким шагом? или как-нибудь нужно соединять их короткими отрезками(но тогда график будет не гладким я думаю)? Нужен простейший пример, т.е когда ф-ция задается прямо в программе, без разбора введенного выражения, желательно на Qt4.

anonymous

Когда-то это была одна из первых задач, которую изучали на Бейсике...

И в школе любой восьмиклассник её без подсказок делал.

Может быть зря от Бейсика отказались? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Все может быть, согласен, я здесь жутко туплю, не могу придумать как сделать и все(( подскажи если знаешь пожалуйста

anonymous
()

Второй вариант. График будет негладким, а что поделаешь. Если хочешь гладкий - ботай антиалиасинг :)

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Размер шага вычислять, конечно, исходя из масштаба графика, чтобы по одному шагу на пиксель.

Legioner ★★★★★
()
Ответ на: комментарий от KRoN73

Помнится у нас в школе был компьютерный класс с БКшками. Мы в бейсике цветочки рисовали. Наверное действительно зря теперь детей перестали бейсику учить — на ЛОРе было бы много меньше вопросов от неквалифицированных «программистов».

anonymous
()
Ответ на: комментарий от anonymous

>Все может быть, согласен, я здесь жутко туплю, не могу придумать как сделать и все(( подскажи если знаешь пожалуйста

Самый простой случай - рисовать не point(x,y), а lineto(x,y)

Хочется красиво, с антиалиазингом - примерно то же самое, но, например, через Cairo.

KRoN73 ★★★★★
()

>как написать программу которая строила бы график какой-либо функции

f=popen("gnuplot","w"); write(f,....); а потом загрузить из файла результат:)

DonkeyHot ★★★★★
()
Ответ на: комментарий от anonymous

>Дергай gnuplot и не выпендривайся. Не надо изобретать велосипеды.

А потом вырастает поколение, высчитывающее расстояние между двумя точками как d=x1-x2+y1-y2.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Учиться на рисовании графиков - нелепо. Это слишком большая и сложная задача, которую очень просто сделать не так, и не заметить этого. Я слишком много видел дурных примеров того, что с подобными велосипедостроителями потом случается.

Научиться правильно мыслить в рамках unix way (а дернуть через popen внешнее приложение - это он и есть) - гораздо полезнее, чем пытаться выродить очередные ни фига не работающие эвристики расстановки рисок на графике в логарифмической шкале для малых и неудобных диапазонов значений.

anonymous
()
Ответ на: комментарий от KRoN73

правильно все делают: там ведь лишние квадраты под корнем: оно сокращается :)

Pi ★★★★★
()
Ответ на: комментарий от KRoN73

> А потом вырастает поколение, высчитывающее расстояние между двумя
> точками как d=x1-x2+y1-y2.


Если серьёзно, то это будет очень продвинутое поколение :)
google: Manhattan distance
http://en.wikipedia.org/wiki/Taxicab_geometry

Valeriy_Onuchin ★★
()

rtfm интерполяция

jtootf ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

Не-не-не-не... Там модуля не было. Когда я для примера показал случай, при котором точки, находящиеся в +/-миллионе точек друг от друга по этой формуле окажутся на нулевой дистанции, даже это на народ не подействовало. «Но, ведь, работает как-то!». Лишь через пару недель заметил выправление на нормальную. :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

Валерий, я, в отличии от вас, рутеров, очень много чего могу. Могу рисовать красивые, не аляповатые графики, которые не стыдно даже в самом распонтовом журнале напечатать (тогда как все знакомые рутеры для этой цели сразу про рут забывают и возвращаются к PAW).

Но мнения своего менять не буду - если человек такие вопросы задает, то не хрен ему учиться на задаче рисования графиков. Научится он самостоятельно абсолютно неправильно, и потом такие как он очередной корявый рут напишут.

anonymous
()
Ответ на: комментарий от KRoN73

Ясно, ниасилил. Учись читать, lmd.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.