A lona é legal! - página 14

 
Nikolai Semko:

Então, você não ouviu minha mensagem.

Mas é preciso arredondar os números duplos para dar as coordenadas. Não há outra maneira.

 
Реter Konow:

Mas é preciso arredondar os números duplos para dar as coordenadas. Não há outra maneira.

Não é preciso arredondar nada.

Aqui está um roteiro, como exemplo.

Executá-lo primeiro com parâmetros padrão (com círculos alisados e coordenadas e dimensões do tipo duplo)

e depois executá-lo com o parâmetro typ = not_smoothed_circles (com círculos antialiased e coordenadas e tamanhos do tipo int - da classe CCanvas).

e você vai ver o que quero dizer.

É melhor fazê-lo sobre fundo branco, não sobre fundo preto

Arquivos anexados:
 
Nikolai Semko:

Baseado no Doom...

Por que será que a imagem congela enquanto se rola o gráfico com o mouse?


É uma pena que não se possa matar um recurso. Por exemplo, você apaga o indicador de chama. E o objeto com o recurso é deixado pendurado. O objeto pode ser morto, mas o recurso - não. No final, é fácil comer toda a memória do Terminal e, assim, desativar imperceptivelmente os Conselheiros Especialistas.

 

Há muitas bibliotecas em 3D escritas em JavaScript há já cem anos. A maneira mais fácil e direta é reescrevê-los de lá para cá.

Não por 100 anos, é claro, mas alguns poucos.

 
fxsaber:

Por que será que a imagem congela enquanto se rola o gráfico com o mouse?

deve ser por causa do controle de eventos CHARTEVENT_CHART_CHANGE na minha classe iCanvas

não há tal controle no roteiro e não há congelamento.

Arquivos anexados:
fire.mq5  9 kb
 
Nikolai Semko:

Não é preciso arredondar nada.

Aqui está um roteiro como exemplo.

Executá-lo primeiro com parâmetros padrão (com círculos anti-serrilhados e coordenadas e dimensões do tipo duplo)

e depois execute-o com o parâmetro typ = not_smoothed_circles (com círculos antialiased e coordenadas e tamanhos do tipo int - da classe CCanvas).

e você vai ver o que quero dizer.

É melhor fazê-lo sobre fundo branco, não sobre fundo preto.

Sim, parece muito bom. Formas de círculos de qualidade.

Mas, você está usando a classe CCanvas, e aí as coordenadas são definidas em int.

 
fxsaber:

Eu me pergunto por que a imagem congela enquanto rola o gráfico com o mouse.


É uma pena que não se possa matar um recurso. Por exemplo, você apaga o indicador de chama. E o objeto com o recurso é deixado pendurado. O objeto pode ser morto, mas o recurso - não. Ele simplesmente devora toda a memória do Terminal e, portanto, desativa de forma discreta os Consultores Especialistas.

E quanto ao ResourseFree()?

 
fxsaber:

É uma pena que não se possa matar um recurso. Por exemplo, você apaga o indicador de chama. Ele deixa um objeto com um recurso pendurado. Você pode matar o objeto, mas não o recurso. No final, você pode comer facilmente toda a memória do Terminal e, portanto, desativar imperceptivelmente os Conselheiros Especialistas.

Mas por quê?

Eu uso um destruidor na minha classe

~iCanvas() { Destroy(); ChartRedraw();};

e Destroy:

void CCanvas::Destroy(void)
  {
//--- delete object
   if(m_objname!=NULL)
     {
      ObjectDelete(m_chart_id,m_objname);
      m_chart_id=0;
      m_objname =NULL;
      m_objtype =WRONG_VALUE;
     }
//--- deallocate array
   ArrayFree(m_pixels);
//--- free resource
   if(m_rcname!=NULL)
     {
      ResourceFree(m_rcname);
      m_rcname=NULL;
     }
//--- zeroize data
   m_width =0;
   m_height=0;
  }
 
Nikolai Semko:

isto é provavelmente devido ao controle do evento CHARTEVENT_CHART_CHANGE na minha classe iCanvas

No roteiro, não há tal controle e não há congelamento.

Sim, não há problema no roteiro.


Muito curioso como ficaria.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Nova versão do MetaTrader 5 build 1930: janelas de gráficos flutuantes e bibliotecas .Net em MQL5

fxsaber, 2019.01.14 21:37

Resta fazer uma imagem do pensamento com a torneira de gás fechada.

Mas o que é realmente espetacular é incendiar as próprias barras e linhas de objetos.


Você também poderia fazer as barras como se fossem cortadas na fornalha. É como se você estivesse observando as chamas através delas.


Isto requer um pouco de trabalho: criar um segundo tampão de lona como cópia da chama principal, e depois aplicar um filtro sobre a localização dos pixels das barras. Não deve ser difícil, à primeira vista.

 
Nikolai Semko:

Por que isso acontece?

Eu uso um destruidor na minha classe

e Destroy:

Bem, então por alguma razão não funcionou, pois me resta tudo.

Razão: