Estoy tratando de rotar 2 polígonos al mismo tiempo a 180 ° en un svg, estoy usando la biblioteca svg.js ahora mismo para hacer esto.
Lo intenté simplemente girándolo, pero por supuesto giran en su propio centro para que no se trasladen a la otra posición, así que por ahora estoy tratando de crear una fórmula para hacer esto, pero decidí preguntar aquí si ver si me perdí algo, ¿es posible fusionar 2 polígonos y luego rotarlos por su propio centro?
Agregué 2 imágenes, la primera es cómo se ve el svg y la segunda es lo que quiero lograr.
también agregué el código para crear los dos polígonos en svg.js si quieres probarlo.
const draw = svg.SVG().addTo('body').size(300, 300); let arrayPlanoAux = new svg.PointArray([[0, 0], [-1.7100368367682677, 23.146833626087755], [-17.803859973151702, 22.60143719892949], [-16.282387804763857, -0.5637496160343289], [0, 0]]); let arrayBaseBuilding = new svg.PointArray([[-15.29139890637604, 12.091529326340595], [-10.53174232201431, 1.8880920578779659], [-3.615804392530878, 5.114223211431884], [-8.375460976892608, 15.317660479894514], [-8.375460976892608, 15.317660479894514]]); const boundingBoxBuilding = [-15.29139890637604, 1.8880920578779659, -3.615804392530878, 15.317660479894514]; const basePolygon = draw.polygon(arrayPlanoAux); const planoAuxBoundingBox = basePolygon.bbox(); basePolygon.fill(yellow).move(23, 15); const secondAuxPlaneBbox = basePolygon.bbox(); let baseBuildingPolygon = draw.polygon(arrayBaseBuilding).fill(orange).opacity(0.7) let basePolygonBoundingBox = baseBuildingPolygon.bbox(); baseBuildingPolygon.move(math.abs(planoAuxBoundingBox.x-boundingBoxBuilding[0])+secondAuxPlaneBbox.x, math.abs(planoAuxBoundingBox.y-boundingBoxBuilding[1])+secondAuxPlaneBbox.y); basePolygonBoundingBox = baseBuildingPolygon.bbox(); draw.svg();O envuelves ambos polígonos en un grupo y rotas el grupo o rotas ambos polígonos alrededor de su centro común (con rotar (grados, cx, cy)). Sin embargo, primero tendrías que calcular eso.