Я пытаюсь нарисовать круг на холсте, и это генерирующий следующим образом:Drawing фантазии Круг на холсте имеет странный эффект
и масштаб изображения:
я не уверен, почему это хотя я видел эффект раньше, и я подозреваю, что это что-то связано с частичными пикселями (хотя я не делаю этого афайта). Рабочий пример можно увидеть на этом jsfiddle.
Чтобы обобщить код, я использую функцию для рисования круга. Я рисую внутри и снаружи постепенно внутрь, настраивая альфу, когда я иду. Код можно увидеть ниже:
function drawCircle(x, y, radius, startAngle, endAngle, antiClockwise, lineWidth, r, g, b, a) {
c.beginPath();
var w = Math.abs(lineWidth/2);
var alphaFactor = a/w;
var alpha = alphaFactor;
var outer = radius + w;
var inner = radius - w;
// draw centre line
c.lineWidth = 1;
c.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';
c.arc(x, y, radius, startAngle, endAngle, true);
c.stroke();
for(i = 0; i < w; i++, inner++, outer--, alpha += alphaFactor) {
// draw inner
c.beginPath();
c.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')';
c.arc(x, y, inner, startAngle, endAngle, true);
c.stroke();
// draw outer
c.beginPath();
c.arc(x, y, outer, startAngle, endAngle, true);
c.stroke();
}
};
Я считаю, что я могу использовать радиальный градиент, чтобы решить эту проблему (который я предполагаю, будет быстрее, в зависимости от ширины линии), однако я хотел бы понять, почему проявляется аффект, показанный выше.
[муаровый рисунок] (http://en.wikipedia.org/wiki/Moir%C3%A9_pattern) – Teemu