|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
||||||
График параметрической функции (C++)21.01.2019, 18:30. Показов 18561. Ответов 29
Всем привет!
На C++ SFML написал код программы, позволяющей строить графики функций вида y = f(x) и параметрически заданных x = f1(t), y = f2(t). Однако функции параметрические программа строит кривовато (см. скрин). Помогите скорректировать код, чтобы норм. строились функции. Такое ощущение, что дело в угле ang. Принцип построения графиков: ищем точки графика по функции, эти точки соединяем прямоугольниками, которые играют роль линий. У прямоугольника задаём ширину (const), длину (по теореме Пифагора между соседними точками), координаты истока (леволежащая точка) и угол от горизонтали. У меня подозрение на угол, но это не точно. Спасибо тем, кто поможет!
0
|
||||||
| 21.01.2019, 18:30 | |
|
Ответы с готовыми решениями:
29
График параметрической функции График параметрической функции в Scilab Построить график параметрической функции |
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|||
| 23.01.2019, 21:51 | |||
|
“Окружность также можно описать с помощью параметрического уравнения:” https://ru.wikipedia.org/wiki/Окружность задаете x0,y0,R, количество точек. Находите шаг угла в радианах и в цикле получаете массив. Обычно строят окружность R=1 в начале координат, так проще видно косяки.
0
|
|||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
||
| 24.01.2019, 09:34 [ТС] | ||
|
У меня было: (Терминалы параметра: от 0 до 12) + (Крупный шаг) Крупный шаг - это для отладки, чтобы лучше было как линии прочерчены. Потом я изменил интервал параметров на правильный, стал уменьшать шаг => увеличилось число точек, окружность стала смыкаться (с уменьшением шага). Нужно: (Терминалы параметра: от 0 до 2 * pi) + (Мелкий шаг) Сейчас наделаю и выложу скринов, на которых можно проследить описанную градацию. А почему он строил несомкнутыми линиями, как будь то штрихами, я про то что на скрине самого вопроса. Потому что я для поиска угла разворота линий, интерполирующих набор точек, использовал asin() вместо atan2(). После замены на atan2() с передачей необходимых аргументов - стало всё отлично строить и обычные и функции заданные параметрически. Я также реализовывал светофильтры, фракталы год назад на C++ SFML. Так вод, часть фракталов также вместо замкнутых линий они штрихами прочерчивались (например, фрактал "Дракон"). Там я использовал как обычно asin(), а он в некоторых случаях угол возвращает такой, что приводит к неверному прочерчиванию линий (без замыкания цепочкой). Если у меня возникнет желание, я там тоже asin() заменю на atan2().
0
|
||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 24.01.2019, 09:35 [ТС] | |
|
Ещё скрины.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||
| 24.01.2019, 15:22 | ||||
|
Шаг радиан=2 пи/ кол-во точек Настоящий атан2 возвращает угол от 0 до пи, а знак укажет выше горизонтали OX или ниже. Во всем мире угол считают против часовой в радианах. Правильно под такие углы со знаком затачивать все алгоритмы т.к. нет бреда типа вычитание Пи это замедляющий костыль. Но SFML лучше! Они похоже считают зачем-то по часовой, во вторых зачем-то в градусах, и от 0 до 360. Сразу 3 косяка. Добавлено через 4 минуты В итоге на ПУСТОМ окне с одним слайдером с кода сделанного из примера по книге FPS плавал в 4 раза + фризы GUI. Переделал код по своему FPS стали стабильны. Похоже эти “Эксперты” читают мышку например 500 раз в сек… Стер Qt к черту
0
|
||||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
||||||||||||||||
| 25.01.2019, 14:55 [ТС] | ||||||||||||||||
t_min = 0; t_max = 2 * pi; step = 0.05; Потом идёт подготовка данных к отрисовке.
0
|
||||||||||||||||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 25.01.2019, 14:57 [ТС] | |
|
Скрин.
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|
| 25.01.2019, 15:09 [ТС] | |
|
Я ещё добавил, можно в полярных координатах строить. Там клевер на скрине.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||
| 25.01.2019, 16:06 | ||||
|
Нужно задать количество из сколько точек строить ломанную, зная пределы параметров находим какой шаг в радиан нужно брать step вычисляют а не задают…что тут сложного? Судя по этому там обязаны быть просто сотни грубейших алгоритмических ошибок самих создателей этой Qt, раз очевидные вещи сделаны криво. Это как дети которые ставят в конфиге игры 999 FPS при максимальных 60 FPS монитора. Поэтому люди и ругают его за лаги GUI. Если не пашет правильно даже жалкий слайдер на пустом окне, о какой скорости работы говорить и зачем терзать это лаговое чудо? Вон у меня в профиле 6 тем на Qt 4.8 предельная версия что пашет. Просил примеры от гуру но ничего =). Хотел рисовать фракталы \ странные аттракторы и любую графику но так и остался на месте…а потом бросил. Нарисовать, двигать, сохранить линию Qt 4.8.4
0
|
||||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,407
|
|||||||
| 25.01.2019, 17:53 [ТС] | |||||||
0
|
|||||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 25.01.2019, 18:49 | ||
|
А зачем эти велики вообще?
Разве нет готового рисователя кривых\графиков +адаптивное сглаживание + приличный и самый быстрый код умных дядей. Помню написал велик одной функции над массивом понятный мне велик…так человек с форума заюзал какую-то готовую функцию…а там наверно вставки из ассемблера. В общем готовая в 3 раза по скорости была быстрей…недаром хают велики.
0
|
||
| 25.01.2019, 18:49 | |
|
График функции в параметрической форме Как построить график параметрической функции
Написать программу, которая строит график параметрической функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Скрипты 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, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|