|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
Динамическое изображение: астроида04.06.2019, 23:28. Показов 6694. Ответов 30
Метки нет (Все метки)
Здравствуйте. Я написал код для рисования графика астроиды. Может кто-то поможет дописать код, чтобы астроида рисовалась постепенно (зайдите на Википедию, страница "Астроида", справа есть gif-изображение). Нужно точно так же. Был бы очень благодарен, если для кого-то это пустяки, а то я даже примерно не представляю, как это сделать. Код графика прилагаю.
0
|
||||||
| 04.06.2019, 23:28 | |
|
Ответы с готовыми решениями:
30
динамическое изображение маятника
|
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|||||||||
| 11.06.2019, 22:18 [ТС] | |||||||||
|
gunslinger,
0
|
|||||||||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
||||||
| 12.06.2019, 18:33 | ||||||
|
Я в курсе, как конхоида строится. Имелся в виду способ реализации.
Вознаграждение получают во фрилансе либо за какие-то дополнительные услуги. Так что в данной ситуации ничего не надо. Тем более, раз ты любишь готовое, приготовил пару сюрпризов. Ниже в коде построения конхоиды я заменил несколько мест знаками вопроса. Тебе нужно понять, на что их нужно заменить, чтобы код работал. Подсказка: обрати внимание на свойства конхоиды. И при рисовании части графика (отмечено стрелками) отрезок располагается в противоположном (по двум осям) относительно своего правильного положения месте. Это я пока не знаю, как исправить. Так что сам подумай, в чем может быть причина.
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 13.06.2019, 13:44 [ТС] | |
|
gunslinger, ого, вы просто чудесный человек. Я уже не надеялся даже, что кто-нибудь мне нарисует, и хотел попросить, чтобы мне разрешили реализовать другую кривую вместо конхоиды, ту же гипоциклоиду, например. Это точно последняя кривая.
Всё получилось у меня как надо, только есть пара нюансов. На рисунке я показал, где у меня точка старта. Так вот, отрезок начинает рисовать кривую с этой точки, уходит влево, выходит справа, уходит вниз и рисует какие-то закарючки, потом снова уходит влево, потом всё-таки справа выходит и возвращается к точке старта. В общем проходит несколько циклов подряд. В идеале я хотел, чтобы он справа выходил, проходил всего один цикл, то есть рисовал кривую за один цикл, уходил влево, а потом канва обнулялась. Без всяких уходов вниз и закарючек. В вашем случае он должен слева выходить и вправо уходить, у меня немного другая система координат просто, но в целом то же самое. Логично предположить, что раз проблема в цикле, то нужно мне что-то изменить в коде, где цикл "for". Пробовал методом тыка менять start angle, координаты, прочие углы, но безуспешно. Около часа пытался разобраться, но пока не смог. Хотелось бы спросить, я иду в правильном направлении вообще?
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
|
| 13.06.2019, 14:14 | |
|
"Закорючки", в частности, связаны с тем, о чем я писал выше. Как это решить, еще не знаю. Могу предположить, что, возможно, влияют значения на границе области определения функции, но не уверен.
Также на появление закорючек влияет строка 59 кода из поста 22 (я ее не зря закомментировал). И начинать график с самого края у меня тоже не получилось, хотя в итоге рисунок получается полный. Можешь глянуть значения параметров (строка 35 кода из поста 22) при построении определенных частей графика, если это вдруг наведет на какие-то мысли. P. S.: зеленую линию ты рисуешь не там. Она должна располагаться там, где движется центр отрезка.
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
|||||||||||
| 13.06.2019, 16:38 | |||||||||||
|
Решил сделать в качестве бонуса (чтобы добить, так сказать, тему) гипо- и эпитрохоиду (со вторым пришлось немного повозиться) как наиболее общие варианты подобных кривых (частный случай - обычную трохоиду как обобщение простой циклоиды - не рассматриваем).
Есть возможность задавать параметры в окне программы (в том числе "на лету"). Клик левой кнопкой мыши (ЛКМ) по области, где рисуется график, либо паузит, либо продолжает выполнение анимации. Дополнительно определяется наибольший общий делитель (НОД) [алгоритм Евклида] для R и r, чтобы рисовать все минимально необходимые обороты движущейся окружности (плюс 1 оборот после завершения отрисовки, чтобы успеть полностью увидеть весь график, а не сразу резко начинать рисовать сначала). гипотрохоида (код + картинки)
эпитрохоида (код + картинки)
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 13.06.2019, 17:09 [ТС] | |
|
gunslinger, скорее всего область определения функции. В интернете написано, что у конхоиды t принадлежит промежутку (-pi/2, pi/2) — правая ветвь, (pi/2, 3*pi/2) — левая ветвь. У вас указаны значения только для правой (верхней) ветви, как я понял.
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
|
| 13.06.2019, 17:58 | |
|
Левая (нижняя) ветвь тоже рисуется. Пробегаются все значения диапазона. Только рисуется как-то странно. В этом вся проблема. Нужно смотреть, как и почему именно так ведет себя график в момент приближения к асимптотам pi/2 и 3pi/2 (=-pi/2).
0
|
|
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 13.06.2019, 18:00 [ТС] | |
|
gunslinger, да, я тоже понял уже, что проблема в радианах. Надо разобраться, как бы исключить ненужные радианы и оставить только нужные.
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
||||||
| 13.06.2019, 22:10 | ||||||
|
Дело было в угле наклона (angle) отрезка. Либо изначально криво сделал, либо что-то не до конца понял.
Пришлось делать (по сути, костыльный) "холостой ход" примерно на pi/2 (или меньше, например, на pi/4) в обе стороны, чтобы угол стал принимать "правильные" значения (при более коротком сдвиге на pi/10 уже не все рисуется). Строку 29 можно убрать / закомментировать. Нужна изначально для тестирования кода, а не для рисования.
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 13.06.2019, 22:36 [ТС] | |
|
gunslinger, при запуске вылетает несколько окошек с ошибкой "Invalid floating point operation" (недопустимая операция с плавающей запятой). Странно. Сейчас разбираюсь. У вас нормально запустилось?
0
|
|
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 14.06.2019, 22:49 [ТС] | |
|
gunslinger, попробовал на другом компьютере в билдере, там заработало. Чертовщина какая-то. Там была старая версия, а у меня самая свежая. Походу работоспособность кода ещё и зависит от версии билдера, и абсолютно один и тот же код не гарантирует корректную работу на всех версиях билдера. У меня уже не первый раз такое, поэтому и решил проверить. Спасибо за проделанную работу для меня, а то тригонометрия мне тяжеловато даётся, как вы уже поняли, хотя само программирование мне нравится. Теперь я сделал приложения для абсолютно всех нужных кривых, подрисовал систему координат и сделал ввод параметров вручную и красивую оболочку, могу вздохнуть с облегчением. Теперь тему можно считать закрытой.
0
|
|
| 14.06.2019, 22:49 | |
|
Кривая астроида Напишите программу, которая выводит динамическое изображение маятника, совершающего колебания
Opengl, Астроида (c++, delphi) График функции ”Астроида” Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|