анон, помоги решить проблему. вот у меня есть 2 отрезка A1B1 и A2B2, координаты их конечных точек я 3465204 В конец треда | Веб
анон, помоги решить проблему. вот у меня есть 2 отрезка A1B1 и A2B2, координаты их конечных точек я знаю. эти 2 отрезка между собой всегда параллельны. все что я могу делать - это вращать вместе эти 2 отрезка вокруг точки О1. аналогично с отрезками C1D1 и C2D2, и точкой вращения O2. единственное отличие, сама точка O1 и соответственно прямые A1B1 и A2B2 могут вращаться вокруг другой оси O3.

задача: насколько возможно оптимальным способом сразу высчитать углы поворота для A1B1 A2B2 и для C1D1 C2D2 таким образом, чтобы ни один отрезок из A1B1 A2B2 не пересекал C1D1 C2D2. т.е. чтобы черные отрезки не пересекались с зелеными, а были между ними всегда, для этого надо как-то высчитать углы поворотов для двух компонент.

чтобы было более понятно, мне надо симулировать подобный механизм (пик 2 и 3). надеюсь понятно объяснил
1655247823308.gif1,9 Мб, 498x280
2 3465206
3 3465225
>>65204 (OP)
Ну так вращай A1B1 A2B2 как хочешь и проверяй на пересечение с C1D1 C2D2
4 3465227
единственное что приходит мне на ум. это вращать вокруг O3, пока не нарушится условие НЕ пересечения отрезков. затем вращать вокруг O1 черные отрезки на какой-то минимальный градус типа 0,01, проверять НЕ пересечение. тоже самое делать с другой компонентой, вращать вокруг О2, проверять. по сути это метод перебора, он не эффективен. и есть шанс что когда-нибудь этого шага градуса в 0,01 станет много, нужно будет делать его еще меньше, что приведет к еще большим рассчетам. короче это хуйня, но я другого пути не знаю
5 3465230
>>65225

>Ну так вращай A1B1 A2B2 как хочешь и проверяй на пересечение с C1D1 C2D2


Вращай A1B1 и проверяй на пересечение C1D1
фикс
6 3465232
>>65225
это будет как перебор, нужно будет городить кучу костылей, чтобы при случае чего сделать откат к какому-то углу и пробовать поворачивать зеленые отрезки. это будет как угадайка. не эффективно. вот я поэтому думал может можно как-то геометрически рассчитать эти углы поворота?

посмотри внимательно на видео, там не просто вращение происходит. этот длинный шток (A1B1 и A2B2) сначала как-бы идет вниз, а затем в какой-то момент начинает правый конец поднимать вверх, меняя наклон в противоположную сторону.
7 3465236
>>65232
еще добавлю. это поведение будет зависеть полностью от расположения осей O1 и O2. а я как раз потом и хочу менять эти оси, чтобы потом отсортировать результаты по длине хода (насколько глубоко А1B1 и A2B2 проходят внутрь отверстия, грани которого ограничиваются C1D1 и C2D2) и выбрать нужные, оптимальные для меня
17479273779960.jpg207 Кб, 640x640
8 3465240
>>65232

>геометрически рассчитать эти углы поворота


Так ты геометрически расчитываешь пересечение при повороте, ты же знаешь как найти пересечение двух векторов в 2d? Вооот. А забить все точки пересечения это хуета.
image.png22 Кб, 1170x423
9 3465260
>>65240
вот смотри. я повернул на 5 градусов. получилось перечение. с этого момента я должен вращать либо вокруг O1, либо вокруг O2, либо O1 и O2 вместе, подбирая углы так, чтобы выполнилось условие НЕ пересечения. допустим я начал вращать только вокруг O1 с каким-то шагом в левую сторону (т.к. пересечение произошло в нижнем отрезке). и вот я дрочу по 0,01 градусу, чтобы не проебать момент... потом бац: СРАЗУ ПЕРЕСЕЧЕНИЕ ВВЕРХУ, А ВНИЗУ ЕГО НЕТ. начинаю так же вращать уже зеленые отрезки вокруг О2. и все по новой. я могу либо попасть снова в такую ситуацию. и придется обратно вращат ьчерные отрезки вокруг О1 снова. короче, это все сводится к какой-то хуйне, где ты ловишь углы ОБЕИХ компонент так, чтобы выполнилось условие. это дроч. это костыли. это хуйня.

>Так ты геометрически расчитываешь пересечение при повороте, ты же знаешь как найти пересечение двух векторов в 2d?


ну я определил, что где-то у меня произошло пересечение. и что это дает мне? я должен все равно подбирать эти углы, потому что я не знаю уравнения по которому можно было бы сразу рассчитать эти углы
10 3465261
Доверни каждую из точек на pi/2 pi 3pi/2 2pi, это будут экстремумы координат. Дальше смотришь пересечение таких повёрнутых отрезков.
11 3465262
>>65261
точнее не на, а до
12 3465267
ладно, забей, я обосрался. Задача нерешаемая. Нужно дать настояться.
13 3465270
>>65261
можно поподробней? каких именно точек? всех черных и зеленых отрезков? относительно чего? своей оси вращения т.е. О1 и О2?

>pi/2 pi 3pi/2 2pi


что-то одно любое выбрать?

>это будут экстремумы координат


от куда такая уверенность? положение изначальное точек ведь может быть любым абсолютно. если я правильно вообще понял что ты подразумеваешь под экстремумами. я не совсем в общем понял твою идею.
14 3466752
в общем, сделал так:
провел зеленую линию от центра вращения до середины отверстия (перпендикулярно). от сюда горизонтально провел произвольную линию (красная). так же горизонтальную уже готовую линию (не стал новую рисовать), которая является самим штоком. и соединил центра узлов вращения двух деталей синей линией. все эти отрезки превратил в вектора, и относительно синей линии находил угол между векторами. это тот самый угол на который надо повернуть каждую деталь.

вроде похоже на то, что надо было, но заметил проблему - когда начинаю далеко вращать, синяя и красные линии начинают расходиться. в чем может быть проблема?
2025-06-01 00-05-10.mp43 Мб, mp4,
1920x1080, 0:19
15 3466762
>>66752
а все исправил. не обновлял другой конец синей линии
16 3467372
>>65204 (OP)
>>66762
Че у вас здесь происходит?
Это че за машина ебалка?
17 3469469
>>67372
это я хотел визуализировать расположение направляющей для штока с пружиной, чтобы оптимальное его расположение выявить для педалей игровых. там где красное - ход пружины максимален. черное - превышает. зеленое - минимальный. но у меня еще не дописано и тут ошибки есть и опущенные нюансы. позже исправлю
2025-06-08 00-48-39.mp44,4 Мб, mp4,
1920x1080, 0:34
18 3471937
>>69469
короче доделал. теперь норм все. на графике угол педали A(o) и сила пружины F(kg) при угле
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее