Щоб трохи узагальнити, я трохи реформую це питання.
llRc
cl
ABABlABA
AB
Дозволено розвороти
ABBAlBAABB
Ніяких розворотів немає
ABc
Ви залишаєтесь у контакті зі стіною.
Коли ви підходите до стіни і бачите, що ви збираєтесь її очистити, а не продовжуючи повертати, ви можете поступово збільшувати радіус повороту, щоб залишатися в контакті зі стіною. Залишатися в контакті зі стіною означає, що лінія між точкою контакту та центром обертання перпендикулярна стіні.
З цього можна отримати положення центру обертання, перебуваючи при мінімальній радіусі повороту повороту.
Drear=Orear2+(Rmin+W)2−−−−−−−−−−−−−−−−−√
Dfront=(Ofront+WB)2+(Rmin+W)2−−−−−−−−−−−−−−−−−−−−−−−−−√
Ця точка повністю визначає найцікавішу частину повороту, що дозволяє побачити, чи не вдариться якась перешкода з іншого боку. Очистити:
(Drear−b)2+(Dfront−a)2−−−−−−−−−−−−−−−−−−−−−−√≤Rmin
Зауважте, що це має значення, якщо ви рухаєтесь вперед чи назад. Щоб побачити, чи ви очистили б обидва напрямки, вам доведеться протестувати з оберненим a і b.
a=5.9mb=3.3mab
W
C(a,b)
C(a,b)=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪(Drear−b)2+(Dfront−a)2−−−−−−−−−−−−−−−−−−−−−−√≤RminW+Wreare(acheck−a)Orear(Rmin+W)Wrear≤bW+Wfronte(bcheck−b)(Ofront+WB)(Rmin+W)Wfront≤atrue if a≤acheck and b≤bcheck if a>acheck and b≤bcheck if a≤acheck and b>bcheck if a>acheck and b>bcheck
Де:
acheck=Dfront−OrearRminDrear
bcheck=Drear−(Ofront+WB)RminDfront
Wfront=Dfront−(Rmin+W)RminDrear−W
Wrear=Drear−(Rmin+W)RminDfront−W
Rminab
Rmina≥acheckRmin
Глосарій
- W
- WB
- Ofront/rear
- Rmin
- a
- b
Підключення
Rmin6.6m
Але вам, можливо, доведеться скласти потрібне дзеркало.