2011-07-27 41 views
0

是否有一种方法可缩放在m x n Canvas中绘制的一组点,然后在p x q画布中重绘一组等同点的点,其中p < m和q < n?我知道缩放坐标的方法应该是一个选项,但有没有其他方法可以做到这一点?在HTML画布上缩放点

预先感谢

回答

1

这不是作为确定比例因子(S)和每个点相应地乘以作为简单?假设两个画布共享高度/宽度比率,比例因子是p/m,并且您可以乘以每个点的坐标以将它们映射到新画布。

如果比率不相同,既可以使用的p/mq/n较小因子到原始点的比例保持彼此,或者使用p/m比例x轴和q/n缩放y轴。

E.g. (假设支持map或者已创建等效项):

var points = [{x:1,y:1}, {x:2,y:5}, {x:3,y:1}]; 
var scaleFactor = canvas2width/canvas1width; 
var scaledPoints = points.map(function(p) { 
         return { 
          x:p.x*scaleFactor, 
          y:p.y*scaleFactor 
         }; 
        }); 
+0

这是缩放方法,但我错过了第二种方案。谢谢! – Cheluis