|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
Динамическое изображение: астроида04.06.2019, 23:28. Показов 6117. Ответов 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
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 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
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 13.06.2019, 14:14 | |
|
"Закорючки", в частности, связаны с тем, о чем я писал выше. Как это решить, еще не знаю. Могу предположить, что, возможно, влияют значения на границе области определения функции, но не уверен.
Также на появление закорючек влияет строка 59 кода из поста 22 (я ее не зря закомментировал). И начинать график с самого края у меня тоже не получилось, хотя в итоге рисунок получается полный. Можешь глянуть значения параметров (строка 35 кода из поста 22) при построении определенных частей графика, если это вдруг наведет на какие-то мысли. P. S.: зеленую линию ты рисуешь не там. Она должна располагаться там, где движется центр отрезка.
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|||||||||||
| 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
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 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
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 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 | |
|
Помогаю со студенческими работами здесь
31
Кривая астроида Напишите программу, которая выводит динамическое изображение маятника, совершающего колебания
Opengl, Астроида (c++, delphi) График функции ”Астроида” Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|