关于图片的两次缩放计算
krpano里面的雷达图可以有宽有窄,而不单单是正方形的,这就需要其坐标点对应宽高进行缩放,如何计算缩放后的坐标点呢?
什么图形学原理我就不扯了,就是等比缩放的问题,平面向量乘以一个标量。
坐标点(3,3)
缩放两倍后就是(3*2,3*2) = (9,9)
其中雷达图分为过高的图片和过宽的图片,这两种都是需要单独处理的。
例如过高的图片,我们希望高度最高不能超过外层的560高度,所以该粉色框最高560,宽度根据原图片缩放至560的比例来等比缩放。
另外过宽的图片,我们希望宽度最宽不能超过外层的560宽度,所以粉色框最宽560,高度根据原图片缩放至560的比例来等比缩放。
对于过高的图片高度的算法:
1 | 设原图片宽度ORW = 400, 高度ORH = 862 |
现需要将整个图片等比缩放至宽度固定200,高度自适应。
所以图片高度计算方法:
1 | 设粉色框宽度OLW = 260, 高度OLH = 560 |
对于下面过宽的图片计算方法同上
图上的坐标点计算方法:
例如原始宽高是 260 * 560,缩放至 200 * 430,则原始点(30,90)缩放后为点(23.08,69.11)
缩放后(x,y) = (200 / 260 * x,430 / 560 * y)
因为等比缩放,这个共用的比例可以提出来。
后面这个缩放雷达图还要放大显示,所以直接将图片乘以放大比例,坐标点也乘缩放比例就可以了。
但缩放比例从哪来呢?当然不是写死,那样小屏幕就吃不消了。而是让高度等于80%,宽度自适应。
此时算出新图和旧图的缩放比例即可。
Comments
Comment plugin failed to load
Loading comment plugin