|
|
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Добрый день. Я совсем начинающий в JavaScript... Вот учусь.. Сделал простейшую анимацию - по canvas летает куча шариков и отскакивают от стенок. С этим справился А как отследить столкновения их между собой? типа столкнулись и разлетелись? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 12:17 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Если шариков дохрена, то тут датацентр отдельный нужен будет, чтобы рассчитать. :-))) Ну а так, как - отслеживать координаты, вычислять расстояния между центрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 12:26 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
А у меня их 20. Это дохрена?:) В общем, шарик - это объект. В массив запихиваются экземпляры этого объекта. Вылетают они по циклу, который перебирает массив, из одной точки (начальные координаты у всех одни), потом хаотично мечутся по экрану. Я понимаю, что надо сравнивать координаты. Могу узнать у конкретного ball[i]. А с чем сравнивать-то? И как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:22 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyА с чем сравнивать-то? И как? С другими шариками... А как я тебе ответил на другом форуме... На этом тебе ответил выше fkthat . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:50 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyА у меня их 20. Это дохрена?:) Зависит от быстродействия компа... Количество итераций из 20 по 2 https://www.matburo.ru/tvart_sub.php?p=calc_C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:54 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
krvsaКоличество итераций из 20 по 2 Код: javascript 1. Т.ч. довольно быстро будет проверять... Но проверять нужно после каждого "хода". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 13:59 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
С другими шариками. Понятно. Непонятно, как? Дайте идею. Мне не надо готовый код, подскажите хотя бы в общих чертах.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:04 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyНепонятно, как? Дайте идею. Мне не надо готовый код, подскажите хотя бы в общих чертах.. Обычный цикл в цикле... Дабы понять смысл любого алгоритма - упрости задачу. Например шаров всего 3 или 4. И погнал проверять пары 1 - 2 1 - 3 1 - 4 Потом 2 - 3 2 - 4 Далее 3 - 4 Понятен алгоритм? Или хотя бы идею ты понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:53 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Jimy , тебе сколько лет? Какое образование имеешь? Просто нужно знать с кем имеем дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 14:55 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Идею понял. Спасибо. лет много:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:01 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
лет много, поэтому и не догоняю:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:02 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
krvsa, А если три шара или больше сразу сталкиваются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:09 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
fkthatА если три шара или больше сразу сталкиваются? Да хоть все! Для алгоритма это без разницы... Например будет известно, что столкнулись шары: 1 - 3 2 - 4 3 - 4 Тут нет никакого криминала. Столкнулись и столкнулись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:54 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Jimyлет много, поэтому и не догоняю:) Ты уже пенс челе? Образование какое? Чем занимался до программирования? Ты не думай, что тут только мальчишки сидят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 15:55 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Нет не "пенс". Но почти. До программирования... Лес валил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2019, 16:32 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyДо программирования... Лес валил. Тогда игрушки будет писать ооочень проблематично... Там хватает математики и физики. Да и сами алгоритмы так же нужно уметь придумывать. Ведь после проверки на пересечение окружностей тебе придется рассчитать в какие стороны будут разлетаться те шары. А это будет посложнее чем проверить пересечения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 07:15 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Jimy , вот нашел тебе статейку на тему соударения шаров... ;) https://toster.ru/q/31059 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2019, 07:22 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Вот соорудил... Но отскакивают как-то криво... То один, то два, то вообще никак... Может, подскажите, что не так? (HTML файл не стал приводить, там один canvas черного фона и размерами 600 на 600.) Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 09:16 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Jimy, У тебя как-то слишком все просто. На бильярде ты, похоже, не играешь :) Когда у тебя два шара одинаковой массы сталкиваются, то тебе надо провести линию между их центрами. По направлению вдоль этой линии они "обмениваются" скоростями. По направлению перпендикулярному этой линии они свои скорости сохраняют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 09:37 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
fkthat, ты , по аналогии с бильярдом, ещё посоветуй учитывать кручение шара ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 09:41 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
А мне не надо ни массу, ни скорость. Мне просто проверить расстояние между ними и "развести" друг от друга. Без всякой физики. А вот как-то криво получается.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 09:56 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
Jimy , двойной цикл не правильно организован... Для проверки не нужно крутить циклы от начала и до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:00 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyА мне не надо ни массу, ни скорость. Мне просто проверить расстояние между ними и "развести" друг от друга. Без всякой физики. А вот как-то криво получается.... Что значит "развести"? "Шары, разойдись", что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:01 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
JimyМне просто проверить расстояние между ними и "развести" друг от друга. Без всякой физики. А вот как-то криво получается.... Без физики и геометрии будет, как раз, коряво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:06 |
|
||
|
Проверка столкновений одинаковых объектов
|
|||
|---|---|---|---|
|
#18+
"Развести" значит поменять направление движения на противоположное. Ну или любое другое, чтобы был эффект отскока. В любую сторону. А может, подскажите, как правильно организовать цикл для проверки? Что значит не до конца крутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2019, 10:17 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39877156&tid=1443633]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 148ms |

| 0 / 0 |
