|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
Динамическое изображение: астроида04.06.2019, 23:28. Показов 6119. Ответов 30
Метки нет (Все метки)
Здравствуйте. Я написал код для рисования графика астроиды. Может кто-то поможет дописать код, чтобы астроида рисовалась постепенно (зайдите на Википедию, страница "Астроида", справа есть gif-изображение). Нужно точно так же. Был бы очень благодарен, если для кого-то это пустяки, а то я даже примерно не представляю, как это сделать. Код графика прилагаю.
0
|
||||||
| 04.06.2019, 23:28 | |
|
Ответы с готовыми решениями:
30
динамическое изображение маятника
|
|
Модератор
|
||
| 05.06.2019, 06:38 | ||
|
0
|
||
|
Супер-модератор
|
||||||
| 05.06.2019, 11:44 | ||||||
Сообщение было отмечено Allekk как решение
Решение
Набирал прямо здесь, так что извиняй, если что не так - ошибки, если будут, поправишь...
2
|
||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 05.06.2019, 14:55 [ТС] | |
|
Спасибо огромнейшее тебе, очень помог, теперь буду разбираться и немного корректировать под свои нужды. Можно пару вопросов. Можно ли каждый раз менять размерность, а радиус R вводить самому в Edit? Какая переменная отвечает за радиус R? И можно ли сделать так, чтобы он рисовал не сразу при открытии формы, а при введении радиуса в Edit и нажатии на кнопку Button?
0
|
|
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
| 05.06.2019, 16:07 [ТС] | ||||||
|
volvo, а вы случайно не знаете, что нужно изменить здесь, чтобы он рисовал кардиоиду, циклоиду и конхоиду. До этого я пользовался параметрическими уравнениями прямо в коде и просто изменял их каждый раз, а тут не совсем понятна зависимость этих углов для построения фигур.
0
|
||||||
|
Супер-модератор
|
||
| 05.06.2019, 17:36 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 05.06.2019, 18:46 [ТС] | |
|
volvo, ну ладно, буду пробовать разбираться
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 08.06.2019, 10:40 | |
|
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 09.06.2019, 16:10 | ||||||
|
Кардиоида:
Конхоиду прямой [Никомеда] попробуй построить сам, используя параметрическое представление (http://know.sernam.ru/dict_math.php?id=518): Если же нужна конхоида окружности (улитка Паскаля - https://ru.wikipedia.org/wiki/... 0%BB%D1%8F), то она строится подобно кардиоиде (с некоторой поправкой).
1
|
||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 09.06.2019, 20:13 | ||||||
|
Гипоциклоида https://ru.wikipedia.org/wiki/... 0%B4%D0%B0 (при k = 4 получаем астроиду):
1
|
||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
| 10.06.2019, 20:48 [ТС] | ||||||
|
gunslinger, спасибо огромнейшее) Ну тут уж более понятней, тут по параметрическому уравнению строится) А то в прошлой программе надо полгода разбираться, а у меня нет ни времени, ни желания. Я уже плюнул и в GeoGebra сделал по туториалам с YouTube. Но сдать ещё не успел. Тем более конхоиду Никомеда я там не нашёл. Может попробую всё-таки в билдере сделать заново всё, теперь желание загорелось)
Добавлено через 2 часа 34 минуты gunslinger, я написал код системы координат. Вставляю код в таймер ниже вашего кода, тогда система координат моргает постоянно. Это логично, ведь там стоит Refresh() Но как сделать так, чтобы система координат не моргала и оставалась неподвижной, а таймер рисовал изображение как обычно. Чтобы даже внутри неподвижной окружности система координат была видна тоже и не моргала тоже. Куда нужно вставить мой код? Уже пробовал разные варианты. И в кнопку, по нажатию которой активируется таймер, вставлял. Но тогда она вообще не видна. И в FormPaint, и в FormActivate, и в FormCreate, тоже ничего. И до вашего кода и Refresh(), тоже толку ноль.
0
|
||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|||||||||||
| 10.06.2019, 21:26 | |||||||||||
|
Про моргания я в курсе (мой код лишь набросок). Чтобы это как-то минимизировать, перерисовывать нужно не всю получающуюся кривую, а просто добавлять точки на "незатираемой" канве того же PaintBox-а и перерисовывать радиус-вектор. А движущуюся окружность рисовать не на канве, а использовать объект Shape и двигать его.
Когда кривая начинает повторяться, обновлять (затирать) изображение (и потом рисовать его снова). Например, очищать можно так (для Image; для PaintBox аналогично):
Пример сетки:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 10.06.2019, 23:21 [ТС] | |
|
gunslinger, ещё у вас код циклоиды немного неправильный. Он не рисует циклоиду, а рисует прямую линию. Окружность не катится по прямой, а просто плывёт.
Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=1047193&stc= 1&d=1560192612
Добавлено через 1 час 30 минут gunslinger, отбой, это я тупанул, забыл Math.hpp подключить
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 10.06.2019, 23:24 | ||||||
|
Нормально там рисуется.
А насчет решения проблемы мерцания (только в конце точки затираются линией, нужно подумать, как исправить):
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|||||||||||
| 11.06.2019, 00:45 [ТС] | |||||||||||
|
Круто. Я ещё попробовал интервал увеличить. Немного помогло, почти не моргает.
А для эпициклоиды поможете пару значений поменять в коде в таймере. Сам код уже я подкорректировал уже. Вот он.
0
|
|||||||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|||||||||||
| 11.06.2019, 12:47 | |||||||||||
|
Ты все равно идешь своим путем... Как знаешь...
Тем не менее, подправил код, кардиоида не мерцает и рисуется полностью:
Нужно включить немного мозги. Достаточно понимания простейшей геометрии и тригонометрии. попробуй сам прийти к подобному коду
[Вангую] Следующим этапом тебе понадобится какая-нибудь [эпи] [гипо] трохоида? А потом еще что-нибудь? Я, конечно, люблю "всякую ерунду" с помощью билдера рисовать, но стараюсь (не всегда успешно, к сожалению) этим сильно не злоупотреблять (когда нет спортивного интереса, делать полностью за других мне уже не так сильно хочется, как раньше). А для твоей конхоиды, скорей всего, нужен другой поход. Насчет отрезка не знаю, еще по этому поводу не думал.
0
|
|||||||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 11.06.2019, 14:01 | |
|
В качестве примера: Построение конхоиды Никомеда по параметрическому представлению.
0
|
|
|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
|
| 11.06.2019, 19:01 [ТС] | |
|
gunslinger, нет, больше ничего не надо, к счастью. Всего 5 кривых надо. Спасибо большое ещё раз, вы мне очень помогли, я в принципе красиво оформил уже астроиду, кардиоиду и циклоиду, осталось только динамическое изображение эпициклоиды и конхоиды. Эпициклоиду сейчас я сделаю, осталась конхоида, надо её динамически как-то нарисовать.
P.S. Забавный факт, если делать одну программу (одно exe-приложение) с выбором кривой по кнопке на главной форме и переходом на другие формы, то астроида рисуется нормально, а вот кардиоида и циклоида не рисуются, а на форме происходит какая-то ерунда. Отрезки просто тянутся, кривые не рисуются. Но если делать отдельный проект для каждой кривой (для каждой кривой своё exe-приложение), то кривые рисуются нормально и как положено. Код везде абсолютно одинаковый, проверял несколько раз каждый символ в коде. Даже не знаю, с чем это может быть связано. Но я сделал разные приложения для каждой кривой, мне по сути не принципиально. Просто привык уже к первому варианту, а тут так получилось забавно. Хорошо, что додумался отдельно проверить, создав новый проект.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 11.06.2019, 20:22 | ||
|
0
|
||
| 11.06.2019, 20:22 | |
|
Помогаю со студенческими работами здесь
20
Кривая астроида Напишите программу, которая выводит динамическое изображение маятника, совершающего колебания
Opengl, Астроида (c++, delphi) График функции ”Астроида” Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|