Итак, у меня есть массив полигонов, и мне нужно получить центр каждого из них, они все одинаковые многоугольники, расположенные в разных местах. Полигоны выглядят следующим образом
[[1100,173.2050807567],[1100,86.60254037829999],[1137.5,108.25317547289998],[1175,129.9038105675]]
Так что в настоящее время я делаю следующее
polygons.forEach((polygon) => {
const polygonX = getX(polygon);
const polygonY = getY(polygon);
const xmin = Math.min( ...polygonX );
const xmax = Math.max( ...polygonX );
const ymin = Math.min( ...polygonY );
const ymax = Math.max( ...polygonY );
const dx = (xmin+xmax) / 2;
const dy = (ymin+ymax) / 2;
, поэтому dx и dy дают мне центр. Однако я должен думать, что возможна матрица преобразования, если у меня есть центр первой, потому что все они имеют одинаковую форму, есть ли функция матрицы преобразования, которую я могу использовать, чтобы получить центр многоугольника [1], если я уже вычислил центр многоугольника [0]
, чтобы я мог сделать что-то вроде
const firstPolygon = polygons[0];
const polygonX = getX(firstPolygon);
const polygonY = getY(firstPolygon);
const xmin = Math.min( ...polygonX );
const xmax = Math.max( ...polygonX );
const ymin = Math.min( ...polygonY );
const ymax = Math.max( ...polygonY );
const dx = (xmin+xmax) / 2;
const dy = (ymin+ymax) / 2;
polygons.forEach((polygon) => {
const center = transformMatrixFunction([dx, dy], polygon);
Очевидно, что функция может быть структурирована, однако это желательно, приведенный выше просто глупый пример, в любом случае я Предположим, что первый параметр не будет [dx, dy], но где-то потребуются некоторые нули.