
@CriOnsKry
17.09.2016
20:48:15

Stanislav
17.09.2016
21:05:06

Rocket
17.09.2016
21:09:08
Вот, нашел: https://m.habrahabr.ru/post/271435/

Stanislav
17.09.2016
21:11:36

Google

Whore Amazing
18.09.2016
08:08:38
ребят, вот как бы вы реализовали алгоритм хаотичного движения круга внутри круга? чтобы он об стенку ударился и полетел в другом направлении. При заданном изначально направлении нет проблем, вот он летит в одну сторону, координаты каждый раз прибавляются статические. долетел до края, ударился, надо выбрать новое направление. как? чтобы оно не вело за пределы круга. я пытался шаманить с четвертями координатной плоскости, но чет почертил на листочке возможные графики и не уверен, получится ли как надо.

fox.hs
18.09.2016
08:09:48
То есть он ударяется и должен отскочить на случайный угол?

Whore Amazing
18.09.2016
08:10:15
Угу. Но в пределах круга, ясное дело.

b0g3r
18.09.2016
08:17:49
Хм
А провести касательную к внешнему кругу в месте удара и взять угол в этой части?
Т.е. "ниже" круга

Whore Amazing
18.09.2016
08:19:06
Не понимаю вообще как с углами работать.

b0g3r
18.09.2016
08:20:21
Не очень в этом всем секу, но я бы почитал книжки про компьютерную графику

Whore Amazing
18.09.2016
08:20:42
как-то сложновато выходит, еще и графику тянуть...

b0g3r
18.09.2016
08:20:58
Ой
Компьютерную геометрию
Чет спросонья слова путаю)
А откуда ты углы считаешь?

Google

Whore Amazing
18.09.2016
08:22:24
В том и дело, я вообще черт знает не то что откуда, а как их считать
в т.н. компьютерной геометрии все больше по 3д, никаких углов не увидел

fox.hs
18.09.2016
08:23:47
Там угол зависит от радиусов обеих окружностей, скорее всего

Whore Amazing
18.09.2016
08:24:17
Точно, учитывать же еще и радиус внутренней
Но все равно непонятно как это реализовывается, как углы переводить в координаты

fox.hs
18.09.2016
08:26:12
Ну и сложную же задачку вы задали
:D

Whore Amazing
18.09.2016
08:26:20
сам в шоке :D

fox.hs
18.09.2016
08:27:00
До какого момента вопрос актуален будет? Я бы сейчас сделал пару набросков чертежей, но я школьник, и у меня много домашнего задания по литературе

Whore Amazing
18.09.2016
08:28:12
да он вообще не очень важный, это я так от недостатка кодерского вдохновения решил набросать веселенькую фигню
попробуй набросать, пиши в любое время, только в лс, чтобы не потерять

fox.hs
18.09.2016
08:29:07
Хорошо

Subbotin
18.09.2016
08:41:24
Назодишт точку соударения. Берёшь в ней касательную. Смотришь угол к касательной. Потом делаешь что угол падения равен углу отражения.
Школьная математика.

Rocket
18.09.2016
08:42:38
Надо добавлять немножко рандома

Subbotin
18.09.2016
08:44:00
Один маршрут. Только он может быть очень длинным
А если угол иррациональный то вроде как ещё и бесконечный
Но не уверен

Rocket
18.09.2016
08:45:20
Оно ж в любом случае округляется с точностью до пикселя
Так что там не сильно много вариантов

Google

Whore Amazing
18.09.2016
08:46:13
Школьную математику-то я знаю. Я не знаю, как угол переводить в координаты.

Subbotin
18.09.2016
08:46:36
64битная точность, бессердечая ты сука

arisu
18.09.2016
08:47:28
косинус и синус

Subbotin
18.09.2016
08:47:33
В школе перестали проходить синусы и косинусы

arisu
18.09.2016
08:47:34
единичный вектро
рили?

Fox.rs
18.09.2016
08:49:24
Тангенс угла это производная а из нее можно найти уравнение касательной и подставить в него нужную точку
Это же просто
Я ясно обьяснил ?

Whore Amazing
18.09.2016
09:39:01
Нет :с

Roman
18.09.2016
09:43:54

fox.hs
18.09.2016
09:47:31

Kolyann
18.09.2016
09:49:02
(красное - вектор линия движения до столкновения, синее - касательная и перпендикуляры, зелёное - вектор движения после столкновения, голубое - угол падения = углу отражения)
я правда не совсем понимаю, как быстро посчитать угол касательной при ударе

Ilia
18.09.2016
09:51:18
Должна быть информация о векторе движения
Ох ну тут зеленый нижний луч это вектор движения от касательной, верхний зеленый это тот же вектор но построенный из центра окружности

Whore Amazing
18.09.2016
09:53:57
да как углы то делать
в pyqt

Google

Ilia
18.09.2016
09:54:27
Если есть вектор движения, его координаты, то значит можно найти и угол между ним и любым другим вектором

Whore Amazing
18.09.2016
09:54:56
как?

Ilia
18.09.2016
09:54:58
Как в pyqt не знаю, но думаю что можно

Whore Amazing
18.09.2016
09:55:08
как там ващще векторы считать

Admin
ERROR: S client not available

Whore Amazing
18.09.2016
09:55:14
наверное я слишком глуп

Ilia
18.09.2016
09:55:23
Надо гуглить формулы
Есть разные способы в зависимости от того как у нас представлены векторы

Whore Amazing
18.09.2016
09:56:08
ну ладно я возьму пиксель за единицу
посчитаю вектор
а угол...

Ilia
18.09.2016
09:57:18
Если есть длины проекций на x и y, то значит у нас есть катеты
Считаем по теореме Пифагора гипотенузу
Находим синус из отношения
Или даже тангенс лол

Whore Amazing
18.09.2016
09:57:53
а касательную как считать?
я как бы по ходу не имею доступа совсем наружу

Ilia
18.09.2016
09:57:57
Без подсчета гипотенузы

Whore Amazing
18.09.2016
09:58:04
в наружу внешнего круга

Ilia
18.09.2016
09:58:24
Ммм вот для касательной не помню
Но точно есть формула как найти вектор перпендикулярный данному

Whore Amazing
18.09.2016
09:59:16
а, вот это было б неплохо

Google

Whore Amazing
18.09.2016
09:59:22
буду гуглить

Ilia
18.09.2016
09:59:28
Данный в нашем случае это радиус окружности к той точке где её пересекает вектор направления

Whore Amazing
18.09.2016
09:59:58
эммм...
сейчас, соображу

Ilia
18.09.2016
10:00:15
Ну нам же касательная нужна

Whore Amazing
18.09.2016
10:00:20
мне ж нужно не угол равный углу падения а случайный

Ilia
18.09.2016
10:00:30
А она перпендикулярна радиусу
А, хм
Так может возьмешь рандомный, методом тыка подберешь диапазон

Kolyann
18.09.2016
10:01:34
углы движения это tan2 вроде как

Whore Amazing
18.09.2016
10:01:46
две касательные дополнительно надо считать
и как-то считать рандомный угол
или строго по касательной
а мне этого не надо бы

Ilia
18.09.2016
10:03:15
А, допустимый диапазон углов то есть разный будет в зависимости от точки столкновения

Whore Amazing
18.09.2016
10:03:25
да