Comments: |
Ну если исходники Box2D читать не влом, то там такая задача решается. Искать, разумеется, по слову "penetration".
| From: | ketmar |
Date: | January 9th, 2014 - 10:53 am |
---|
| | | (Link) |
|
да оно понятно, что решается. только это… корявый говноспособ у меня уже есть. если я начну читать бокс2д — у меня будет два корявых говноспособа.
и вообще, я бы эту задачу решил, если бы В ДОМЕ, БЛЯДЬ, БЫЛА СРАНАЯ РУЧКА! ну нет у меня пространственного воображения, пока не нарисую — не пойму. а xpaint — это пытка, я лучше киркорова буду петь.
всё ещё надеюсь, что кто-то придёт и организует мне халяву. ну должно же в новом году мне повезти?
Ну, feci, quod potui, faciant meliora potentes.
Если б я такие задачки умел решать…
| From: | ketmar |
Date: | January 9th, 2014 - 11:22 am |
---|
| | | (Link) |
|
ну всё равно спасибо за попытку, я даже не надеялся, что кто-нибудь хоть что-то по теме напишет.
Это Мише спасибо, я ж через его ленту всех вас читаю. =)
From: | (Anonymous) |
Date: | January 9th, 2014 - 11:13 am |
---|
| | | (Link) |
|
>киркорова буду петь Во, уважаю.
| From: | ketmar |
Date: | January 9th, 2014 - 11:21 am |
---|
| | | (Link) |
|
а в детстве я ещё и крестиком вышивал. нет, честно!
| From: | ketmar |
Date: | January 9th, 2014 - 10:54 am |
---|
| | | (Link) |
|
и, кажется, глядя на свою потрясающую артистизмом иллюстрацию, я внезапно получил +2 к интеллекту и артефактный меч ОЗАРЕНИЕ.
| From: | ketmar |
Date: | January 9th, 2014 - 12:17 pm |
---|
| | | (Link) |
|
спасибо, я знаю, как найти минимальное расстояние от точки до линии. вопрос был совсем-совсем не об этом. если бы мне нужно было просто выдвинуть кружок нахуй хоть куда-нибудь, тоже не было бы проблем. но его надо сдвинуть именно назад, и уже постфактум. правда, есть 100% гарантия того, что он не влез в прямоугольник полностью, и чётко задевает максимум два ребра.
From: | (Anonymous) |
Date: | January 9th, 2014 - 02:57 pm |
---|
| | | (Link) |
|
\ \|----- \ |\
пусть y=ax+b -- прямая, по которой центр круга ехал, и центр (сейчас) на ней лежил. те. y_Onow=ax_Onow+b пусть (0,0) -- координаты верхнего угла прямоугольника. ищем х0.у0 -- коодр центра круга.
b<0, -b/a > R ==> yO:=-R, xO :=(R-b)/a
b<0, -b/a < R ==> (1+aa)xxO+bb+2abxO=RR ==> x0:=sqrt((2ab)^2=4(1+aa)bb/(2(1+aa))
b>0, +b/a > R ==> xO:= R, yO :=aR+b
b>0, +b/a < R ==> (1+aa)xxO+bb+2abxO=RR ==> x0:=sqrt((2ab)^2=4(1+aa)bb/(2(1+aa))
Но это не все---нужно еще сделать аналогичные проверки для других углов прямоугольника.
| From: | ketmar |
Date: | January 9th, 2014 - 03:04 pm |
---|
| | | (Link) |
|
спасибо, я посплю и вникну.
а угол чётко один, чит такой. больше, чем на пол-шишечки круг не влезет, трэйсер не даст.
From: | (Anonymous) |
Date: | January 9th, 2014 - 06:59 pm |
---|
| | | (Link) |
|
там разбор трех вариантов: в искомом положении круг касается (1) вертикальной либо (3) горизонтальной стороны, либо (2,4) вершины. соотв нужно истать точку на прямой движения либо с коорд х или у равн радиусу, либо же на расстоянии радиус от вершины
| From: | ketmar |
Date: | January 10th, 2014 - 04:41 am |
---|
| | | (Link) |
|
шота я, блядь, нихуя не понял. похоже, придётся таки брать ручку, бумажку, и вспоминать всю эту ёбаную механику. а то бездумно с напрыгу реализовать не вышло.
кстати, тупое, медленное и лобовое решение — повернуть мир так, чтобы круг ехал точно по горизонтали (или вертикали, один хуй). %-)
From: | (Anonymous) |
Date: | January 9th, 2014 - 07:01 pm |
---|
| | | (Link) |
|
(1+aa)xxO+bb+2abxO=RR должно быть (1+aa)*x0*xO+b*b+2*a*b*xO=R*R
"Выдвинуть кружок" - решить задачу о касании стороны прямоугольника окружностью. Для этого в уравнение расстояния до прямой надо подставить сторону прямоугольника как прямую, радиус окружности как расстояние и точку, лежащую на прямой, по которой движется окружность. Второй вариант - касание окружности вершины прямогольника - там ещё проще.
| From: | ketmar |
Date: | January 10th, 2014 - 12:05 pm |
---|
| | | (Link) |
|
извини, туплю атомно просто. пятнадцать лет почти ничего этого не трогал, мозги заржавели, думать лень. к тому же мне чтобы подумать — надо нарисовать, а я в доме сраной ручки найти не могу, гыг. а на технике, увы, рисовать такие штуки мне неудобно ужасно.
ну ладно, халява не прокатила. я таки думал — вдруг прочитерить выйдет, даст кто-нибудь копипасты сишной. ну да ладно, всё равно никогда не любил пасту, которую не понимаю. возьму ручку и бумажку и докажу себе, что я почти не хуже школоты, гыг.
From: | (Anonymous) |
Date: | January 10th, 2014 - 01:13 pm |
---|
| | | (Link) |
|
Сначала думал использовать мощь геометрии за восьмой класс (ну там, все углы прямоугольного треугольника известны, катет - радиус тоже, найти гипотенузу элементарно) но потом подумал еще: ведь окружность должна быть строго на расстоянии радиуса. То есть все возможные радиусы окружности образуют квадрат со скругленными краями вокруг квадрата! Найти уравнения отрезков этого скругленного квадрата очень просто, а затем можно найти координаты точки пересечения вектора с этими отрезками
From: | (Anonymous) |
Date: | January 10th, 2014 - 01:38 pm |
---|
| | | (Link) |
|
короче, сначала пишем функцию, которая берет квадрат, обрисовывает вокруг него скругленный квадрат со сторонами, удаленными от него на расстояние радиуса окружности. потом пишем функцию, которая берет этот новый квадрат и вектор и возвращает координаты точки пересечения вектора и этого квадрата, это и будет искомая точка радиуса окружности, если я не тупанул конечно
Искренне сочувствую. Сам неоднократно попадал в такие ситуации, когда математика вдруг нужна, а не лезет совершенно. С аспирантуры математику не трогал, ну и она меня... А вообще у нас ведь тут есть несколько математиков, почему бы и не попросить их.
| From: | ketmar |
Date: | January 11th, 2014 - 01:52 am |
---|
| | | (Link) |
|
>А вообще у нас ведь тут есть несколько математиков, почему бы и не попросить их. да стыдно как-то. это как к Чаку Норрису приходить с просьбой соседского хулигана Сёмку поколотить.
Ну вообще древние вон не гнушались целые трактаты по элементарной геометрии писать. Чего тут постыдного. Стыдно мне сейчас, например, из-за того, что гляжу на твой пример и понимаю, что настолько всё забыл. Завтра посмотрю на свежую голову, может даже код напишу для примера.Авось выйдет нормальное решение.
| From: | ketmar |
Date: | January 11th, 2014 - 04:05 am |
---|
| | | (Link) |
|
да и мне стыдно — я классе в девятом-одиннадцатом такие задачи и за задачи не считал. а ещё сраная прокрастинация: вместо действительно взять ручку, листок и немного теории, убеждаю себя, что я устал-и-хочу-спать/ещё-не-проснулся/ну-вот-ещё-чуть-чуть-и-начну/…
| From: | ketmar |
Date: | January 13th, 2014 - 04:54 pm |
---|
| | | (Link) |
|
дык в прошлом посте писал. всегда чётко axis-aligned, вариантов не бывает.
| From: | ketmar |
Date: | January 13th, 2014 - 04:55 pm |
---|
| | | (Link) |
|
а, бля. в этом посте. писал. или не писал. %-) | |