我正在嘗試在 svg 中以 180° 同時旋轉 2 個多邊形,我現在正在使用 svg.js 庫來執行此操作。
我嘗試通過旋轉它,但當然它們在自己的中心旋轉,所以它們不會轉換到另一個位置,所以現在我正在嘗試創建一個公式來做到這一點,但我決定在這里詢問是否看看我是否遺漏了什么,是否可以合并 2 個多邊形,然后按它們自己的中心旋轉它?
我添加了兩張圖片,第一張是 svg 的樣子,第二張是我想要實作的。
原始位置的多邊形
多邊形應該是什么樣子
如果您想嘗試一下,我還添加了在 svg.js 中創建兩個多邊形的代碼。
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();
uj5u.com熱心網友回復:
要么將兩個多邊形包裹在一個組中并旋轉該組,要么圍繞它們的共同中心旋轉兩個多邊形(使用旋轉(deg,cx,cy))。你需要先計算一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/422954.html
標籤:
上一篇:在javascript中將選定的資料從一個陣列復制到另一個陣列
下一篇:將斜杠命令設為私有
