|
0 / 0 / 0
Регистрация: 04.06.2019
Сообщений: 16
|
||||||
Динамическое изображение: астроида04.06.2019, 23:28. Показов 6339. Ответов 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,026
|
||||||
| 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,026
|
|
| 13.06.2019, 14:14 | |
|
"Закорючки", в частности, связаны с тем, о чем я писал выше. Как это решить, еще не знаю. Могу предположить, что, возможно, влияют значения на границе области определения функции, но не уверен.
Также на появление закорючек влияет строка 59 кода из поста 22 (я ее не зря закомментировал). И начинать график с самого края у меня тоже не получилось, хотя в итоге рисунок получается полный. Можешь глянуть значения параметров (строка 35 кода из поста 22) при построении определенных частей графика, если это вдруг наведет на какие-то мысли. P. S.: зеленую линию ты рисуешь не там. Она должна располагаться там, где движется центр отрезка.
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,026
|
|||||||||||
| 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,026
|
|
| 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,026
|
||||||
| 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) График функции ”Астроида” Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|
22. Подключение слоя системной динамики (потоковые диффуры): экономические метрики модели
anaschu 17.06.2026
Апдейт модели: финансовый контур, разделение затрат
Продолжаю развивать модель рабочего коллектива на AnyLogic. В этот раз работа шла над агентом Экономика — финансовым SD-слоем модели. Задача:. . .
|