关于超大矩形内的坐标转换显示到小型矩形窗口内的问题

yann2 2018-07-14 12:29:09

如图所示, 在这个超大矩形中, 中间的位置坐标为 0:0

4个坐标我是示范画上去的

问题是, 已知这些坐标, 要把他缩小绘画到一个小型的矩形中, 比如宽高为 50*50 的小窗口中

要求精确到小数点后2位(也就是说 实际出来的效果 哪怕小数点的后1位相差1 也能明显在小窗口中表示出来)

我试了几个办法都失败..还望各位大神指点一下,谢谢!!

补充:图片看不清楚,请拖动图片新窗口查看..
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2018-07-16
  • 打赏
  • 举报
回复
不论放大和缩小,每次都使用最原始的坐标进行转换, 不要从像素角度考虑,否则多次缩放后将造成很大的误差
汪宁宇 2018-07-16
  • 打赏
  • 举报
回复
引用 3 楼 yann2 的回复:
[quote=引用 2 楼 wangningyu 的回复:]
计算坐标,用内存DC + BitBlt画四次

试过这种办法,但是原始的矩形区域太大,绘画的时候比较卡[/quote]

用滚动条操作,裁剪可视区域绘制,不然每次都LOAD 4张大图
yann2 2018-07-15
  • 打赏
  • 举报
回复
引用 5 楼 schlafenhamster 的回复:
也就是 原 2000 pixel 压缩到 50 pixel , 也 就是 原(2000) 40 pixel = (50)1 pixel. 不可能 做到 0.1 误差。


如果这样呢? 已知这4个坐标 要按比例去放大这4个坐标呢? 其他的不考虑 只放大这4个坐标的间距
schlafenhamster 2018-07-15
  • 打赏
  • 举报
回复
"已知这4个坐标 要按比例去放大这4个坐标呢?"
就是 50:50 放大到 2000:2000 , 如果你有 2000:2000 的 原图 ,可以
如果 要 50:50 插补 到 2000:2000 图形 失真厉害 !
汪宁宇 2018-07-14
  • 打赏
  • 举报
回复
计算坐标,用内存DC + BitBlt画四次
schlafenhamster 2018-07-14
  • 打赏
  • 举报
回复
2000:2000到 50:50 ?
schlafenhamster 2018-07-14
  • 打赏
  • 举报
回复
也就是 原 2000 pixel 压缩到 50 pixel , 也 就是 原(2000) 40 pixel = (50)1 pixel. 不可能 做到 0.1 误差。
yann2 2018-07-14
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
2000:2000到 50:50 ?


就算原始矩形是2K*2K吧
yann2 2018-07-14
  • 打赏
  • 举报
回复
引用 2 楼 wangningyu 的回复:
计算坐标,用内存DC + BitBlt画四次

试过这种办法,但是原始的矩形区域太大,绘画的时候比较卡

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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