Немного о гиперболах

Добрый день. Не очень силен в математике, но интересует такой вопрос:


Как определить гиперболу, вписанную в определенный угол, например так:

или вот так:

интересует для произвольного угла, и вообще существует ли решение?

от чего будет в данном случае зависеть формула кривой, если известен угол наклона (диапазон 0-90 градусов к примеру).

Вопрос сугубо практический, делаю игру, и не пойму, как строить алгоритм в данном случае.

Лига математиков

960 постов2.5K подписчик

Вы смотрите срез комментариев. Показать все
4
Автор поста оценил этот комментарий

http://mathprofi.ru/giperbola_i_parabola.html
Берём формулу гиперболы, берём формулу её асимптот, через кручу-верчу-запутать-хочу тригонометрические функции высчитываем соотношение b/a, потом константой "натягиваем" до нужного графика. На каком этапе проблема?

раскрыть ветку (30)
Автор поста оценил этот комментарий

ну допустим угол наклона 60°

какие мои действия дальше?

раскрыть ветку (29)
3
Автор поста оценил этот комментарий

Наклона относительно чего? относительно оси абсцисс?
Школьная геометрия же.
y = tan(60deg)*x
y = sqrt(3)*x - формула одной из асимптот
при этом же, из формулы асимптот:
y = (b/a)*x
(b/a)*x = tan(60deg)*x
(b/a) = tan(60deg)
b/a = sqrt(3)
Дальше умножьте на нужную вам константу чтобы смасштабировать куда вам надо, подставьте в каноническое уравнение и рисуйте.
Какие проблемы?

Пример при a=1:
https://www.wolframalpha.com/input/?i=(x^2+/+1^2)+-+(y^2+/+sqrt(3)^2)+=+1

раскрыть ветку (28)
Автор поста оценил этот комментарий

спасибо, буду пробовать

Автор поста оценил этот комментарий

извините, не понял вторую строчку, откуда взялся корень из трех?

раскрыть ветку (26)
Автор поста оценил этот комментарий

а, сорян, тупанул

раскрыть ветку (25)
0
Автор поста оценил этот комментарий

Ну и да, если нужен угол между асимптотами - проще всего "располовинить" угол из расчётов выше, поделив на два.
т.е. tan(60deg/2) = tan(30deg), ну и дальше по тексту.
Тогда рисуется такое:
https://www.wolframalpha.com/input/?i=(x^2+/+sqrt(3)^2)+-+(y^2+/+1^2)+=+1

раскрыть ветку (24)
Автор поста оценил этот комментарий

я тут подумал, что может быть сильно все усложняю, и задачу можно решить проще?


суть предполагаемого алгоритма заключается в том, чтобы обеспечить сглаживание траектории при изменении направления, например, чтобы было

вместо аналогичной траектории но с ломанными отрезками?

Иллюстрация к комментарию
раскрыть ветку (23)
3
Автор поста оценил этот комментарий

Так а как тебе тут гиперболы помогут? При наличии ломаной с более чем двумя звеньями уже не получится гладкой кривой.

Сглаживание ломаных уже давно придумано, вот примеры. Советую изучить уже наработанную теорию, чтобы не изобретать велосипед.

https://ru.wikipedia.org/wiki/Кривая_Безье

https://en.wikipedia.org/wiki/B-spline

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

ок, спасибо, попробую копнуть в этом направлении

если совсем закапаюсь, придется какой-нибудь движок учить

0
Автор поста оценил этот комментарий

А траектория чего именно, вообще говоря, и почему с современными игровыми движками нужно прописывать такой "низкий" уровень, а не отдать на откуп, например, простой физике, с инерцией и всяким таким?

раскрыть ветку (20)
Автор поста оценил этот комментарий

хочу сделать вот такое:

https://vseigru.net/igry-zmejka/25998-igra-gulper-io.html

но не на готовом движке, а чисто программно, например на дельфи

раскрыть ветку (19)
0
Автор поста оценил этот комментарий

Имхо, мысль в первую минуту и явно может быть оптимизирована -
1) регистрируется вектор движения (скорость и направление) и все "точки" змейки.
2) направление вектора не может изменяться быстрее чем Х градусов/единица времени (фрейм, скорее всего).
Это же и обеспечивает закруглённость, т.е. если надо повернуть на 170 градусов, а можно не более чем на 10 за фрейм - то будет 17 фреймов на "поворот", где каждая точка будет смещена на длину сегмента и угол в 10 градусов в сторону точки назначения
3) "точки" змейки удаляются под хвостом и появляются перед мордой в процессе движения, при этом сами не двигаются (либо двигаются первые несколько, но это излишнее усложнение)

раскрыть ветку (18)
Автор поста оценил этот комментарий

тоже думал за временной лаг перед поворотом, но не знаю, будет ли достаточно этого для гладкости

раскрыть ветку (17)
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества