![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Dégradé horizontal sur le kanvas.
Légèrement amélioré le code, et également introduit une variable qui est responsable de la vitesse de rendu :
La modification de la vitesse de visualisation se fait en mettant à jour le canevas non pas après chaque dessin de la ligne, mais à intervalles.
La taille de l'écart est calculée à l'aide de l'opération arithmétique "reste de la division" :
J'ai appliqué différentes couleurs ici : j'ai appliqué une couleur avec transparence (canal alpha 255) à la couleur de fond (canal alpha 128). J'ai une question : quelle formule est utilisée pour calculer la couleur finale des pixels pour les modes COLOR_FORMAT_ARGB_RAW et COLOR_FORMAT_ARGB_NORMALIZE ?
Si vous vous référez à l'article Calcul de la couleur résultante, les calculs ne correspondent pas.
Où se situe le problème : les constantes de couleur stockent-elles des données erronées ou la fonction PrintFormat fonctionne-t-elle mal ?
Voici un script qui produit des couleurs sous forme d'entiers via PrintFormat :
Résultat de sortie :
PourquoiclrRed est-il représenté par0x000000FF et non0x00FF0000? Parce que le rouge est C'255,0,0'.
PourquoiclrBlue est-il représenté par0x00FF0000 et non0x0000FF? Parce que le bleu est C'0,0,255'.
C'est exact. C'est juste que l'ARGB a un format de stockage de données différent de celui de la couleur.
Le format d'enregistrement doit être le même : d'abord le canal alpha (s'il y en a un) puis RVB. Selon le type d' aide Colorier l'enregistrement en bleu à travers les littéraux :
C '0x00,0x00,0xFF'// bleu
c'est-à-dire que dans la représentation des nombres entiers, la couleur bleue (sans canal alpha) doit être écrite comme suit : 0x0000FF. Mais le script de test produit la couleur bleue à l'envers :
Il s'avère que la couleur est écrite à l'envers dans les constantes de couleur.
Il s'avère que la couleur s'écrit à l'envers dans les constantes de couleur.
Avec COLOR_FORMAT_ARGB_RAW, la méthodeTransparentLevelSet avec le paramètre "0" (transparence totale) produit une quasi-transparence, mais clairement pas une transparence totale.
La méthode COLOR_FORMAT_ARGB_RAWTransparentLevelSet avec le paramètre "0" (transparence totale) rend la transparence proche de la transparence totale mais évidemment pas de la transparence totale.
Clarification : la transparence résiduelle au niveau de transparence "0" n'est observée que sur x32. Il n'y a pas de transparence résiduelle sur x64 :
Ce comportement du kanvas en mode COLOR_FORMAT_ARGB_RAW est-il un bogue ou une caractéristique du dessin dans les systèmes x32 et x64 ?
Clarification : la transparence résiduelle au niveau de transparence "0" n'est observée que sur x32. Il n'y a pas de transparence résiduelle sur x64 :
Ce comportement du kanvas en mode COLOR_FORMAT_ARGB_RAW est-il un bogue ou une caractéristique du dessin dans les systèmes x32 et x64 ?