2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4  След.
 
 Как нарисовать график?
Сообщение14.09.2016, 01:50 
Заслуженный участник


18/01/15
3231
Помогите, пожалуйста, с таким вопросом. Как написать на Си (простом, как в Кернигане)
такую программу, чтобы она могла рисовать график функции. Т.е., допустим,
я ввожу имя файла, где содержится таблица значений функции, а программа мне
в окошечке показывает ее график. Или в какой книжке все это написано более-менее
понятно? Я использую компилятор TinyC, под Виндоус, а в современных компьютерных
продуктах и т.д. не разбираюсь совершенно. Заранее спасибо.

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 04:21 
Заслуженный участник


16/02/13
4196
Владивосток
Ну, видите ли, вопрос в стиле «как приготовить завтрак?» И что на такое отвечать? В мире, подозреваю, тысячи способов.
Есть графические библиотеки в составе Виндоуз; есть графические библиотеки для ДОСа; есть куча всего, так что даже простое перечисление — работа для коллектива авторов на пару месяцев (лет?)

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 08:19 
Аватара пользователя


20/10/12
308
Так тысяча способов не нужна -- достаточно одного. И в Windows API разбираться не хочется, и библиотеки какие-то ставить лень...

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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 08:58 


19/07/15
74
Sphinx Pinastri в сообщении #1151055 писал(а):
Есть способ! Нужно сгенерировать программу на языке PostScript, которая и нарисует искомый график.


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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 09:43 
Заслуженный участник


18/01/15
3231
Уважаемые коллеги,
спасибо за советы. Я, пожалуй, поступлю, как советует Sphinx Pinastri. Если вдруг возникнут проблемы,
рассчитываю вновь на вашу помощь. vpb.

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 10:26 


28/04/16

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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 10:37 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 17:18 


28/04/16

57
iifat в сообщении #1151075 писал(а):
Чистый Цэ заточен исключительно на программирование.

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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 17:54 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 20:11 
Заслуженный участник


18/01/15
3231
Я уже осуществил то, что советовал Sphinx Pinastri.
Это оказалось очень просто. Еще раз большое спасибо.
Хороший совет --- великое дело! Вопрос можно считать закрытым. vpb.

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение14.09.2016, 23:45 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 02:18 
Аватара пользователя


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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 02:34 
Заслуженный участник
Аватара пользователя


16/07/14
9152
Цюрих
Если хочется писать на С - то вместо Qt можно взять GTK+. Хотя для рисования графиков это из пушки по воробьям - слишком крупная система, и сложно попасть.

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

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 06:30 
Заслуженный участник


16/02/13
4196
Владивосток
Aritaborian в сообщении #1151259 писал(а):
программу плюс входные к ней данные, обрабатывать входные данные в соответствие программе и выдавать ответ
Примерно так, хотя, хочу отметить, скажем, стандартный калькулятор Виндоуз ложится в это определение несколько со скрипом. Тут речь, скорее, о поведении, чем о получении ответа по входным данным. Хотя в некотором широком смысле верно.

 Профиль  
                  
 
 Re: Как нарисовать график?
Сообщение15.09.2016, 07:47 


28/04/16

57
arseniiv в сообщении #1151129 писал(а):
а не про плюсы.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу 1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group