Я ищу способ рисовать отметки оси на холсте без использования SVG.
Допустим, у меня есть рабочий d3.zoom, и у меня есть преобразование этого увеличения и var y; // d3.scale
.. тогда я могу нарисовать галочки следующим образом:
var yTicks = this.y.ticks(10);
yTicks.forEach(d => {
context.moveTo(0, y(d) * transform.k + transform.y + 0.5);
context.lineTo(width, y(d) * transform.k + transform.y + 0.5);
});
Это позволяет мне рисовать галочки Но они не меняются в точности, как с d3.axis. С осью d3 количество осей соответствует масштабу диаграммы. У меня также есть d3.axis (на данный момент бесполезный, поскольку он не рендерится напрямую на холст), если это помогает.
Так как же я могу
- получить тики так, как рендерит d3.axis (как данные), чтобы я мог рендерить их самостоятельно
- найдите другое решение, чтобы получить точность тиков с помощью canvas и ticks
Использование SVG с Canvas не поддерживается.