Я планирую разделить объект Geometry на ряд более простых форм и объединить их центроиды по следующей формуле:
Mathematical details of this formula can be found in эта статья в Википедии .
ВНИМАНИЕ: Не удивляйтесь, если мой взгляд на математику неверен. После тригонометрии я не делал сложных математических операций, и мне никогда не приходилось иметь дело с греческими буквами. Я думаю, что понимаю это довольно хорошо, но, пожалуйста, просто дайте мне знать, если я ошибаюсь.
Информационная заметка : центроид геометрической формы или призмы - это не просто середина формы. Это центр тяжести или центр масс. Я предполагаю, что объекты Geometry могут также инкапсулировать 3D-призмы, поэтому мне, возможно, придется учесть это в будущем, но сейчас я сосредоточусь только на 2D-геометрии. Для 2D-фигуры вы должны представить, что это жесткий лист бумаги с заданной формой, а центроид будет точкой, в которой этот листок бумаги будет балансировать на игле.
Первая проблема, с которой я столкнулся, заключается в том, что мне нужно найти способ точного разбиения любого данного объекта Geometry на достаточно простые фигуры, чтобы эта формула могла работать правильно. У кого-нибудь есть идеи, как этого достичь? Или есть лучшая процедура, которая все еще будет работать универсально?
Вторая проблема, с которой я сталкиваюсь, заключается в том, что после разделения геометрии, как мне найти центроид каждой части? Каждый тип простой формы (треугольник, четырехугольник, полукруг и т. Д.) Имеет свою формулу центроида. Есть ли у меня способ выяснить, какой тип фигуры у каждого куска?