已知矩形四个顶点的坐标,矩形旋转一定角度后,求矩形的四个顶点的新坐标?

OneCoderr 2017-09-14 11:40:20
已知矩形四个顶点的坐标,矩形旋转一定角度后,求矩形的四个顶点的新坐标? 为了计算简单,此处暂定是以矩形中心点旋转。

我可以分四个象限计算(顺时针和逆时针可以用角度变化来判断),但还是太麻烦了,请教大神有没简单的方法?

不要说教,只要方法,最好有实例。
...全文
3217 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-10-26
  • 打赏
  • 举报
回复
平面直角坐标系中的三角函数的角度都是逆时针计算的
之所以要强调一下,是因为屏幕坐标系的 y轴朝下,对应的角度就是顺时针方向的
OneCoderr 2018-10-26
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转a角度后的新的坐标设为(x0, y0),有公式:
x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;
y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;

公式的推导见 http://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html


事实上,这个公司顺时针、逆时针都适用。 网上推导出来的顺时针公式仔细分析一下是和这个一致的。
xuzuning 2017-09-14
  • 打赏
  • 举报
回复
假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转a角度后的新的坐标设为(x0, y0),有公式: x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ; y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ; 公式的推导见 http://jingyan.baidu.com/article/2c8c281dfbf3dd0009252a7b.html
白衣如花 2017-09-14
  • 打赏
  • 举报
回复
突然发现sb了 用和角余弦算x 和角正弦算y就好了嘛。。。。
白衣如花 2017-09-14
  • 打赏
  • 举报
回复
第一个式子错了x2^2 + y2^2 = (L/2)^2 = x1^2 + y1^2
白衣如花 2017-09-14
  • 打赏
  • 举报
回复
不知道你是否记得两向量夹角公式? cos = ab/|a||b| 设对角线长度为L,则以矩形中心点为出发点,顶点为终点的向量长度为 L/2 则有 x2^2 + y2^2 = L/2 = x1^2 + y1^2 cos = (x1 * x2 + y1 * y2) / (L/ 2 * L/2) 解二元二次方程 或者你不用向量夹角公式,用和角余弦公式 cos(a + b) = cos(a)cos(b) - sin(a)sin(b) = x2 / (L/2) // a是一开始的角度,b是旋转的角度 再和长度等式并联,解二元二次方程组

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧