Fazendo um projeto de crowdsourced em Tela - página 20

 

Comparando essas fórmulas, os resultados são realmente diferentes. Eu também comparei as velocidades.

A metade esquerda é composta por três camadas de cores diferentes, com 128 de transparência em todos os lugares. As cores são misturadas pelo terminal.

O superior direito é feito em uma camada, misturado de acordo com o wiki inglês.

Em baixo à direita em uma camada, de acordo com o wiki russo.


Comparação de terminal e wiki inglês por captura de tela (terminal de cima)


Comparação de fórmulas por recursos salvos em arquivo (inglês de cima)


Leva muito tempo para criar um recurso, em comparação com o cálculo da cor e o preenchimento da matriz até 10 vezes, provavelmente sem sentido em lidar com OCL.

PS Parece uma boa idéia, você pode fazer photoshop em MT bang on :)

Arquivos anexados:
script.mq5  4 kb
 
As pessoas que conhecem a classe CCanvas, você pode me dizer se é possível criar um gradiente lá? Por exemplo, para que um retângulo o transforme em um botão? Há muito tempo que eu queria perguntar isso).
 
Реter Konow:
As pessoas que conhecem a classe CCanvas, você pode me dizer se é possível criar um gradiente lá? Por exemplo, para que um retângulo o transforme em um botão? Há muito tempo que eu queria perguntar isso).
Há.
 
Artyom Trishkin:
Verificar.

Há alguns exemplos de botões desenhados com Tela? Não me lembro de ter visto nenhum. Vi alguns botões muito legais, mas foram baseados em imagens de origem e não vi totalmente desenhados em tela...
 
Реter Konow:

Há exemplos de botões desenhados com Kanawas? Não me lembro de ter visto nenhum. Vi alguns botões muito legais, mas eram baseados em imagens de origem e não vi um totalmente desenhado em kanvas...
Leia a descrição de Anatoly de sua biblioteca gráfica - sobre elementos informativos, se a memória me serve corretamente.
 
Artyom Trishkin:
Leia a descrição de Anatoly de sua biblioteca gráfica - sobre elementos de informação, se minha memória me serve corretamente.

Vou tentar encontrá-lo...
 
Encontrei-a. O elemento da ponta da ferramenta utiliza um gradiente. Mas ainda não entendi se é possível definir uma cor e transparência diferentes para cada linha de gradiente. Terei que passar por kanvas à minha vontade. Estou curioso...
 
Реter Konow:
As pessoas que conhecem a classe CCanvas, você pode me dizer se é possível criar um gradiente lá? Por exemplo, para que um retângulo o transforme em um botão? Há muito tempo que eu queria perguntar isso).
Olá Peter!
Não vejo nenhum problema com o gradiente.
Aqui está um exemplo simples e claro de um roteiro que percorre todas as cores e desenha dinamicamente um quadrado de cores com gradiente variável.
Só para que funcione, você precisa mover o array m_pixels[] em Canvas.mqh para o público
public:
   uint              m_pixels[];               // array of pixels
#include <Canvas\Canvas.mqh>
void OnStart()
  {
   CCanvas Grad;

   color col;
   if(!Grad.CreateBitmapLabel(0,0,"Grad",100,100,256,256,COLOR_FORMAT_XRGB_NOALPHA)) Print("Error creating canvas: ",GetLastError());
   for(int r=0; r<256; r++) // red
     {
      int j=0;
      // заполняем цветной градиентный квадрат
      for(int b=0; b<256; b++) // blue
         for(int g=0; g<256; g++) // green
           {
            col=(color)(((r&0x0000FF)<<16)|((g&0x0000FF)<<8)|(b&0x0000FF)); // формируем цвет RGB
            Grad.m_pixels[j]=col; // рисуем точку с текущим цветом
            j++;
           }
      Grad.Update();
      Sleep(20);  // Подождем для плавности
     }
  }
Arquivos anexados:
Gradient.mq5  2 kb
 
Nikolai Semko:
Olá Peter!
Não vejo nenhum problema com o gradiente.
Aqui está um exemplo simples de um roteiro que percorre todas as cores e desenha um quadrado de cores gradiente.
Só para que funcione, você precisa mover o array m_pixels[] em Canvas.mqh para o público


Olá Nikolai!

Obrigado pelo exemplo, mas não era isso que eu queria dizer. Não deixei claro meu ponto de vista. Referia-me à moldura do quadrado, que transformará o quadrado em um botão. Para isso, as linhas do quadro precisam ser diferentes. Por exemplo, se as linhas superior e esquerda forem claras e as linhas inferior e direita forem escuras, o botão é pressionado, se for o contrário, o botão parecerá pressionado. Eu queria saber como isso pode ser feito com kanvas.

O declive chamava as linhas da moldura. Talvez isto esteja errado...

 
Реter Konow:

Olá Nikolai!

Obrigado pelo exemplo, mas não era isso que eu queria dizer. Não deixei claro meu ponto de vista. Referia-me à moldura do quadrado, que transformará o quadrado em um botão. Para isso, as linhas do quadro precisam ser diferentes. Por exemplo, se as linhas superior e esquerda forem claras e as linhas inferior e direita forem escuras, o botão é pressionado, se for o contrário, o botão parecerá pressionado. Eu queria saber como isso pode ser feito com kanvas.

O declive chamava as linhas da moldura. Talvez isto esteja errado...


A imagem do botão pode ser formada ou carregando uma imagem bmp pronta ou usando um desenho de software (há muitas variantes). E então, simplesmente processando os eventos do mouse no OnChartEvent, muda sua imagem.
Razão: