多边形的一边被拉大或缩小后,其他坐标应该如何同步计算?

vnking 2010-08-02 04:20:19
多边形是由很多点组成,根据各个点的x方向和y方向,取出最大值和最小值,这样可以得到一个外罩的矩形。

拉着这个外罩的矩形的边放大或缩小,那么在维持多边形的形状按比例不变的条件下,如何重新计算各点的坐标值?
...全文
112 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
f10icq 2010-08-03
经测试,楼上可行。
回复
vnking 2010-08-02
例如:拉动右边的边框,往右拉大,所以的Y坐标应该是不变的。

而左边的边框是基准点,x0是保持不变的,那么拉大后的宽度w2,原来的宽度w1。

放大倍数bs=w2/w1;

每个点的x坐标,原来是x1,变化后是x2,则:

x2=bs*(x1-x0)+x0;

不知道这样算是否可以?
回复
wuchuncai 2010-08-02
等比放大后平移

平移多少根据矩形放大或缩小后中心的移动距离。

回复
iamshuke 2010-08-02
如果“维持多边形的形状按比例不变”指的是X、Y方向等比例缩放,不产生变形,就好算。一个点到另一个点的距离和方向加起来叫“向量”,等比例缩放时,向量方向不变,距离乘以缩放系数就行了。所以,求出缩放基点到多边形各顶点的向量,距离乘以缩放系数后得出新点坐标就行了。
回复
hzxcngd 2010-08-02
等比放大后平移
回复
vnking 2010-08-02
那里什么的原理啊?

如果没有好武器,我只能刀耕火种了。
回复
Eleven 2010-08-02
CRectTracker类???
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告