Я пытаюсь использовать разную ширину линии для разных осей для графика параллельных координат с использованием d3. js
Он отлично работает, только если он находится в строго убывающем порядке (например: lineWidth=10
для 1-й оси , lineWidth=5
для 2-й оси и lineWidth=2
для 3-й оси). Но если значения похожи на (lineWidth=10
для 1-й оси, lineWidth=2
для 2-й оси и lineWidth=5
для 3-й оси), то для второй и третьей оси толщина линии равна 5, что является большим значением после меньшего всегда отменяет меньшее значение. Есть ли способ решить эту проблему? Ваша помощь очень заметна.
Ниже приведен фрагмент кода, над которым я сейчас работаю.
if (i == 0) {
ctx.beginPath();
ctx.moveTo(x,y);
}
else {
if(i == 1) {
ctx.lineWidth = 1;
}
if(i == 2) {
ctx.lineWidth = 5;
}
if(i == 3) {
ctx.lineWidth = 10;
}
var cp1x = x - 0.55*(x-x0);
var cp1y = y0;
var cp2x = x - 0.45*(x-x0);
var cp2y = y;
ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
ctx.stroke();
}
Для приведенного выше кода ширина линии равна 10 по всем осям.
Если я используйте ctx.beginPath()
перед каждым оператором if, тогда толщина линии работает нормально. Но, к сожалению, линии, проведенные между осями, меняют свое положение (рисуются только половинные линии). Заранее спасибо.
Если я использую ctx.beginPath()
в каждом операторе if, то это то, что я получение