Align pixels when drawing icons or shapes
The floor before setting the transform ensures that we translate by integer pixels for odd and even dimenstions. The round before drawing the image ensures pixels are aligned.
This commit is contained in:
@@ -238,8 +238,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ =
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var midWidth = content.width / 2;
|
var midWidth = Math.floor(content.width / 2);
|
||||||
var midHeight = content.height / 2;
|
var midHeight = Math.floor(content.height / 2);
|
||||||
var contentWidth = content.width * this.inverseScale_;
|
var contentWidth = content.width * this.inverseScale_;
|
||||||
var contentHeight = content.height * this.inverseScale_;
|
var contentHeight = content.height * this.inverseScale_;
|
||||||
var contentXOffset = xOffset * this.inverseScale_;
|
var contentXOffset = xOffset * this.inverseScale_;
|
||||||
@@ -276,7 +276,8 @@ ol.renderer.canvas.Vector.prototype.renderPointFeatures_ =
|
|||||||
point = components[j];
|
point = components[j];
|
||||||
vec = [point.get(0), point.get(1), 0];
|
vec = [point.get(0), point.get(1), 0];
|
||||||
goog.vec.Mat4.multVec3(this.transform_, vec, vec);
|
goog.vec.Mat4.multVec3(this.transform_, vec, vec);
|
||||||
context.drawImage(content, vec[0] + xOffset, vec[1] + yOffset,
|
context.drawImage(content, Math.round(vec[0] + xOffset),
|
||||||
|
Math.round(vec[1] + yOffset),
|
||||||
content.width, content.height);
|
content.width, content.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user