пара вопросов о программировании

Привет всем!

возникла небольшая задача - и даже не знаю как правильно объяснить - то ли графика это то ли нет. вобщем суть вопросов:
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:я вот только

Цитата:
я вот только что глянул в турбо с++ - так там есть graphics.h в принципе почти разобрался как там треугольник нарисовать - вроде все просто.. а вот как с графиком (синусоидой быть)? неужели все полигонами рисовать и маленькими линиями??

ну ессно. А как же ещё делать?
Можно точками. Линиями оптимальнее. Тут ещё будет важен шаг прохода по ОХ. Чем он больше, тем линии "длинее", тем график более "грубоватым" получится.

Не понятена сама постановка вопроса. Мне кажется отчасти от того, что ты сам не понимаешь чего хочешь. Объясни нам в чём состоит задача, что хочешь получить на выходе, а мы уже тебе предложим список решений.

Пока что встречные вопросы такие:
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/ - тоже очень интересно!

WXP написал(а):
Цитата:
я вот только что глянул в турбо с++ - так там есть graphics.h в принципе почти разобрался как там треугольник нарисовать - вроде все просто.. а вот как с графиком (синусоидой быть)? неужели все полигонами рисовать и маленькими линиями??

ну ессно. А как же ещё делать?
Можно точками. Линиями оптимальнее. Тут ещё будет важен шаг прохода по ОХ. Чем он больше, тем линии "длинее", тем график более "грубоватым" получится.

это понятно. чем больше координат - тем конечно получиться сглаженнее и красивее.. я имел ввиду может можно построить что то типа y=x2+sin(x) ? или просто ввести ряд игриков и ряд иксов - и нарисовать кривую - ну это думаю просто точками можно..

WXP написал(а):
Не понятена сама постановка вопроса. Мне кажется отчасти от того, что ты сам не понимаешь чего хочешь. Объясни нам в чём состоит задача, что хочешь получить на выходе,

1) программа запрашивает координаты фигуры и рисует ее
2) другая программа запрашивает готовые координаты (что нежелательно) или функцию (что предпочтительнее) и выводит график

вот и все что я хочу.
а мы уже тебе предложим список решений.

WXP написал(а):
Пока что встречные вопросы такие:
1. Ты не знаешь на каком языке реализовать это?

я писал выше - на с++. вот с помощью какошо компилятора - это думаю суть Вашего вопроса - это я не знаю..

WXP написал(а):
2. Не знаешь какой граф. интерфейс выбрать?

как минимум - чтобы работало в консоли, в идеале - чтобы было в иксах (использвать qt или gtk раз они кроссплатформенные)

WXP написал(а):
3. Нужна кроссплатформенность решения (чтобы работало и в *никс, и в виндах)?

это в идеале. можно и два варианта - для виндов и линуксов.

WXP написал(а):
4. Какие-нить языки знаешь? и почему вопрос именно в линукс форум?

это уже два вопроса.
а) знаю но далеко не гуру. более менее работаю с 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:я имел ввиду

Цитата:
я имел ввиду может можно построить что то типа y=x2+sin(x) ?

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

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

Цитата:
2) другая программа запрашивает готовые координаты (что нежелательно) или функцию (что предпочтительнее) и выводит график

первое пишется элементарно, а вот чтобы функцию рисовать, тебе прийдется писато программу разбора выражения и перевода его, скажем в польскую инверсную запись (ПОЛИЗ), ну или воводить выражения сразу в ней. Ну и блок, который считает выражение, переведенное в ПОЛИЗ. В общем для этого прийдется немножко попотеть.

Судя по всему

Судя по всему лаба. Делай под вендой. Имхо быстрей.

Для отрисовки из под с++ (как и всегда) используются внешние либы. Для кросплатформенной работы нужны кросплатформенные либы (чтоб ввод-вывод под каждую платформу не писать). Можно юзать qt или wxgtk. Чисто Gtk заявлен, но под вендой судя по всему кривоват. По любому бинари либ под винды нато тащить с нета и ставить.

Спасибо

wi написал(а):
Судя по всему лаба.

не совсем так. с треугольниками попросили помочь люди, у кого даже компьютера нет - но я не знаю лаба это или контрольная, но то что в институт - это однозначно.

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

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

wi написал(а):
Делай под вендой. Имхо быстрей.

для начала я так и решил.

wi написал(а):
Для отрисовки из под с++ (как и всегда) используются внешние либы. Для кросплатформенной работы нужны кросплатформенные либы (чтоб ввод-вывод под каждую платформу не писать).

это я уже понял, спасибо всем за советы и пояснения.

wi написал(а):
Можно юзать qt или wxgtk.

я пока решил остановиться на qt - под него вроде хоть какая то документация имеется, а под gtk вобще ничего не нашел..

wi написал(а):
Чисто Gtk заявлен, но под вендой судя по всему кривоват.

ну не берусь судить, но у меня на работе stardict стоит под виндами на gtk env - вроде нормально работает.

wi написал(а):
По любому бинари либ под винды нато тащить с нета и ставить.

и это понял. спасибо!

KiberGus написал(а):
Цитата:
я имел ввиду может можно построить что то типа y=x2+sin(x) ?

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

ясно. спасибо.

KiberGus написал(а):
А тебе надо чтобы именно твоя, тобою написанная, программа графики строила? Если нет, юзай какой-нибудь gnuplot.

да, хотелось бы свою. идея давно, но вот с этим моменотом в реализации - остановлися..

KiberGus написал(а):
Цитата:
2) другая программа запрашивает готовые координаты (что нежелательно) или функцию (что предпочтительнее) и выводит график

первое пишется элементарно,

уже сделал. в том же turbo c++.

KiberGus написал(а):
а вот чтобы функцию рисовать, тебе прийдется писато программу разбора выражения и перевода его, скажем в польскую инверсную запись (ПОЛИЗ), ну или воводить выражения сразу в ней. Ну и блок, который считает выражение, переведенное в ПОЛИЗ. В общем для этого прийдется немножко попотеть.

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

спасибо!

Доки по либам

Доки по либам как правило в комплекте. Но англоязычные. В юсах doc пропиши. Доки будут ставится в /usr/share/doc/. Удобно натравить на этот каталог локальный апач. И юзать через http.

Для написания парсеров и лексических анализаторов в комплект входят lex (flex) (разбор интпута на лексические единицы), и bison (описание грамматики). Доки богатые с примерами в комплекте.

Достаточно богатая графика реализована в tex. Все что нужно - программно выкинуть соответсвующий текстовик.

пара вопросов о программировании

>> примечание (очень желательно) - должны использоваться такие возможности которые позволят скомпилировать и запустить программу в виндах.. написать нужно на с++

В общем мой совет. если хочешь написать быстро и без проблем с виндами, то есть такая библиотека - fltk

относительно простая и легкая.

без проблем работает в виндах и линуксе

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".