Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 18
1

Нужна литература по работе с графикой

10.06.2015, 23:32. Показов 2110. Ответов 33
Метки нет (Все метки)

Прочитал книгу по Си (Керниган, Ричи). Вроде всё понятно, что там написано. Но как работать с графикой на си в linux так и не понял. Гугл пишет про xlib/sdl/opengl, но фразы типа "Don't forget to add the -lSDL command during the linkage" вводят меня в ступор. Хочется научиться работать с графикой и при этом хорошо понимать, что делаешь. А не просто копировать команды в командную строку.

Посоветуйте книгу на русском, где всё понятно, разжёвано, где детально разбираются параметры компилятора, команда make, графика, итп. Если там ещё про разработку сетевых программ или драйверов будет - вообще замечательно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2015, 23:32
Ответы с готовыми решениями:

Литература по работе с одномерными и многомерными массивами
Ребят,помогите найти литературу по работе с одномерными и многомерными массивами (в частности схема...

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

Нужна литература по Си
Уважаемые форумчане! Будьте добры, дайте рабочие ссылки на книги, рекомендованные в разделе...

Нужна бесплатная литература
Я прочитал тему с литературой по С и какой из приведенных учебников более всего подходит для...

__________________
33
442 / 312 / 98
Регистрация: 02.10.2008
Сообщений: 1,187
Записей в блоге: 1
11.06.2015, 08:50 2
Артур Гриффитс. GCC: Настольная книга пользователей, программистов и системных администраторов.
Есть на studfiles в свободном доступе - прямую ссылку вставить не могу - движок меняет часть url`а на ****
1
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 18
11.06.2015, 11:39  [ТС] 3
Подойдёт, если других вариантов не найдётся, придётся её читать. Просто не люблю с экрана читать. А в бумажном варианте её вряд ли найти. Нет ничего по свежее, чтобы в продаже было?

Нашёл на озоне "Язык С в XXI веке" Автор: Клеменс Б. Может кто читал? Там больше по windows или по linux? Стоит её заказывать?
0
442 / 312 / 98
Регистрация: 02.10.2008
Сообщений: 1,187
Записей в блоге: 1
11.06.2015, 15:48 4
Цитата Сообщение от f3nix Посмотреть сообщение
Нет ничего по свежее, чтобы в продаже было?
А зачем? Если и есть к-то отличия в опциях современного ГЦЦ, то слишком уж специфичные.

Да, конечно почти 700 листов осилить это пытке подобно, вот как бумажный справочник - то да - цены ей нет. Если есть лазерный принтак - распечатай (полторы упаковки бумаги - около 300рэ, а подобная книженция в магазе под штуку выйдет)

Добавлено через 11 минут
Цитата Сообщение от f3nix Посмотреть сообщение
Нашёл на озоне "Язык С в XXI веке" Автор: Клеменс Б. Может кто читал? Там больше по windows или по linux? Стоит её заказывать?
Скачал, глянул поверхностно - книга ни о чём, да там написано как линковать либы, но насчёт "современности" - это они зря, я не нашёл ничего по самому языку (предполагается что читатель уже знает с и с++).
По компилерам описываются мелкософт, гцц, интел. Но описываются опять же шапочно. Покупать не стоит, почитать с экрана - скачай, полистай, может и найдёшь что-то полезное...
1
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 18
18.06.2015, 22:25  [ТС] 5
Читаю Гриффитса djvu файл. В нём не открывается 58 страница. Если у вас есть 58 страница, поделитесь пожалуйста. Вдруг там что-то важное.
0
0 / 0 / 0
Регистрация: 10.08.2017
Сообщений: 17
14.08.2017, 10:31 6
нашел что - то по работе с графикой?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
14.08.2017, 12:01 7
Цитата Сообщение от drfaust Посмотреть сообщение
Артур Гриффитс. GCC: Настольная книга пользователей, программистов и системных администраторов.
Книжка для общего развития конечно полезная и прочитать её сто'ит, но каким боком она к созданию графических приложений относится - вопрос.
f3nix, если в linux и на С - библиотека GTK+ в помощь. Документация есть и на "родном" сайте https://www.gtk.org/documentation.php
и на сайте разработчиков gnome https://developer.gnome.org/
И книги есть разной свежести. И с самой библиотекой руководство устанавливается (загляните в /usr/share/gtk-doc). Но на нерусском языке. Прийдётся или его подучить, или переводы искать. Но первый путь правильнее - много полезной документации (не только по gtk) либо вообще не переведено, либо переведено так, что лучше бы не брались...
0
Заклинатель змей
606 / 505 / 212
Регистрация: 30.04.2016
Сообщений: 2,417
14.08.2017, 18:30 8
f3nix, обратитесь к GTK или Qt. Бумажных книг по ним не знаю, но есть обширная документация
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
14.08.2017, 20:06 9
Цитата Сообщение от Alex0x0000058 Посмотреть сообщение
Бумажных книг по ним не знаю
По Qt полно, при чём и от русскоязычных авторов есть и переведённые. Только это С++.
0
442 / 312 / 98
Регистрация: 02.10.2008
Сообщений: 1,187
Записей в блоге: 1
14.08.2017, 20:07 10
Если интересует Qt - то стоит поискать русский перевод(а он есть) Макс Шлее "Qt 5.3 Профессиональное программирование на С++"

Вроде новее чем 5.3 этой книжки не видел. Очень понравилась мне. Но для работы с Qt надо очень хорошо знать С++
0
Модератор
Эксперт Python
28541 / 15409 / 3046
Регистрация: 12.02.2012
Сообщений: 25,254
Записей в блоге: 4
17.08.2017, 10:25 11
Осторожный совет: если хочешь действительно разбираться в графике, начинать нужно с математики. Например, вот с этого
0
199 / 86 / 9
Регистрация: 15.11.2010
Сообщений: 472
17.08.2017, 14:16 12
Цитата Сообщение от Catstail Посмотреть сообщение
Осторожный совет: если хочешь действительно разбираться в графике, начинать нужно с математики. Например, вот с этого
Это совсем не то, что нужно автору темы. Я так понял, он хочет научиться писать программы с графическим интерфейсом — GUI. Для этого ему надо изучить соответствующие библиотеки виджетов — GTK+ (для C), QT (для C++) или xlib либо Win32 API (если он с этим хочет разбираться на более низком уровне). Но знать основы машинной графики ему совсем не нужно будет, если он просто хочет научиться создавать графический интерфейс пользователя. Если он собирается профессионально разрабатывать игры, анимации, САПРы, программы, выводящие всевозможные трёхмерные сцены, то да, ему это необходимо. Хотя большая часть всего этого всё равно реализована в библиотеках 3D вроде OpenGL и не требует ручного программирования. Но в этих областях такие знания всё равно нужны и полезны. Если же цель стоит в написании обычных пользовательских программ с меню, кнопками, табличками и текстовым вводом/выводом, непонятно, чем ему поможет знание трёхмерной машинной графики (а это аналитическая и дифференциальная геометрия). Ему нужны книги по GTK, QT и, возможно по Win API (если он собирается всю жизнь работать с Windows).
0
Модератор
Эксперт Python
28541 / 15409 / 3046
Регистрация: 12.02.2012
Сообщений: 25,254
Записей в блоге: 4
17.08.2017, 14:31 13
Цитата Сообщение от JohnyWalker Посмотреть сообщение
Я так понял, он хочет научиться писать программы с графическим интерфейсом — GUI
- а для этого С/С++ плохо подходит (слишком трудоемко).
1
199 / 86 / 9
Регистрация: 15.11.2010
Сообщений: 472
17.08.2017, 15:11 14
Цитата Сообщение от Catstail Посмотреть сообщение
- а для этого С/С++ плохо подходит (слишком трудоемко).
Почему же? В опенсоурсе огромное количество программ с графическим интерфейсом, написанных на C/C++, причём часть из них неплохие программы. Библиотека QT написана на C++ и имеет интерфейс C++ (есть ещё обёртка для Питона — PyQT). Библиотека GTK+, если не ошибаюсь, написана на C и имеет интерфейс чистого C (хотя она вроде объектноориентирована по сути). Таковы две самые популярные и массово используемые кроссплатформенные библиотеки. wxWidgets написана на C++ и имеет интерфейс C++, тоже популярная библиотека. Почему же C/C++ не подходит для написания GUI-интерфейсов, я не понимаю...

Можно пользоваться дизайнерами форм (вроде IDE QT Creator), визуальными студиями разработки вроде MS Visual Studio для создания интерфейса пользователя, но это же всё равно автогенераторы кода, которые порождают код на C++. QT Creator породит код на C++ для библиотеки QT, а Visual Studio для библиотеки MFC. Это обычный код на C++, который потом при сборке проекта самым обычным образом скомпилируется.

Если создавать графический интерфейс вручную, это действительно будет трудоёмко. Но выбор другого языка уровнем повыше, чем C и C++, этот процесс ничуть не облегчит. Возьмите вы хоть Java, хоть C#, хоть Perl с Python'ом, программисту будет на них создавать GUI ничуть не легче, чем на C и C++, — будут те же самые сложности.

Я, конечно, не силён в создании GUI-интерфейсов, и в этой части совсем не авторитет, но не понял смысла вашего замечания.

Добавлено через 12 минут
Может, вы знаете какой-то другой, особый путь создания GUI-приложений?
0
Evg
Эксперт CАвтор FAQ
21158 / 8174 / 628
Регистрация: 30.03.2009
Сообщений: 22,472
Записей в блоге: 30
17.08.2017, 15:49 15
Цитата Сообщение от Alex0x0000058 Посмотреть сообщение
f3nix, обратитесь к GTK или Qt
После этого будут все шансы остаться у разбитого корыта

Пока не поймёшь базовые основы того, как работают компиляторы (или, наверное, более правильно называть термином "система программирования"), так и будешь всю жизнь бегать на форум с вопросами "в документации написано добавьте опцию -lSDL, а я не понимаю, куда её добавить". Так что для того, чтобы ТС'у добиться поставленной цели надо как минимум осилить две промежуточные цели:

1. Научиться программировать хотя бы на базовом уровне, чтобы понимать, что вообще делается, а не тупо нажимать на конструктор форм в IDE
2. Научиться пользоваться компилятором из командной строки, чтобы понимать, как вообще устроена техника современного программирования с использованием библиотек

Возможно, после этого третья цель (точнее, её понимание) придёт сама собой:

3. Ни в Си, ни в Си++ нету вообще никакой графики. Вся графика реализуется средствами, внешними по отношению к языку программирования
1
Модератор
Эксперт Python
28541 / 15409 / 3046
Регистрация: 12.02.2012
Сообщений: 25,254
Записей в блоге: 4
17.08.2017, 17:52 16
Цитата Сообщение от JohnyWalker Посмотреть сообщение
Может, вы знаете какой-то другой, особый путь создания GUI-приложений?
- да, конечно. VB, VB.NET, к примеру.

Добавлено через 2 минуты
Цитата Сообщение от JohnyWalker Посмотреть сообщение
Почему же C/C++ не подходит для написания GUI-интерфейсов, я не понимаю...
- я написал "плохо подходит". Потому, что непроизводительно. На Vb я тот же интерфейс реализую в несколько раз быстрее при том же качестве.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
17.08.2017, 18:03 17
Цитата Сообщение от Catstail Посмотреть сообщение
На Vb я тот же интерфейс реализую в несколько раз быстрее при том же качестве.
На самом деле спорное утверждение. Во-первых на Qt окошки рисовать уж точно не сложнее, а во-вторых по Glade тоже есть мастера спорта международного уровня. Да там и сложного ничего практически.
0
Модератор
Эксперт Python
28541 / 15409 / 3046
Регистрация: 12.02.2012
Сообщений: 25,254
Записей в блоге: 4
17.08.2017, 18:13 18
easybudda, рисовать, может быть, и не сложнее. Но обработчики событий писать... И я не о мастерах спорта, а о людях простых.
0
199 / 86 / 9
Регистрация: 15.11.2010
Сообщений: 472
17.08.2017, 20:07 19
Цитата Сообщение от Catstail Посмотреть сообщение
- да, конечно. VB, VB.NET, к примеру.

Добавлено через 2 минуты
- я написал "плохо подходит". Потому, что непроизводительно. На Vb я тот же интерфейс реализую в несколько раз быстрее при том же качестве.
Catstail, спорить с вами не хочется, потому что в этом вопросе очень плохо разбираюсь. Но из общих соображений мне кажется:

1) Вручную (т. е. программным текстом) реализовывать графический интерфейс трудоёмко и долго будет на любом языке. Надо рассчитывать положение, координаты элементов, связывать функции или классы (в случае ООП), осуществляющие вычисления, с обработчиками событий виджетов. И мне кажется, более простой и незатейливый язык вроде Visual Basic нисколько не решит этой проблемы. Всё равно придётся определять объекты классов, соответствующие виджетам, инициализировать их в соответствии нужными координатами, чтобы они появлялись в нужных местах, определять виртуальные функции-обработчики событий в классах виджетов и т. п. Какая разница, что у нас - низкоуровневый C, тонкий и запутанный C++ или простой понятный язык вроде Visual Basic.NET. Делать и в том, и в другом случае, как мне кажется, придётся то же самое. Более лёгкий синтаксис VB принципиально здесь ничего не упростит.

2) По-настоящему ускорить процесс разработки интерфейса может дизайнер форм. Он позволит по сути дела нарисовать внешний вид всех элементов, связать с ними классы виджетов, обработчики событий, при этом даже функции-обработчики событий будут указываться и вставляться графическим визуальным путём. Сами эти функции придётся уже писать в виде текста, их визуальным путём разработать, конечно, не удастся. Зато нарисовать все графические элементы, вид экрана и даже втиснуть имена функций или классов, обрабатывающих нажатия меню, кнопок, элементов табличек и прочего, можно визуально-графическим путём. В ответ на все эти действия пользователя по созданию интерфейса дизайнер форм со всеми своими мастерами будет формировать специальный файл, описывающий внешний вид всего этого, скорее всего, даже набор файлов, и эти файлы будут иметь, скорее всего, формат xml или что-то подобное. Т. е. программой-дизайнером будет формироваться что-то похожее на html-документ (в принципе, html и xml - похожие форматы). После того как дизайн программы будет сформирован и программист запустит проект на сборку, насколько я понимаю, сборщик студии запустит специальную программу. Она на основе xml-файлов сформирует и сгенерирует код на языке программирования. Создаст объекты виджетов и инициализирует их, свяжет с ними функции-обработчики и т. д. Т. е. на основе xml-файлов будут порождены уже файлы на нормальном языке программирования, причём текст файлов на языке программирования будет строго соответствовать описанию на xml. А дальше уже запустится компилятор и линкер и из файлов на языке программирования создаст программный код. Для VB.NET в MS Visual Studio наверняка есть такой мощный дизайнер форм, который всё это прекрасно делает. Но есть он и для C#, и для C++, и делает он примерно одно и то же для всех этих языков.

Я к чему всё это так подробно расписываю... Что ручное программирование интерфейса даже при наличии мощной библиотеки виджетов вроде QT (хотя уже такая библиотека виджетов представляет собой богатый конструктор готовых деталей и графических модулей) вещь долгая, трудоёмкая и нудная. При этом язык сам по себе тут ничего не меняет, выбором языка тут ничего особенно не упростишь. С другой стороны, графические студии, дизайнеры, снабжённые редактором форм и кучей мастеров, вопрос разработки интерфейса решают радикально - скорость разработки интерфейса возрастает на порядок, если не больше. Но они существуют для самых разных языков - и для C++, и для Java, и для C#, и для Visual Basic. И для объектного Паскаля фирма Borland когда-то разработала очень мощную среду - Дельфи (для C++ её аналогом был Билдер). Т. е. если мы говорим о студиях, билдерах и дизайнерах, то выбор языка опять оказывается непринципиален в смысле скорости разработки. Такие среды быстрой разработки программ, опирающиеся на то, что разработка начнётся с проектирования и рисования интерфейса, существуют для самых разных языков. Есть они и для Бейсика, и для Си. И говорить, что вот Бэйсик хорош для такой разработки, а C/C++ или Паскаль плох, не имеет смысла. Это вопрос наличия мощного удобного дизайнера, автоматизирующего процесс создания интерфейса, но отнюдь не языка, как мне кажется.

Но если я по вашему мнению, уважаемый Catstail, неправ, с удовольствием и интересом выслушаю вашу точку зрения. Сам я в вопросе разбираюсь очень плохо, так как этой темой не интересовался, она мне не близка. Когда посмотрел на все эти формочки и мастера, решил, что мне это не интересно. Так что ваше мнение рад выслушать.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
17.08.2017, 20:29 20
Цитата Сообщение от Catstail Посмотреть сообщение
Но обработчики событий писать...
А что с ними сложного? И в Qt, и в GTK обработчики довольно просто приделываются. Единственный момент - на С с GTK писанины всё-таки много получается, в этом плане Python c PyGObject действительно выигрышно смотрится, но в выборе языка наличие GUI - не самый главный аргумент.
Ну и кроме всего прочего, человек про
Цитата Сообщение от f3nix Посмотреть сообщение
linux
спрашивал, так, что, VB не вариант.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2017, 20:29

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Нужна литература для новичка
Здравствуйте. Собираюсь начать изучение Си, до этого писал только несложные программы на Pascal....

Нужна литература о тонкостях языка
Драсьте, киньте пожалуйста чтива на русском языке, в котором бы говорилось о различных тонкостях...

Работа с памятью - нужна литература
Я несколько месяцев назад начал знакомство с Си (до этого знал Паскаль, Бэйсик). Прочитал пару...

Нужна литература, желательно, на русском
Что-то из нормальных русскоязычных книг по Си, которые можно почитать после K&R, не нашёл. Только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.