я планирую иметь, чтобы разделить объект Geometry в ряд более простых форм, и объединить их центроиды, используя эту формулу:
Математические детали этой формулы можно найти в this Wikipedia article.Как создать алгоритм для центра тяжести любого объекта System.Windows.Media.Geometry?
УВЕДОМЛЕНИЕ: Не удивляйтесь, если мой взгляд на математику неверен. Я не делал сложной математики мимо тригонометрии, и мне никогда не приходилось иметь дело с греческими буквами. Я думаю, я понимаю это довольно хорошо, но, пожалуйста, просто дайте мне знать, если я ошибаюсь.
Информационная записка: центроид геометрической формы или призмы - это не только середина формы. Это центр тяжести или центр масс. Я предполагаю, что объекты Geometry могут также инкапсулировать 3D-призмы, поэтому мне, возможно, придется принять это во внимание в будущем, но на данный момент я фокусируюсь только на 2D-геометриях. Для 2D-формы вы должны представить, что это жесткий лист бумаги с заданной формой, а центроид будет точкой, в которой этот лист бумаги будет балансировать на игле.
Первая проблема, с которой я столкнулся, заключается в том, что мне нужно найти способ точно разбить любой объект Geometry на достаточно простые формы, чтобы эта формула могла работать правильно. Есть ли у кого-нибудь идеи, как это может быть достигнуто? Или есть лучшая процедура, которая все равно будет работать повсеместно?
Вторая проблема, с которой я столкнулся, заключается в том, что после того, как геометрия разделена, как мне найти центр тяжести каждой части? Каждый тип простой формы (треугольник, четырехугольник, полукруг и т. Д.) Имеет свою собственную формулу центроида. Есть ли способ для меня определить, какой тип каждой фигуры?
Нет универсальной формулы, только для конкретной формы. –
Спасибо, Лэнс. Я отредактирую эту часть. – Giffyguy
Ваш взгляд на математику верен. – duffymo