Sto provando a disegnare una linea che inizia come una linea sottile e quindi si allarga a mano fino alla fine. Devo disegnare curve semi-levigate (composte da più linee diritte) e ho difficoltà a trovare un modo per risolvere questo compito.Disegno di linee con larghezza di riga variabile in continuo su tela HTML
Questo violino mostra il mio problema:
Quando si chiama ictus(), attualmente impostato lineWidth viene utilizzato per accarezzare l'intera linea. Il mio primo pensiero è stato quello di disegnare ogni singola linea individualmente, ma ovviamente questo lascia evidenti vuoti nella linea agli angoli.
Qual è la mia migliore opzione qui? Dovrei ricorrere a disegnare poligoni (trapezi) per ottenere gli angoli giusti?
C'è un modo più semplice?
(Edit: Si noti che non sto cercando di disegnare ellissi in realtà o qualsiasi altre forme di base; sto cercando di tracciare funzioni matematiche, utilizzando spessore della linea per rappresentare la velocità)
La migliore opzione è destinata probabilmente ad essere utilizzando 'bezierCurveTo' o' 'quadraticCurveTo' e fill' invece di' stroke', complicherà la matematica, ma è probabilmente l'unico modo per ottenere il risultato desiderato. Sono stato in grado di ottenere un effetto simile ma diverso disegnando più ellissi e sfalsandole/riducendole ogni passaggio: http://jsfiddle.net/Shmiddty/ZvuQG/3/ – Shmiddty