На канвасе рисую два контура прямоугольника непрозрачным цветом. В двух местах прямоугольники пересекаются, и по идее, второй(верхний) прямоугольник должен перекрывать первый(нижний), но их контуры почему то смешиваются.
const c=document.getElementById("myCanvas");
const ctx=c.getContext("2d");
ctx.strokeStyle="red";
ctx.strokeRect(20,20,150,100);
ctx.strokeStyle="gray";
ctx.strokeRect(50,50,200,200);
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Отрисовывай свои однопиксельные линии в координатах вроде ctx.lineTo(10.5, 10.5)
. Рисование однопиксельных линий в координатах (10, 10)
значит, что этот 1
пиксель находится в координатах с 9.5
до 10.5
, что приводит к рисованию двух линий на канвасе.
Интересный способ не прибавлять каждый раз 0.5
к настоящим координатам, если много однописксельных линий, использовать ctx.translate(0.5, 0.5)
в самом начале.
перевод ответа @allan
const c = document.getElementById("myCanvas");
const ctx = c.getContext("2d");
ctx.translate(0.5, 0.5);
ctx.strokeStyle = "red";
ctx.strokeRect(20, 20, 150, 100);
ctx.strokeStyle = "gray";
ctx.strokeRect(50, 50, 200, 200);
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Антиалиасин
const c=document.getElementById("myCanvas");
const ctx=c.getContext("2d");
ctx.lineWidth=10;
ctx.strokeStyle="red";
ctx.strokeRect(20,20,150,100);
ctx.strokeStyle="gray";
ctx.strokeRect(50,50,200,200);
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую данную библиотеку чартов, со stacked-bar чартами проблем небыло - подкидываю в рендер компоненту:
по работе приходится иметь дело с одним online сервисом ( на bootstrap), функционал у них немного хромает и хотелось бы его немного допилитьТ