Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Движение прямоугольника по окружности  (Прочитано 55059 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« : 09-06-2011 09:38 » 

Дано: прямоугольник со сторонами a и b; окружность радиуса R. Необходимо вычислить центр прямоугольника (отрезок CA) для любого угла бета таким образом, чтобы прямоугольник всегда имел точку касания с окружностью. Те понятно, что это будет кусочная ф-я с горизонтальными и вертикальными участками длиной a и b соответственно. Понятно, что соединяются они дугами. А вот что это за дуги? Это дуги эллипса или окружности?


* ss1.gif (11.72 Кб - загружено 2647 раз.)
« Последнее редактирование: 09-06-2011 09:39 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 09-06-2011 11:38 » 

Цитата
Те понятно, что это будет кусочная ф-я с горизонтальными и вертикальными участками длиной a и b соответственно.
а мне не понятно, почему кусочная и что за вертикальные и горизонтальные участи. по-моему функция будет непрерывной и "ровных" участков на ней не будет - будут сплошные "дуги". мне почему-то так кажется.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 09-06-2011 11:40 » 

это не будет окружность
Окружность будет если ты будешь катать окружность.

а вот какая кривая будет? не более 4-го порядка Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #3 : 09-06-2011 11:44 » 

хотя без кусочности тут наверное не обойтись, а вот что за горизонтально/вертикальные участки - не пойму.

Добавлено через 54 секунды:
я понимаю, что будет не окружность, но откуда монотонные участки?
« Последнее редактирование: 09-06-2011 11:45 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 09-06-2011 11:49 » 

в случае скольжения АС будет увеличиваться от R+Высота/2 или R+Ширина/2 доR+диагональ/2
Кусочности (в смысле изломов) не будет.  Но сама функция будет кусочной
« Последнее редактирование: 09-06-2011 11:51 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #5 : 09-06-2011 11:51 » 

неравномерно,  и я вот никак не могу сообразить по какой дуге, скорее всего по дуге эллипса... только вот какого? Улыбаюсь

Добавлено через 45 секунд:
задать функцию без кусочности будет сложно, особенно при переходе через угол Улыбаюсь
« Последнее редактирование: 09-06-2011 11:51 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 09-06-2011 12:01 » 

Кривая скорей всего будет называться эвольвентой
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 09-06-2011 12:18 » 

Упростим... Достачно рассмотреть четверть окружности, остальные четверти - симметрично Улыбаюсь

На четверти нужно найти углы схода прямоугольника с уголка на точку на стороне. Они будут зависеть от a, b и их соотношения с R.

В начале и конце четверти прямоугольник касается серединой стороны.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 09-06-2011 12:23 » 

не бывает большей или меньшей половины, так же здесь нет и четвертей Улыбаюсь есть две пары +две пары +две пары +две пары
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #9 : 09-06-2011 12:30 » 

я так понял, до 90 градусов
сначала идет скольжение точки касания по стороне b (до поднятия А на высоту b/2), то есть А просто поднимается вверх - длина гипотенузы, потом точка касания с прямоугольника с окружностью будет угол - тут не понятно пока какая функция, но угол проходит по окружности от 0 до 90, ну а потом скольжение "влево" - таже длина гипотенузы
« Последнее редактирование: 09-06-2011 12:32 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 09-06-2011 12:41 » 

как мне кажется.... надо смотреть в сторону ПОДЕРЫ
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%B5%D1%80%D0%B0
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 09-06-2011 13:02 » 

Вот еще...
http://ru.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%B7%D1%8C%D0%B5%D1%80%D0%B0_%D0%90%D0%BD%D1%8C%D0%B5%D0%B7%D0%B8
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 09-06-2011 13:34 » 

у меня вот, что получилось

на левом рисунке движение плоскопараллельное, а значит, красная линия - это кусок дуги, "выдвинутый" вдоль радиус вектора окружности. На синем участке будет тоже кусок окружности, но с центром в середине маленькой окружности. Зелёная часть - похожая штука


* r.PNG (12.32 Кб - загружено 2363 раз.)
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 09-06-2011 13:37 » 

нет, гоню! Синий и зелёный участки - это не дуги окружности. Чтобы выяснить точно, надо уравнение составить )

Красные - тоже не дуги окружности, эхъ
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 09-06-2011 13:47 » 

Алексей1153++, красная не должна быт окружностью, даже если движение плоско-параллельное

максимальное удаление = Радиус+половина диагонали
удаление по ширине  Радиус+  (что-то * на синус)
удаление по высоте  Радиус+  (что-то * на косинус)

Улыбаюсь

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 09-06-2011 13:52 » 

Я бы разбил движение по окружности на такие фазы: касание стороной a, касание стороной b и переходные фазы с касанием углом (одна или две - пока не думал).

Фаза касания стороной a:
AC = sqrt((R + b/2)^2 + (a/2)^2)
при углах
B = (+-)atn((R + a/2) / b/2)

Фаза касания стороной b:
AC = sqrt((R + a/2)^2 + (b/2)^2)
при углах
B = (+-)atn((R + b/2) / a/2)

Могу путать тангенс и котангенс  Скромно так...

Все остальные углы - касание углом.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #16 : 09-06-2011 13:55 » 

вот с касанием углом самое интересное Улыбаюсь
все остальное просто длина гипотенузы.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 09-06-2011 13:56 » 

маньяк построил чертёж. Маньяк видит, что синяя и зелёная - это прямые линии )) Для красных надо уравнение


* r2.PNG (57.33 Кб - загружено 2270 раз.)
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #18 : 09-06-2011 13:58 » new

Алексей1153++, синие и зеленые участки у тебя по идее вообще должны быть прямыми. Прямоугольник просто упирается в окружность и просто двигается по горизонтали или вертикали - точка касания при этом не меняется : 0, 90, 180, 270

Добавлено через 25 секунд:
во, про это я и говорил Улыбаюсь
« Последнее редактирование: 09-06-2011 13:58 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #19 : 09-06-2011 13:59 » 

PooH, ага, я уже )
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #20 : 09-06-2011 14:01 » 

а красная похожа на эллипс, центры которого каким-то хитрым образом определяют значения a и b Улыбаюсь
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 09-06-2011 14:06 » 

для первого квадранта, красная линия:

x=R*cos(B)+a/2
y=R*sin(B)+b/2

Добавлено через 3 минуты и 41 секунду:
y= b/2 + (2x-a)/(2*tg(B))

Добавлено через 35 секунд:
эллипсом и не пахнет )
« Последнее редактирование: 09-06-2011 14:10 от Алексей1153 » Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 09-06-2011 14:14 » 

Это движение центра прямоугольника.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 09-06-2011 14:25 » 

ну да
Цитата
Необходимо вычислить центр прямоугольника (отрезок CA) для любого угла бета таким образом, чтобы прямоугольник всегда имел точку касания с окружностью.
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 09-06-2011 14:33 » 

ключевое слово: (отрезок CA)

надо все переводить в полярные координаты.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 09-06-2011 14:59 » 

всё, дошло ) Я всё неправильно вычислил.

Добавлено через 3 минуты и 40 секунд:
сейчас собразю.
« Последнее редактирование: 09-06-2011 15:03 от Алексей1153 » Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #26 : 09-06-2011 15:33 » 

Цитата
x=R*cos(B)+a/2
y=R*sin(B)+b/2
эллипсом и не пахнет )


чёт я в этом сомневаюсь, это у тебя, вроде как, окружность просто подвинутая, а там явно дуга, особенно заметно будет если a раза в 3 больше b
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 09-06-2011 16:28 » 

Слава, всё-таки ты неправ. Красная линия - точная копия четверти окружности, отодвинутая параллельно ей на (a/2,b/2)

Ну а зелёная и синяя, как уже все выяснили - это прямые

(-a/2, R+b/2) ... (+a/2, R+b/2),
(-a/2, -R-b/2) ... (+a/2, -R-b/2),
(R+a/2, +b/2) ... (R+a/2, -b/2),
(-R-a/2, +b/2) ... (-R-a/2, -b/2)
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #28 : 10-06-2011 05:46 » 

Цитата
точная копия четверти окружности,
а если b задать в несколько раза больше а ?
и как это может быть копия если угол проходит по дуге в 90 градусов, а центр прямоугольника меньший угол
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #29 : 10-06-2011 06:01 » 

PooH, от a и b кривая не зависит, она только смещена на эти величины. Угол уменьшился из-за того, что дуга отъехала от центра

 Построй сам, убедись Улыбаюсь



Добавлено через 1 минуту и 57 секунд:
Полудиагональ в угле прямоугольника, касающегося окружности, чертит копию дуги центром прямоугольника, а сама полудиагональ параллельно себе смещается. Как бы "сканирует" всю дугу
« Последнее редактирование: 10-06-2011 06:16 от Алексей1153++ » Записан

Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines