Python - дополнительная форма шестерни
Я пытаюсь найти дополнительную вращающуюся форму "шестеренки" для любой входной формы многоугольника. Например, этот многоугольник вращается вокруг так, что дополнительная передача становится очевидной. Обе фигуры смогут вращаться без помех.
У меня проблемы с определением второго многоугольника, который является краем белой внутренней области. Один из методов, который я могу придумать, - это "выборка" входной формы по ее окружности и вращение, как раньше, для создания облака точек. Алгоритм вогнутой оболочки (альфа-форма) может быть использован для получения края.
Хотя это будет работать, я чувствую, что должно быть более элегантное решение этой проблемы.
Спасибо
Многоугольник и его повернутое изображение
2 ответа
Я понял. Решение состоит в том, чтобы отслеживать все вершины и специальные точки для каждого ребра. Затем внутренняя зубчатая форма может быть извлечена путем пересечения всех полученных кривых.
Точка контакта на краях - это точка на том крае, которая ближе всего расположена к центру мгновенного вращения шестерни, то есть точке соприкосновения двух базовых окружностей.
Я использую стройные, чтобы сделать пересечения.
Я попытался загрузить GIF, но это не сработало, поэтому вот ссылка:
Спасибо, ребята, я решил это. Решение состоит в том, чтобы отслеживать каждую вершину и точку контакта на каждом ребре. Точка контакта - это точка на краю, ближайшая к центру мгновенного вращения, то есть точка соприкосновения двух базовых кругов.
Затем я использую форму, чтобы найти пересечение всех полученных фигур, которые представляют внутреннюю шестерню.
Я попытался загрузить GIF, но это не работает, так что вот вместо этого: