长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距?

画布宽高为1920 1080,在里面添加一个长方形,宽高为200 20,长方形在画布的坐标xy为100 100,这个长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距

未旋转
长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距?
旋转30度
长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距?
旋转76度
长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距?

如何平均计算每次随机旋转后长方形距离左上角画布的Xy

算数不行,问了gpt试验之后也不正确


回答:

  const x = 200;

const y = 90;

const w = 200;

const h = 20;

const r = 80

const x1 = x + ((w / 2) - (w / 2) * Math.cos(r * Math.PI / 180))

const y1 = (y + (h / 2)) - (w / 2) * Math.sin(r * Math.PI / 180);

最后的结果是这么算出来了,各种角度也都是没有问题的


回答:

试试这个代码

长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距?

function rotatePoint(x, y, x1, y1, r, a) {

const angle = a * Math.PI / 180;

const x2 = x + r * Math.cos(angle);

const y2 = y + r * Math.sin(angle);

const dx = x1 - x;

const dy = y1 - y;

const distance = Math.sqrt(dx * dx + dy * dy);

const angle2 = Math.atan2(dy, dx) + angle;

const x3 = x + distance * Math.cos(angle2);

const y3 = y + distance * Math.sin(angle2);

return `(${x3}, ${y3})`;

}

const x = 0;

const y = 0;

const x1 = 1;

const y1 = 1;

const r = 1;

const a = 45;

console.log(rotatePoint(x, y, x1, y1, r, a));

以上是 长方形使用rotate旋转任意角度后,怎么计算旋转后长方形在画布上的xy的轴距? 的全部内容, 来源链接: utcz.com/p/935295.html

回到顶部