Galerie d'interfaces utilisateur écrites en MQL - page 48

 
Реter Konow #:

Mais si un pixel a une couleur différente au lieu de -1, il n'est pas réaliste de le séparer du reste, et les fonctions de transparence ne sont d'aucune aide. Voici ce qu'il en est.

Je parle d'icônes en png avec un fond transparent (avec canal alpha).

 
Nikolai Semko #:
...

Je le faisais aussi avec les ombres. Je ne le fais plus.
La mode moderne sans ombres, dégradés et boucles.
Le minimalisme en somme, qui favorise la performance du rendu.


Bien sûr, la mode est différente, mais si nous parlons strictement de rendu, le traitement supplémentaire des ombres des petites icônes est juste l'initialisation de 16*16 cellules de tableau avec des valeurs calculées par une formule enfant. Et ainsi de suite pour chaque icône de la fenêtre, que l'on peut compter sur ses doigts. Il y aura à peine une milliseconde de retard dans le rendu. Une autre chose est l'événement de redessiner les surfaces de grandes toiles avec beaucoup d'éléments. Dans ce cas, il ne fait aucun doute que les gadgets graphiques ralentiront. Mais uniquement lors du premier dessin ou lorsque l'on modifie l'ensemble de la toile. Ce n'est pas toujours le cas, mais seulement lors de certains événements. Dans d'autres cas, nous supprimons simplement la ressource sauvegardée de la mémoire et nous ne dessinons rien.

C'est ainsi...
 
Nikolai Semko #:

Je parle d'icônes en png avec un fond transparent (avec canal alpha).

Elles n'ont donc pas de transparence en tant que telle. L'arrière-plan est marqué par -1. L'algorithme doit simplement changer cette valeur pour la couleur du pixel sous-jacent sur la toile de rendu. En d'autres termes, il n'est pas nécessaire de mélanger les couleurs dans ce cas. Mais la fonction de transparence est très utile à d'autres fins. Je l'ai d'ailleurs empruntée à un vieil article sur vos conseils. Cependant, je ne l'ai pas encore utilisée. Je pense qu'elle pourrait s'avérer utile...
 
Nikolai Semko #:

...

Au fait, il y a un problème graphique que je n'ai pas pu résoudre. Il est vraiment difficile. J'ai essayé de le résoudre et j'ai abandonné. Non pas parce que je n'y arrivais pas, mais parce que cela prenait trop de temps. J'ai pesé le pour et le contre et j'ai abandonné.

Je sais que vous êtes un grand spécialiste du travail avec les couleurs de la toile. Je ne peux pas m'empêcher de demander.

Voici donc le problème :

Comment calculer le dégradé de couleur du cadre d'un simple bouton de manière à ce qu'il s'harmonise avec la couleur de la surface du bouton et qu'il passe en douceur, en soulignant la courbe sans la modifier. Par exemple, nous avons un bouton jaune clair. Comment colorer correctement son cadre de 4 à 5 pixels d'épaisseur ? Vous devez garder à l'esprit que le cadre est éclairé différemment d'un côté à l'autre. De l'avant et de la gauche, le cadre est clair, de la droite et du bas, il est sombre. En outre, plus le cadre est proche de la base, plus il est sombre. En outre, il y a des reflets.

Comment calculer les couleurs du cadre en fonction de la couleur originale du bouton ?


Telle est la question. :)
 

Un exemple clair :


Les bords du bouton ne sont pas colorés. La raison en est que nous n'avons pas calculé les couleurs nécessaires. Le dégradé habituel ne convient pas. Nous avons besoin d'une formule pour calculer la lumière, l'ombre, l'angle et la nuance de couleur. Je ne suis pas compétent dans ce domaine.

 
Реter Konow #:
Au fait, il y a un problème graphique que je n'ai pas pu résoudre. C'est un problème très difficile. J'ai essayé de le résoudre et j'ai abandonné. Non pas parce que je n'y arrivais pas, mais parce que cela prenait trop de temps. J'ai pesé le pour et le contre et j'ai renoncé à toute nouvelle tentative.

Je sais que vous êtes un grand spécialiste du travail avec les couleurs de la toile. Je ne peux m'empêcher de vous poser la question.

Voici donc le défi :

Comment calculer le dégradé de couleur du cadre d'un simple bouton de manière à ce qu'il s'harmonise avec la couleur de la surface du bouton et que les transitions se fassent en douceur, en soulignant la courbe sans la modifier. Par exemple, nous avons un bouton jaune clair. Comment colorer correctement son cadre de 4 à 5 pixels d'épaisseur ? Vous devez garder à l'esprit que le cadre est éclairé différemment d'un côté à l'autre. De l'avant et de la gauche, le cadre est clair, de la droite et du bas, il est sombre. En outre, plus le cadre est proche de la base, plus il est sombre. En outre, il y a des reflets.

Comment puis-je calculer les couleurs du cadre en fonction de la couleur originale du bouton ?


Voici une question. :)

1. sur la couleur - des couleurs contrastées, il y a un tableau (dans ce cas, il faut obtenir une nuance de bleu foncé)

2. sur les ombres : simuler une ampoule (un point dans l'espace XYZ, juste en coordonnées numériques, pas besoin de construire des axes) et de lui aux bords des lignes droites, qui marqueront les limites de l'ombre. dans ce cas, le gradient s'étendra de la première limite à la deuxième, en fonction de la hauteur du bouton, également de la géométrie.

 
Renat Akhtyamov #:

1. par la couleur - couleurs contrastées, il y a un tableau (dans ce cas, il devrait être d'une nuance de bleu foncé)

2. sur les ombres : imiter une ampoule (point) et de celle-ci aux bords des lignes droites, qui marqueront les limites de l'ombre. dans ce cas, le dégradé s'étendra de la première limite à la seconde, en fonction de la hauteur du bouton, également géométrique.

Pouvez-vous fournir un lien vers une fonction, une formule ou un article ? Cela nous aiderait.
 
Реter Konow #:
Pouvez-vous fournir un lien vers une fonction, une formule ou un article ? Cela nous aiderait.

Google contient des millions de réponses

https://www.geeksforgeeks.org/how-to-determine-the-length-of-a-shadow/

https://www.sravni.ru/kursy/info/cvetovoj-krug-ittena/

How to determine the length of a Shadow? - GeeksforGeeks
How to determine the length of a Shadow? - GeeksforGeeks
  • www.geeksforgeeks.org
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
 
Renat Akhtyamov #:

Tout a été cherché sur Google et des millions de réponses ont été trouvées

https://www.geeksforgeeks.org/how-to-determine-the-length-of-a-shadow/

https://www.sravni.ru/kursy/info/cvetovoj-krug-ittena/

Je n'ai pas besoin de millions de réponses. J'ai besoin d'une bonne réponse, et de préférence tout de suite).

Sinon, je ne vois pas l'intérêt de le faire. Ce n'est pas rentable.


Et la question ne portait pas sur la longueur de l'ombre, mais sur lacoloration correcte ducadre du bouton par rapport à la couleur du bouton lui-même.

 
Реter Konow #:

Je n'ai pas besoin de millions de réponses. J'ai besoin d'une bonne réponse, et de préférence tout de suite).

Sinon, je ne vois pas l'intérêt de le faire. Ce n'est pas rentable.


Et la question n'était pas la longueur de l'ombre, mais lacoloration correcte ducadre du bouton par rapport à la couleur du bouton lui-même.

C'est l'ombre.

Si la couleur est contrastée, ce ne sera beau que pour l'utilisateur, car l'artiste s'ennuiera.