Leaflet/src/geometry/Transformation.js

26 lines
728 B
JavaScript
Raw Normal View History

/*
* L.Transformation is an utility class to perform simple point transformations through a 2d-matrix.
*/
L.Transformation = L.Class.extend({
initialize: function(/*Number*/ a, /*Number*/ b, /*Number*/ c, /*Number*/ d) {
this._a = a;
this._b = b;
this._c = c;
this._d = d;
},
transform: function(/*Point*/ point, /*Number*/ scale) /*-> Point*/ {
scale = scale || 1;
return new L.Point(
scale * (this._a * point.x + this._b),
scale * (this._c * point.y + this._d));
},
untransform: function(/*Point*/ point, /*Number*/ scale) /*-> Point*/ {
scale = scale || 1;
return new L.Point(
2010-09-15 21:45:16 +08:00
(point.x/scale - this._b) / this._a,
(point.y/scale - this._d) / this._c);
}
});