gpt4 book ai didi

javascript - 使用 JavaScript 查找旋转 SVG 矩形的所有新坐标

转载 作者:行者123 更新时间:2023-12-01 17:18:59 25 4
gpt4 key购买 nike

我试图找到旋转的 svg 矩形坐标。

例如,

<svg width="500" height="500">
<rect width="100" height="80" x="250" y="50"/>
</svg>


Before rotation

在这个 SVG 矩形中,我可以计算所有 4 个 Angular ,如下所述。

点 1 => (250,50)

点 2 => (350,50) 即 (x+width, y)

Point-3 => (350, 130) 即 (x+width, y+height)

第 4 点 => (250, 130)

但是,当我使用旋转时,我找不到新的 4 个坐标,

<svg width="500" height="500">
<rect width="100" height="80" x="250" y="50" transform="rotate(10 250,50)"/>
</svg>


after rotation

最佳答案

我找到了解决方案。下面的方法工作正常。

function degreeToRadian(degree) {
return degree * (Math.PI / 180);
}


function getRotatedRectangleCoordinates(actualPoints, centerX, centerY, angle) {
var coordinatesAfterRotation = [];
for (var i = 0; i < 4; i++) {
var point = actualPoints[i];
var tempX = point.x - centerX;
var tempY = point.y - centerY;
var rotatedX = tempX * Math.cos(degreeToRadian(angle)) - tempY * Math.sin(degreeToRadian(angle));
var rotatedY = tempX * Math.sin(degreeToRadian(angle)) + tempY * Math.cos(degreeToRadian(angle));
point.x = rotatedX + centerX;
point.y = rotatedY + centerY;
coordinatesAfterRotation.push({ 'x': point.x, 'y': point.y });
}
return coordinatesAfterRotation;
}

关于javascript - 使用 JavaScript 查找旋转 SVG 矩形的所有新坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com