2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3, 4  След.
 
 Как нарисовать график?
Сообщение14.09.2016, 01:50 
Помогите, пожалуйста, с таким вопросом. Как написать на Си (простом, как в Кернигане)
такую программу, чтобы она могла рисовать график функции. Т.е., допустим,
я ввожу имя файла, где содержится таблица значений функции, а программа мне
в окошечке показывает ее график. Или в какой книжке все это написано более-менее
понятно? Я использую компилятор TinyC, под Виндоус, а в современных компьютерных
продуктах и т.д. не разбираюсь совершенно. Заранее спасибо.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 04:21 
Ну, видите ли, вопрос в стиле «как приготовить завтрак?» И что на такое отвечать? В мире, подозреваю, тысячи способов.
Есть графические библиотеки в составе Виндоуз; есть графические библиотеки для ДОСа; есть куча всего, так что даже простое перечисление — работа для коллектива авторов на пару месяцев (лет?)

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 08:19 
Аватара пользователя
Так тысяча способов не нужна -- достаточно одного. И в Windows API разбираться не хочется, и библиотеки какие-то ставить лень...

Есть способ! Нужно сгенерировать программу на языке PostScript, которая и нарисует искомый график. А дальше Postscript можно преобразовать в PDF, SVG или любой растровый формат.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 08:58 
Sphinx Pinastri в сообщении #1151055 писал(а):
Есть способ! Нужно сгенерировать программу на языке PostScript, которая и нарисует искомый график.


Тогда уж проще сгенерировать текстовый файл с парами координат и скормить его, например, gnuplot

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 09:43 
Уважаемые коллеги,
спасибо за советы. Я, пожалуй, поступлю, как советует Sphinx Pinastri. Если вдруг возникнут проблемы,
рассчитываю вновь на вашу помощь. vpb.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 10:26 
На чистом си нарисовать что-либо очевидно сложно, т.к. он заточен не на графику, а на работу с командной строкой в старых ОС. Выберите что-нибудь посовременнее для создания графических приложений, Qt C++, например.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 10:37 
petrov_ich в сообщении #1151073 писал(а):
он заточен не на графику, а на работу с командной строкой в старых ОС
Чистый Цэ заточен исключительно на программирование. Плевать ему на командную строку и прочих тараканов в вашей голове.
Sphinx Pinastri в сообщении #1151055 писал(а):
программу на языке PostScript
Вариант. Не стоит только обольщаться лёгкостью: вслед за рисованием графиков захочется рисовать их красиво, с осями и подписями, потом ещё и в диалоге... В общем, итог, имхо, окажется вовсе не проще и не лучше (хотя и не хуже) Виндового АПИ. Ну, за исключением, конечно, такой мелочи как системонезависимость результата :wink:

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 17:18 
iifat в сообщении #1151075 писал(а):
Чистый Цэ заточен исключительно на программирование.

Программирование ради программирования?

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 17:54 
petrov_ich
Си — system-agnostic. Это и имелось в виду, а не «программирование ради программирования». Между прочим, вы и сами упомянули кросс-платформенную библиотеку Qt для C++, который тоже кросс-платформенен, но только вы не учли, что ТС спрашивал про
vpb в сообщении #1151042 писал(а):
написать на Си (простом, как в Кернигане)
а не про плюсы.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 20:11 
Я уже осуществил то, что советовал Sphinx Pinastri.
Это оказалось очень просто. Еще раз большое спасибо.
Хороший совет --- великое дело! Вопрос можно считать закрытым. vpb.

 
 
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 23:45 
petrov_ich в сообщении #1151123 писал(а):
Программирование ради программирования?
— Молоток предназначен для забивания гвоздей.
— Для пустого, бесполезного забивания гвоздей?
— Молоток предназначен для забивания гвоздей. Философские вопросы его не волнуют.
vpb в сообщении #1151166 писал(а):
Вопрос можно считать закрытым
«Если вопрос правильно поставить, он будет долго стоять» :wink:

 
 
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 02:18 
Аватара пользователя
petrov_ich в сообщении #1151123 писал(а):
Программирование ради программирования?
Что вы вообще хотели этим сказать? iifat, очевидно, имел в виду, что чистый Си создан для того, чтобы получать программу плюс входные к ней данные, обрабатывать входные данные в соответствие программе и выдавать ответ. При этом его не интересуют ни источник данных, ни получатель ответа. Видимо, то же самое имел в виду уважаемый arseniiv под словами
arseniiv в сообщении #1151129 писал(а):
Си — system-agnostic

 
 
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 02:34 
Аватара пользователя
Если хочется писать на С - то вместо Qt можно взять GTK+. Хотя для рисования графиков это из пушки по воробьям - слишком крупная система, и сложно попасть.

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

 
 
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 06:30 
Aritaborian в сообщении #1151259 писал(а):
программу плюс входные к ней данные, обрабатывать входные данные в соответствие программе и выдавать ответ
Примерно так, хотя, хочу отметить, скажем, стандартный калькулятор Виндоуз ложится в это определение несколько со скрипом. Тут речь, скорее, о поведении, чем о получении ответа по входным данным. Хотя в некотором широком смысле верно.

 
 
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 07:47 
arseniiv в сообщении #1151129 писал(а):
а не про плюсы.

Ну раз уж обсуждение продолжается... В Qt C++ можно писать программы и без глубокого знания плюсов - т.е. используя только средства создания графической оболочки. Обработку собственных данных внутри программы можно осуществлять хоть на чистом Си: ну не нравится тебе по какой-то причине:
Код:
QString str
- бери:
Код:
char str[256]
и вперёд. И так далее. Остаётся только пользование стандартными визуальными Qt-шными плюшками, такими как кнопка, метка, меню открыть файл, рисование на форме или на сцене - я выбрал то, что по моему мнению пригодится для построения графика. Тут минимальные знания ООП конечно не помешают. Но если уж совсем учиться влом - гуглишь "как заставить работать кнопку в Qt" и тупо копируешь код себе в программу. Поверьте - она будет работать. На тематических Qt-шных форумах почти всегда в начале есть раздел для новичков, как написать первую (и вторую и третью) программу на Qt. И так далее. Вот вам и почти чистый Си и график функции на экране.

 
 
 [ Сообщений: 51 ]  На страницу 1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group