Utilizzo della funzionalità dell'asse D3 su una tela

Aug 24 2020

Sto cercando di disegnare un asse su una tela usando la funzionalità D3 (come qui esemplificato https://www.tutorialsteacher.com/d3js/axes-in-d3). Tuttavia, ogni esempio che ho visto utilizza un SVG mentre desidero usare canvas. D'altra parte non ho visto alcuna indicazione, nella loro documentazione o altrove, che non può essere fatto su tela.

È possibile? Se é cosi, come?

Risposte

2 GerardoFurtado Aug 24 2020 at 12:27

In breve: no, non è possibile.

D3 è praticamente indipendente dal rendering, il che significa che può essere utilizzato per creare SVG, Canvas, altri elementi HTML ecc. Tuttavia, alcuni moduli sono davvero piuttosto specifici, e questo è il caso di d3-axis.

Se si dispone di uno sguardo al d3-axis codice sorgente vedrete che si accoda SVG <path>, <line>e <text>gli elementi per la creazione dell'asse. Per esempio:

path.enter().insert("path", ".tick")

Infine, ecco una discussione su questo argomento, dove Bostock (creatore di D3) abbandona l'idea di modificare il d3-axismodulo per creare assi su tela HTML.