пара вопросов о программировании
tradakad 1 мая, 2007 - 13:41
Привет всем!
возникла небольшая задача - и даже не знаю как правильно объяснить - то ли графика это то ли нет. вобщем суть вопросов:
1) как и с помощью каких include нарисовать фигуру (ну квадрат или там треугольник) с указанными координатами в определенных точках, и потом закрасить цветом ( типа как в паскале библиотека graf была если не ошибаюсь) (вроде бы графика)
2) нужно вывести график (типа синусоиды) с указанными координатами по иксу и игрику. (а это уже и нет кажеться)
примечание (очень желательно) - должны использоваться такие возможности которые позволят скомпилировать и запустить программу в виндах.. написать нужно на с++
извините за глупые вопросы - к сожалению я не очень пока разбираюсь в этом :(
заранее спасибо всем!
»
- Для комментирования войдите или зарегистрируйтесь
Паскаль - это
Паскаль - это дос. Захватил себе видеокарточку в монопольное пользование и не паришься.
Тут так не получится. Тебе надо создавать окно, а потом рисовать в этом окне. На нижнем уровне создание окна в линуксе и в виндах - совсем разные вещи, поэтому надо использовать какую-нибудь графическую библиотеку. Например QT или GTK. Но с учетом твоих нужд, можно посмотреть и на SDL, предназначенный для игр, там как раз вывод двумерной графики есть, а если надо и OpenGL. Просто QT и GTK в первую очередь на рисование кнопочек заточены.
спасибо за
спасибо за ответ - значит останавливаемся в первую очередь на возможности запуска под виндами - это пускай главное будет.
я вот только что глянул в турбо с++ - так там есть graphics.h в принципе почти разобрался как там треугольник нарисовать - вроде все просто.. а вот как с графиком (синусоидой быть)? неужели все полигонами рисовать и маленькими линиями??
и второй вопрос - что за SDL?
насчет QT - вроде нашел пример - но даже та элементарщина не собирается - ругается то того нет то этого (могу привести исходники и написать что и как я делаю если нужно) в кдевелопере пустой проект qmake создал - а что дальше... куда... ничего особенно из докуменации для чайников по QT пока не нашел а времени в обрез..
так что наверно останавливаюсь на том чтоы хотя б в досе работало...
_________________
Success is simple. Do what's right, the right way, at the right time.
turbo c++ - это тоже
turbo c++ - это тоже досовская программа. Ну вернее он может как под досом работать, так и под виндами, но graphics.h - это для досовских программ.
Про SDL:
http://www.libsdl.org/
http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer
В частности наверное вот этот туториал:
http://sol.gfxile.net/gp/ch02.html
QT:
Тут, мне кажется, будет посложнее рабобраться. Туториал, если что:
http://docs.kde.org/development/ru/kdevelop/kde_app_devel/index.html
Quote:я вот только
ну ессно. А как же ещё делать?
Можно точками. Линиями оптимальнее. Тут ещё будет важен шаг прохода по ОХ. Чем он больше, тем линии "длинее", тем график более "грубоватым" получится.
Не понятена сама постановка вопроса. Мне кажется отчасти от того, что ты сам не понимаешь чего хочешь. Объясни нам в чём состоит задача, что хочешь получить на выходе, а мы уже тебе предложим список решений.
Пока что встречные вопросы такие:
1. Ты не знаешь на каком языке реализовать это?
2. Не знаешь какой граф. интерфейс выбрать?
3. Нужна кроссплатформенность решения (чтобы работало и в *никс, и в виндах)?
4. Какие-нить языки знаешь? и почему вопрос именно в линукс форум?
Re: Quote:я вот только
KiberGus, спасибо за ссылки. и в особенности за http://docs.kde.org/development/ru/kdevelop/kde_app_devel/index.html - это в любом случае пригодиться!
и вот что еще качаю http://docs.kde.org/development/ru/kdevelop/kdevelop/ - тоже очень интересно!
это понятно. чем больше координат - тем конечно получиться сглаженнее и красивее.. я имел ввиду может можно построить что то типа y=x2+sin(x) ? или просто ввести ряд игриков и ряд иксов - и нарисовать кривую - ну это думаю просто точками можно..
1) программа запрашивает координаты фигуры и рисует ее
2) другая программа запрашивает готовые координаты (что нежелательно) или функцию (что предпочтительнее) и выводит график
вот и все что я хочу.
а мы уже тебе предложим список решений.
я писал выше - на с++. вот с помощью какошо компилятора - это думаю суть Вашего вопроса - это я не знаю..
как минимум - чтобы работало в консоли, в идеале - чтобы было в иксах (использвать qt или gtk раз они кроссплатформенные)
это в идеале. можно и два варианта - для виндов и линуксов.
это уже два вопроса.
а) знаю но далеко не гуру. более менее работаю с delphi+mysql и php+mysql, похуже c#+mssql+asp.net, хочу серьезно браться за с,с++,с#
б) 1) потому что здесь были вопросы по программированию
2) мне здесь нравиться
3) это вроде не оффтопик, т.к. линукс версии программ хочу запустить у себя на машине, на своей любимой Linux tux 2.6.19-gentoo-r5 #5 Mon Apr 30 18:42:33 EEST 2007 i686 AMD Athlon(tm) XP 2200+ AuthenticAMD GNU/Linux
Заранее спасибо за помощь
Quote:я имел ввиду
Таких функций нет. Скорее всего в подавляющем большинстве языков общего назначения. Так что по точкам.
А тебе надо чтобы именно твоя, тобою написанная, программа графики строила? Если нет, юзай какой-нибудь gnuplot.
первое пишется элементарно, а вот чтобы функцию рисовать, тебе прийдется писато программу разбора выражения и перевода его, скажем в польскую инверсную запись (ПОЛИЗ), ну или воводить выражения сразу в ней. Ну и блок, который считает выражение, переведенное в ПОЛИЗ. В общем для этого прийдется немножко попотеть.
Судя по всему
Судя по всему лаба. Делай под вендой. Имхо быстрей.
Для отрисовки из под с++ (как и всегда) используются внешние либы. Для кросплатформенной работы нужны кросплатформенные либы (чтоб ввод-вывод под каждую платформу не писать). Можно юзать qt или wxgtk. Чисто Gtk заявлен, но под вендой судя по всему кривоват. По любому бинари либ под винды нато тащить с нета и ставить.
Спасибо
не совсем так. с треугольниками попросили помочь люди, у кого даже компьютера нет - но я не знаю лаба это или контрольная, но то что в институт - это однозначно.
а график - это моя давняя идея - суть ее - программа для расчета биоритмов и вывода соответсвующих графиков. все было нормально до одного момента связанного как раз с выводом графики. потом я отложил это в сторону из за занятости, а вот когда попросили помочь с треугольником - вспомнил.
Вы наверное скажете - таких прог пруд пруди и т.д.и т.п. но мне хочется своего - разве можно выучить язык не программируя на нем? разве не приятно писать что то от души, для себя? вот я пытаюсь это делать, потомучто это мне нравиться.
для начала я так и решил.
это я уже понял, спасибо всем за советы и пояснения.
я пока решил остановиться на qt - под него вроде хоть какая то документация имеется, а под gtk вобще ничего не нашел..
ну не берусь судить, но у меня на работе stardict стоит под виндами на gtk env - вроде нормально работает.
и это понял. спасибо!
ясно. спасибо.
да, хотелось бы свою. идея давно, но вот с этим моменотом в реализации - остановлися..
уже сделал. в том же turbo c++.
зато вещь получиться замечательная! ладно пока займеся этим турбо си++ раз он хоть точечки выводит, а потом подумаю о реализации в линуксе.
спасибо!
Доки по либам
Доки по либам как правило в комплекте. Но англоязычные. В юсах doc пропиши. Доки будут ставится в /usr/share/doc/. Удобно натравить на этот каталог локальный апач. И юзать через http.
Для написания парсеров и лексических анализаторов в комплект входят lex (flex) (разбор интпута на лексические единицы), и bison (описание грамматики). Доки богатые с примерами в комплекте.
Достаточно богатая графика реализована в tex. Все что нужно - программно выкинуть соответсвующий текстовик.
пара вопросов о программировании
>> примечание (очень желательно) - должны использоваться такие возможности которые позволят скомпилировать и запустить программу в виндах.. написать нужно на с++
В общем мой совет. если хочешь написать быстро и без проблем с виндами, то есть такая библиотека - fltk
относительно простая и легкая.
без проблем работает в виндах и линуксе