Форум программистов, компьютерный форум, киберфорум
Программирование графики
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/27: Рейтинг темы: голосов - 27, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.03.2024
Сообщений: 12

На базе какой библиотеки сделать программу для рисования?

04.07.2024, 10:17. Показов 8500. Ответов 109

Студворк — интернет-сервис помощи студентам
Добрый день, я хочу сделать графическое приложение а ля Paint для портфолио, но не знаю, какую библиотеку использовать
для этого – WinAPI или SFML? Кое-где вычитал, что можно даже Qt creator использовать. Дайте ответ, какую библиотеку использовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2024, 10:17
Ответы с готовыми решениями:

Создать программу для рисования сюжетного рисунка. Рисунок должен содержать какой то сюжет: человек, природа, животные
///

Библиотеки для рисования(?)
Добрейший вечерочек, может уже кто-нибудь интересовался вопросом: а есть ли библиотеки для шарпа в которых т.н. инструменты для изменения...

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

109
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
04.07.2024, 15:11
Студворк — интернет-сервис помощи студентам
Ну да. Я бы попробовал поучить SDL.
(Я на нём не работал)
Пишут что это низкоуровневый фрамеворк.
SFML похоже, но оно попроще. Более высокоуровневое.
Может не всё прокатить....
SFML рисует....
https://xgm.guru/p/programms/sfml-drawing-2d
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
04.07.2024, 15:45
Цитата Сообщение от SmallEvil Посмотреть сообщение
То есть, они пытаются стандартизировать/сгладить то что в каждого человека уникальное.
Тут нужно не программные средства улучшать, именно в этом направлении, а аппаратные способы ввода.
Но штука полезная. Например, попробуй нарисовать свою подпись в пейнте с помощью мыши. Выйдет очень ужасно, с артефактами дрожания руки. А теперь представь 90-летнего деда с дрожащей рукой. А с этой функцией выходит прилично. А учитывая, что многие редактируют изображения в фотошопо-подобных прогах без стилуса, то эта функция просто крайне необходима.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
04.07.2024, 15:48
Цитата Сообщение от Наталья8 Посмотреть сообщение
SFML
ошибка природы )

Добавлено через 3 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
А теперь представь 90-летнего деда с дрожащей рукой. А с этой функцией выходит прилично.
Но у него будет рука дрожать постоянно по другому и подпись не будет совпадать и так и сяк.
Если же сглаживать до такой степени что бы было совпадение, тогда любой дурак так напишет подпись.
Я надеюсь что ты понял о чем я.
Как и в архиваторах - нельзя всё сжать без потерь, так и тут, нельзя сглаживать то что не должно быть сглажено.
Есть люди для которых всё это не важно, лишь бы что то продвигать непонятно куда и зачем, но тут форум не для них и не о оных.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
04.07.2024, 23:18
https://grafika.me/node/493
И погнали наши городских...
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
04.07.2024, 23:22
Там есть в низу. Попробую привинтить.

0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.07.2024, 23:55
Ramin_bleeen, Может стоит попробовать поюзать что то из серии OpenGL/DirectX/Vulcan? Под виндой проще буде DirectX. Он вообще в плане обвязочной мишуры не относящейся собственно говоря к рисованию простой как 5 копеек.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 00:22
Прёть....
Я для себя. Поинтересуюсь.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 02:10
C++ SDL2 как создать буферизацию движения мыши
Рисует мышкою...
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 11:52
Название: NewPicture1.png
Просмотров: 81

Размер: 6.7 Кб
Одна дллка - мегабайт. Ни чего страшного.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
05.07.2024, 12:15
Наталья8, хватит прокрастинировать, давай делай уже пейнт на SDL2, а мы потом заценим.

Добавлено через 4 минуты
Ramin_bleeen, кстати, на официальном сайте Microsoft, есть код для рисования с помощью GDI

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
BOOL fDraw = FALSE; 
POINT ptPrevious; 
 
  . 
  . 
  . 
 
case WM_LBUTTONDOWN: 
    fDraw = TRUE; 
    ptPrevious.x = LOWORD(lParam); 
    ptPrevious.y = HIWORD(lParam); 
    return 0L; 
 
case WM_LBUTTONUP: 
    if (fDraw) 
    { 
        hdc = GetDC(hwnd); 
        MoveToEx(hdc, ptPrevious.x, ptPrevious.y, NULL); 
        LineTo(hdc, LOWORD(lParam), HIWORD(lParam)); 
        ReleaseDC(hwnd, hdc); 
    } 
    fDraw = FALSE; 
    return 0L; 
 
case WM_MOUSEMOVE: 
    if (fDraw) 
    { 
        hdc = GetDC(hwnd); 
        MoveToEx(hdc, ptPrevious.x, ptPrevious.y, NULL); 
        LineTo(hdc, ptPrevious.x = LOWORD(lParam), 
          ptPrevious.y = HIWORD(lParam)); 
        ReleaseDC(hwnd, hdc); 
    } 
    return 0L;
1
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 13:38

Что то я не нахожу в нём, как ускорить рендеринг при нажатии на мышь.
На фотошопе меняеться. Видно по потреблению процессором.
На SFML можно было частоту кадров цифрой подставить.
Менять в ходе работы цикла.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 14:09
------------------------------------

Добавлено через 11 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
на официальном сайте Microsoft
Афигеть. Мусор от майкрософт...
Но слова красивые до жути...
Цитата Сообщение от Royal_X Посмотреть сообщение
MoveToEx(hdc, ptPrevious.x, ptPrevious.y, NULL);
        LineTo(hdc, ptPrevious.x = LOWORD(lParam),
Так понимаю это прямые рисовать?
Там тоже ни чего не начешешь...
(При быстром движении мыши всё увидишь)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
05.07.2024, 14:20
Цитата Сообщение от Наталья8 Посмотреть сообщение
Так понимаю это прямые рисовать?
Ну да, в примере прямые. Но визуально будет норм. Кажется, рисование точками это бред, нужно как раз прямые использовать. В сложных реализациях будут уже кривые Безье.

Цитата Сообщение от Наталья8 Посмотреть сообщение
Мусор от майкрософт...
Чем же тебе не нравится WinAPI. Оно же внутри как раз сишное. Ты ж завсегдатай раздела С?
К тому же, стоит задача сделать что-то похожее на пейнт. Именно на WinAPI значит получится ближе к пейнту.

Кстати, в Википедии написано

In Windows XP and later, Paint uses GDI+ and therefore can natively save images as BMP, JPEG, GIF, TIFF and PNG without requiring additional graphics filters.
Т.е. я был прав, когда советовал здесь в теме с самого начала GDI+.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 14:26
При быстром движении мыши, положение курсора надо как то регистрировать.
Не достаточная скорость работы цикла.
Когда будет достаточная, то он будет потреблять 60% времяни процессора.

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
Чем же тебе не нравится WinAPI
Кто тебе сказал, что мне не нравиться.
Я про костыльные примеры от майкрософт..

Добавлено через 3 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
с самого начала GDI+
Костыли... Но реклама, как у С с решёткою...
Вот и построй там цикл, что бы изменял скорость при нажатии мыши.
И увидишь костыли...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
05.07.2024, 14:31
Цитата Сообщение от Наталья8 Посмотреть сообщение
Не достаточная скорость работы цикла.
Когда будет достаточная, то он будет потреблять 60% времяни процессора.
Цитата Сообщение от Наталья8 Посмотреть сообщение
Вот и построй там цикл, что бы изменял скорость при нажатии мыши.
И увидишь костыли...
Мне кажется, что не нужно создавать цикл. Циклы это мусор и это насилование процессора. Рисуй во время движения мыши, когда нажата левая кнопка мыши. Когда клавиша поднимается, то рисование прерывается. Заметь, в примере на GDI нет цикла.

Цитата Сообщение от Royal_X Посмотреть сообщение
case WM_LBUTTONDOWN:
левая кнопка мыши была нажата
Цитата Сообщение от Royal_X Посмотреть сообщение
case WM_LBUTTONUP:
левая кнопка мыши была приподнята
Цитата Сообщение от Royal_X Посмотреть сообщение
case WM_MOUSEMOVE:
мышь двигается

этого достаточно
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 14:31
Какой пент?
Знать не знаю ни какого пента.

Пользуюсь со времён XP...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
05.07.2024, 14:32
Цитата Сообщение от Наталья8 Посмотреть сообщение
Какой пент?
вот такой
Цитата Сообщение от Ramin_bleeen Посмотреть сообщение
я хочу сделать графическое приложение а ля Paint для портфолио
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 14:35
Цитата Сообщение от Royal_X Посмотреть сообщение
Мне кажется, что не нужно создавать цикл
Цикл уже есть в той карусели, что ты нарисовал...
И отнюдь не быстрый.
Можешь вставить туда Beep(); И услышишь.

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
а ля Paint
Нихрена себе фантазии.
Может а ля фотошоп?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6311 / 3033 / 1053
Регистрация: 01.06.2021
Сообщений: 11,521
05.07.2024, 14:39
Цитата Сообщение от Наталья8 Посмотреть сообщение
Цикл уже есть в той карусели
ну разумеется, там есть message loop, но то из другой оперы

другой цикл создавать не нужно

Добавлено через 2 минуты
Цитата Сообщение от Наталья8 Посмотреть сообщение
Нихрена себе фантазии.
Это задание ТС. Или ты хочешь офтопить?
Цитата Сообщение от Наталья8 Посмотреть сообщение
Может а ля фотошоп?
у тебя-то и пейнт пока не получается, а ты уже о фотошопе заговорил. Не нужно péter plus haut que ton cul
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
05.07.2024, 18:53
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) {
                
        window.setFramerateLimit(280);
    
                thePoint.position.x = (float)sf::Mouse::getPosition(window).x;
                thePoint.position.y = (float)sf::Mouse::getPosition(window).y;
            
                thePoint.color = sf::Color(100, 0, 200);
 
                vertices.append(thePoint);
            }
    else
        window.setFramerateLimit(20);

Если сделать кисть хотя бы шесть на шесть, то будет рисовать.
В процессе.
(Это SFML)
Берёт разгон до полного загруза процессора.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2024, 18:53

Библиотеки для рисования Statecharts в Java
Злравствуйте! Есть ли библиотеки, с помощью которых можно было бы рисовать statecharts (диаграммы состояний) на JAVA ? Попробовал...

Библиотеки для рисования трехмерных графиков функций
Доброго времени суток, подскажите пожалуйста, какие существуют библиотеки для рисования трехмерных графиков функций в С#?

Какие есть библиотеки для рисования на холсте и сохранения рисунка в файл?
нужно чтобы она делала что-то подобное: Canvas=Canvas(w,h) Canvas.Line(x,y) ........ Canvas.SaveToJpg(filename) т.е....

Объекты рисования: как вместо объекта рисования эллипса сделать линию
Подскажите как Принять размер клетки = 4 пиксела? И как вместо объекта рисованиея элипса линию сделать? Преобразование Масштабирование:...

Какой процедурой нужно пользоваться для рисования через canvas на image?
Как должен выглядеть код и какое свойство объекта нужно использовать, чтобы через canvas рисовать на image?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru