ligne claire sur HTML5 Canvas
Est-il un moyen de unstroke une ligne?
Sur ma toile, j'ai une ligne avec une opacité de 0,5, et la largeur de 20 pixels, disons.
Maintenant, je veux prendre plus de temps, de moyens de dessiner une autre ligne droite de l'ancien.
lorsque vous faites cela, les points de correspondance entre les anciennes et les nouvelles lignes deviennent de moins en moins transparent (parce qu'ils sont constitués de deux lignes).
je tiens donc à unstroke l'ancienne ligne et puis avc le nouveau.
comment puis-je le faire?
grâce
Vous devez vous connecter pour publier un commentaire.
Comment vous faire une toile est strictement défini par l'API, mais la façon dont c'est fait dans le logiciel et/ou matériel est en place pour les développeurs de navigateurs. Certains navigateur en utilisant l'accélération matérielle et les autres travaillent sur atm. (eg. à l'aide d'un moteur de rendu logiciel atm)
En infographie lors de l'élaboration de quelque chose, vous dessinez un tampon. Et lorsque vous appelez lineTo et de l'avc de la mémoire tampon est mis à jour et toutes les informations qui ont été dans les pixels sous-jacents sont perdus (ou en partie perdu si vous utilisez de la transparence) et il n'y a aucun moyen de le récupérer par défaire (à moins qu'il y est une application contenant des charges de vieux dessins, mais ce serait vraiment lourd pour la mémoire).
Afin d'être en mesure d'annuler un accident vasculaire cérébral peut sauver beaucoup de CPU/GPU, MAIS devrait fortement augmenter la mémoire
clearRect()
est la seule façon de le faire. Un bon moyen de contourner cela (si vous avez beaucoup d'éléments dessinés sur votre toile) est la superposition de deux toiles dans le code HTML en utilisant le positionnement absolu, à l'aide de l'un pour les "statique" de dessin et d'une couche supérieure pour le dessin que vous prévoyez pour effacer/redessiner. Cela permet d'économiser le temps CPU de dessin tous de votre toile de nouveau, trop.Une autre option élégante consiste à définir le "globalCompositeOperation' à 'xor' et de peinture en ligne de nouveau....ainsi, il sera supprimé
Je suppose que le plus simple serait de simplement effacer l'intégralité de la toile (à l'aide de
clearRect
) et il suffit de tirer l'ensemble de la ligne de nouveau