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

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

拉着这个外罩的矩形的边放大或缩小,那么在维持多边形的形状按比例不变的条件下,如何重新计算各点的坐标值?
...全文
186 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-08-02 04:20
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……