Discussão do artigo "Visualize isto! Biblioteca gráfica em linguagem MQL5 como equivalente a plot de R" - página 6

 
Nikolai Semko #:
Na verdade, eu uso várias telas (geralmente não mais do que 4)
Sempre há um meio-termo. Um extremo é pintar toda a estática e toda a dinâmica em uma tela, o outro extremo é pintar todos os objetos em telas separadas.
É importante não esquecer que, se você tiver duas telas com transparência sobrepostas, a CPU (talvez na GPU do Win10-11, mas acho que ainda é a CPU) misturará cada pixel de um fundo homogêneo (transparência diferente de zero).
Aqui podemos pegar emprestado do JS a prática de armazenar em cache a tela ou uma parte dela para melhorar o desempenho.
Quanto aos círculos com suavização de serrilhado, já publiquei uma variante desse círculo, que é ideal (em termos de desempenho) para círculos com raio inferior a cerca de 5 pixels. Acho que a função se chama iDot() e estava no código do 3DStars. Ela é muito primitiva e curta (cerca de 10 linhas de código). Para círculos de raio maior, ela está longe de ser ideal em termos de desempenho. Para raios maiores, a função de alto desempenho já tem mais de 100 linhas de código.
Sim, depois de anos estabelecendo novas conexões neurais no cérebro na tela, agora posso criar uma biblioteca na tela em qualquer nível. Haveria tempo e motivação.
O algoritmo de Wu é considerado obsoleto.

Não consegui encontrar uma busca por iDot() ou 3DStars para ver o código.

Eu quis levar em conta tudo o que está sob a tela, inclusive o próprio gráfico (cor de fundo) e a cor de seus elementos (barras, linhas de compra/venda etc.).

Ao mover essa tela com um plano de fundo transparente com elementos semitransparentes desenhados nela, todos os pixels devem ser desenhados corretamente.

Esse não é o caso agora:


 
Nikolai Semko #:

Artem, essas tarefas realmente não são triviais e exigem novas conexões neurais. Por exemplo, no SVG existe um conceito chamado viewBox. Já assisti a muitos vídeos sobre como ele funciona, li muita documentação, escrevi muito código e, mesmo assim, às vezes fico perplexo. Ainda não tenho as conexões neurais necessárias, mesmo que várias vezes tenha parecido que eu havia entendido tudo.

Bem, ainda acreditamos em você ;)
 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Discussão do artigo "Visualize it! Biblioteca gráfica em MQL5 como um análogo do R"

Anatoli Kazharski, 2023.07.31 17:39

...

Eu quis dizer para levar em conta tudo o que está sob a tela, incluindo o próprio gráfico (cor de fundo) e a cor de seus elementos (barras, linhas de compra/venda, etc.).

Ao mover essa tela com um plano de fundo transparente com elementos semitransparentes desenhados nela, todos os pixels devem ser desenhados corretamente.

Esse não é o caso agora:


Aqui está um exemplo em que uma tela (com um círculo azul) está acima de outra tela (um retângulo azul com uma imagem) e aqui também não leva em conta o que está desenhado na tela abaixo:


 
Anatoli Kazharski #:

Não foi possível encontrar uma pesquisa para iDot() ou 3DStars para visualizar o código.

Eu pretendia levar em conta tudo o que está sob a tela, inclusive o próprio gráfico (cor de fundo) e a cor de seus elementos (barras, linhas de compra/venda etc.).

Ao mover essa tela com um plano de fundo transparente com elementos semitransparentes desenhados nela, todos os pixels devem ser desenhados corretamente.

Esse não é o caso agora:


https://www.mql5.com/ru/forum/227736/page72#comment_25130501

Aqui também as cores são mescladas com o plano de fundo
https://www.mql5.com/ru/forum/451355/page5#comment_48450810
 
Nikolai Semko #:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501

Aqui também as cores são mescladas com o plano de fundo
https://www.mql5.com/ru/forum/451355/page5#comment_48450810

Obrigado! Esses exemplos são muito legais! Então, eu estava errado.

Ainda não examinei o código detalhadamente, mas por que a transparência não é desenhada como esperado no CCanvas padrão?

 
Anatoli Kazharski #:

Obrigado! Esses exemplos são muito legais! Então eu estava errado.

Ainda não examinei o código detalhadamente, mas por que a transparência não é desenhada como esperado no CCanvas padrão?

Há muitas coisas erradas com ele.
Parece que eles simplesmente não o terminaram porque o programador que estava trabalhando nele foi demitido. Posso estar errado.
 
Nikolai Semko #:
Há muita coisa errada com ele.
A sensação é de que eles simplesmente não o terminaram porque o programador que estava encarregado dele foi demitido. Posso estar errado.

Nikolay, você pode fazer uma lista do que e como é desejável mudar no CCanvas padrão? Em sua opinião. Como está agora e como deveria estar. E por quê.

 
Artyom Trishkin #:

Nicholas, você pode fazer uma lista do que e como é desejável mudar no CCanvas padrão? Em sua opinião. Como está agora e como deveria estar. E por quê.

Precisamos de uma nova classe com menos funções do que no CCanvas. É melhor tornar essa classe o mais parecida possível com o JS Canvas, que não tem muitas funções em sua essência, para facilitar o aprendizado e a adoção, já que toda a TI está se voltando para a Web.
mas isso é o ideal.
Eu provavelmente poderia escrever algo assim, mas levaria pelo menos meio ano em tempo integral
embora, pessoalmente, eu não goste de tudo no JS Canvas, mas para a padronização seria correto implementar algo assim com pequenas alterações para dispensar a análise de strings.

ZY, mas para o trabalho normal, preciso refazer o modelo de eventos do MT5, pois ele é simplesmente horrível

Supõe-se que a tela no MT5 funcione duas vezes mais rápido que a tela JS. Mas para isso (para uma interface sem atrasos) você precisa mudar muitas coisas dentro do MT5, o que a Renat nunca fará.

HTML Canvas Reference
HTML Canvas Reference
  • www.w3schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
 
Nikolai Semko #:

Precisamos de uma nova classe com menos funções do que a CCanvas. É melhor tornar essa classe o mais parecida possível com o JS Can vas, que não tem muitas funções em sua essência, para facilitar o aprendizado e a adoção, já que toda a TI está se voltando para a Web.
mas isso é o ideal.
Eu mesmo poderia escrever algo assim, mas levaria pelo menos meio ano em tempo integral
embora, pessoalmente, eu não goste de tudo no JS Canvas, mas para padronização seria correto implementar algo semelhante com pequenas alterações para dispensar a análise de strings.

Mas, para o trabalho normal, precisamos refazer o modelo de eventos do MT5, pois ele é simplesmente horrível

Está claro que tudo está "sob controle", mas ainda assim a pergunta era um pouco diferente. O que é desejável alterar/refinar na classe existente...

 
Artyom Trishkin #:

Está claro que tudo está "sob controle", mas ainda assim a pergunta era um pouco diferente. O que é desejável mudar/melhorar na classe existente...

métodos suaves para dar vida a elas. Agora acho que existem até mesmo funções no CCanvas que não estão documentadas.