如何实现旋转矩形的外接矩形

IamDeane 2006-11-27 12:20:58
一个可以旋转的矩形,已知旋转角度,长度和宽度,如何人根据角度的变化绘制最最小的外接的矩形图形,谢谢大家
...全文
827 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
可西哥 2006-12-05
  • 打赏
  • 举报
回复
不知道你还会不会看这个贴
其实问题可以更简单一点:
抛开矩形,只看4个顶点,你要做的其实就是把这4个顶点绕
形心(形心就是两条对角线的交点)旋转某个角度,得到新的
4个顶点,再过这4个顶点分别做两个坐标轴的垂线,就是你要
的矩形了。所以问题归结为:
将某个点A绕点B旋转角度N后的得到点C,求C坐标。
解决的方法也很简单,直接使用坐标变换
即:把平面直角坐标系变换成极坐标系,再进行坐标轴平移
就可以很方便得到新点C的坐标。当然直接用平面几何的方法
也可以。
IamDeane 2006-11-28
  • 打赏
  • 举报
回复
先谢谢楼上的,代码试了一下,1,3区间可以实现,2,4区间就郁闷了,回来我再研究看看 ,呵呵,不过已经很感谢了啊,还有谢谢你能够两次来关注我的问题,,现在不知道为什么我给不了分,早上起来我再给了,呵呵,抱歉了啊
可西哥 2006-11-27
  • 打赏
  • 举报
回复
很简单啊,宽w高h的矩形,转了n弧度(逆时针)后的外接矩形的宽W高H就是:
W=w*cos(n)+h*cos(pai/2-n)
H=w*sin(n)+h*sin(pai/2-n)
如果你是要坐标的话,推一下就有了
左上,右下坐标是:(X1,Y1),(X2,Y2)
转n度后(要看绕哪点转了,如是是绕形心,就比较简单些)
先找到形心(或者是其它那个转动的点,
把每个顶点旋转N度;
重新确定过这4个顶点的直线
找到这4条直线的4个交点(得到两个就行,左上和右下)

IamDeane 2006-11-27
  • 打赏
  • 举报
回复
你看看图就知道了,就是里面的矩形不论如何变化,外面的矩形都要保证是最小的
*******************
* * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * *
*******************
可西哥 2006-11-27
  • 打赏
  • 举报
回复
不明白,什么叫最小的外接的矩形
IamDeane 2006-11-27
  • 打赏
  • 举报
回复
UP

7,764

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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