Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 22

Как отрисовывать график (x; y)

03.02.2022, 19:29. Показов 4460. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Задался целью создать приложение, которое может отрисовывать графики, однако столкнулся с проблемой. Если графики, где изменяется только x достаточно просто отрисовывать, то вот графики с переменными x и y (например x^2+y^2 = 1) я не имею понятия, как рисовать.
Была изначально идея подставлять вместо У значение, а потом у получившегося выражения искать корни и по этим точкам уже строить график, однако это будет медленно...
Есть может быть еще способы или способ выше самый удобный для отрисовки?
Заранее спасибо за помощь!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2022, 19:29
Ответы с готовыми решениями:

ASCII текст в WF. Как отрисовывать
Здравствуйте комрады, столкнулся со следующей необходимостью: Необходимо выводить текст (посимвольно) кодировки ASCII. Данные приходят...

Как праивильно отрисовывать объекты?
Здравствуйте! Имеется просьтенькая спрайтовая игра. Как выполняю отприсовку: 1. Рисую белый фон 2. Рисую спрайты ...

Как отрисовывать меню по вертикали и горизонтали?
Имеется меню следующего вида function ShowTree($parent, $lvl) { global $link; $lvl++; $sql =...

25
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2226 / 1428 / 420
Регистрация: 16.05.2013
Сообщений: 3,651
Записей в блоге: 6
04.02.2022, 17:53
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alexu_007 Посмотреть сообщение
Че то больно мудрёно. Не проще преобразовать всё к формуле y = f(x) и рисовать график?
Я исходил из того что на этапе разработки ПО вид зависимости может быть неизвестен. В противном случае задача гроша ломаного не стоит.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,350
04.02.2022, 18:03
Синусоида точками (с шагом 5 пикселей) и линиями:
Миниатюры
Как отрисовывать график (x; y)   Как отрисовывать график (x; y)  
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
08.02.2022, 20:44
Лучший ответ Сообщение было отмечено Ilot как решение

Решение

Цитата Сообщение от kazhroan Посмотреть сообщение
то вот графики с переменными x и y (например x^2+y^2 = 1) я не имею понятия, как рисовать.
Это уже неявные кривые.
https://ru.wikipedia.org/wiki/Неявная_кривая

По идее их так рисуют.
https://ru.wikipedia.org/wiki/Marching_squares
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
09.02.2022, 13:00
Цитата Сообщение от kazhroan Посмотреть сообщение
скорость с таким шагом оставляет желать лучшего
В мат пакете Mathematica 10 пользователь задает переделы значений переменных x,y для уравнения и разрешение сетки в которой ищется f(x,y). Наверно выводите отдельно по пикселю. Нужно создать массив разрешением как растр, посчитать в него изображение, вывести в итоге как картинку одной командой.

Цитата Сообщение от kazhroan Посмотреть сообщение
ищем при помощи локализации и уточнения корней сами корни
Рисование кривой это ведь аппроксимация, тогда почему не приравнять все уравнение нулю но для рисования приравнять некоторому малому интервалу возле нуля.
Если +a>f(x,y)>-a то пиксель черный иначе белый.
Если хотите скорости то нужно делать не на CPU а на GPU(видеокарте). На видеокарте есть шейдеры с распараллеливанием, вычислений. По идее там такой растровый алгоритм будет просто летать в HD.

Для сглаживания пикселей можно рисовать 3*3 разрешение больше нужного, посчитать все пиксели в таком массиве и сделать свертку ядром OGSS это 4 цикла for, два обходят пиксели, два считают ядро свертки.
https://ru.wikipedia.org/wiki/... глаживания
Может есть и готовое в Qt.

Цитата Сообщение от kazhroan Посмотреть сообщение
хотел бы иметь больше точек для построения не увеличивая при этом время ожидания пользователя,
В мат пакете Mathematica 10 есть вариант включения адаптивной рекурсии, это удвоение разрешения сетки точек возле областей где находиться кривая. Наверно если f(x,y) в вершинах прямоугольника меньше некоторого порога то прямоугольник разбивается на мелкие области детализируя кривую.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,350
10.02.2022, 06:27
например x^2+y^2 = 1
Можно привести к виду y = sqrt(1 - x*x)
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.02.2022, 12:29
Цитата Сообщение от alexu_007 Посмотреть сообщение
ривести к виду y = sqrt(1 - x*x)
Обычно в программах желательно всячески избегать корней, т.к. это комп считает намного медленней квадрата.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2022, 12:29

Как отрисовывать различные данные в окне?
Здравствуйте! не давно начал изучать WinApi! Создал окно-> нарисовал в нем прямоугольник с помощью функции Rectangle() 1/4 от окна. ...

Как отрисовывать каждый объект в новом потоке
У меня есть n объектов, которые надо отрисовывать 42 мс а picturebox. Вот вопрос как мне отрисовывать каждый объект в новом потоке. ...

Как отрисовывать PartialView используя unobtrusive AJAX
Имеется ActionLink, по которому вызывается контроллер, возвращающий PartialView, содержащую вызов Html.Raw. Как добавить AJAX, чтобы...

Как правильно отрисовывать фигуры в событии таймера
Во общем решил сделать отрисовку прямоугольника по таймеру ,ну так что бы по истечению 5 секунд прямоугольник менял свои размеры,но он не...

Как отрисовывать полигоны с разным количеством вершин в GLSL?
Если у меня полигоны с разным количеством верши (например треугольники, четырехугольники), то Как отрисовывать полигоны с разным...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru