d3f c canvas - повернуть символ d3 - PullRequest
1 голос
/ 21 января 2020

Я использую d3f c для рендеринга холста и могу успешно визуализировать треугольники следующим образом:

import { symbolTriangle } from 'd3-shape';
import { seriesCanvasPoint } from '@d3fc/d3fc-series'; 

seriesCanvasPoint()
    .crossValue(d => d.date)
    .mainValue(d => d.extremePrice)
    .type(symbolTriangle)
    .decorate((context, datum, index) => {
        const symbolColor = datum.peak ? 'red' :
                            datum.trough ? 'blue' : 'white';

        context.fillStyle = symbolColor;

    });

Однако я бы хотел повернуть несколько треугольников вверх ногами (внутри функции декорации):

        if (datum.peak) {
            context.rotate(Math.PI); //Pi radians = 180 deg
        }

Но это ничего не делает. Почему?

1 Ответ

1 голос
/ 21 января 2020

Это очень похоже на ошибку в реализации ряда точек холста. Если вы посмотрите на исходный код, инструкции пути выполняются:

https://github.com/d3fc/d3fc/blob/master/packages/d3fc-series/src/canvas/point.js#L23

После чего вызывается decorate:

https://github.com/d3fc/d3fc/blob/master/packages/d3fc-series/src/canvas/point.js#L28

В результате, decorate может изменять заливку и обводку, но никак не может изменять функции рисования. Это должно быть простое исправление.

...