A lona é legal! - página 92

 
Nikolai Semko #:

Nikolai, é apropriado fazer perguntas sobre DX aqui? Preciso de ajuda.

Fiz alguns ajustes nos códigos de terminal padrão, que demonstram as possibilidades dos gráficos 3D. Removi o morphing, é claro, ele é desajeitado.

A questão é a seguinte: preciso desenhar pontos na superfície ao otimizar a função de teste, mas não consigo descobrir como fazer isso.

O resultado deve ser mais ou menos assim:

Arquivos anexados:
 
Nikolai Semko #:

Pessoalmente, preciso do Kanvas antes de tudo para desenvolver algoritmos complexos. Sem visualizações intermediárias de processos e dados, é muito mais difícil e demorado fazer isso.

De fato, em alguns estágios de desenvolvimento, pode ser necessário visualizar os processos

 
Andrey Dik #:

Nikolai, é apropriado fazer perguntas sobre DX aqui? Preciso de ajuda.

Fiz alguns ajustes nos códigos de terminal padrão, que demonstram as possibilidades dos gráficos 3D. Removi o morphing, é claro, ele é desajeitado.

A questão é a seguinte: preciso desenhar pontos na superfície ao otimizar a função de teste, mas não consigo descobrir como fazer isso.

O resultado deve ser mais ou menos assim:

Bem, se você precisa de pontos no espaço com coordenadas x,y,z, então tudo é simples e sem DirectX e OpenCL (embora com eles seja mais produtivo, é claro).
Máximo próximo a esse tópico neste exemplo:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501
 
Nikolai Semko #:
Bem, se você precisar de pontos no espaço com coordenadas x,y,z, então tudo é simples e sem DirectX e OpenCL (embora com eles seja mais produtivo, é claro).
O máximo possível sobre esse tópico neste exemplo:
Obrigado, vou tentar. Mais tarde, eu lhe direi o que consegui.
 
Andrey Dik #:
Obrigado, vou tentar. Mais tarde, informarei o que obtive.
Se houver várias dezenas de milhares de pontos, não deve haver atrasos; se houver centenas de milhares de pontos, é melhor fazer a parte do cálculo usando o OpenCl.
As funções trigonométricas (sin, cos) são as que mais consomem recursos. Portanto, faz sentido usar suas próprias tabelas dessas funções em caso de defasagens, como percebi no primeiro exemplo desta ramificação.
 
Nikolai Semko #:
Se houver várias dezenas de milhares de pontos, não deve haver atrasos; se houver centenas de milhares, é melhor fazer a parte do cálculo usando o OpenCl.
As funções trigonométricas (sin, cos) são as que mais consomem recursos. Portanto, faz sentido usar suas próprias tabelas dessas funções em caso de defasagens, como percebi no primeiro exemplo desta ramificação.
Receio que, com um pequeno número de pontos, uma superfície contínua não funcione, pois parecerá uma peneira.
Acho que entendi o princípio do exemplo, vou lhe mostrar o que consegui.
 
Andrey Dik #:
Receio que, com um pequeno número de pontos, uma superfície contínua não funcione, pois parecerá uma peneira.
Entendo o princípio do exemplo, vou lhe mostrar o que consegui.

Sim, infelizmente meus temores eram justificados.


 
Andrey Dik #:

Sim, infelizmente, os temores eram justificados.


Envie-me sua matriz de pontos 3d via FileWriteArray
 
Nikolai Semko #:
Envie-me sua matriz de pontos 3D por meio de FileWriteArray
Não tenho certeza de como fazer isso, mas a fórmula da superfície é a seguinte:

double Z (double x, double y)
  {
    double res =
    20.0 + x*x + y*y - 10.0 * cos (2.0 * M_PI * x) - 10.0 * cos (2.0 * M_PI * y)
    - 40.0  * exp (-(pow (x - 1.0, 2) + y*y) / 0.1)
    + 200.0 * exp (-(pow (x + M_PI * 0.47, 2) + pow (y - M_PI * 0.2, 2)) / 0.1)  //global max
    + 100.0 * exp (-(pow (x - 0.5, 2) + pow (y + 0.5, 2)) / 0.01)
    - 60.0  * exp (-(pow (x - 1.5, 2) + pow (y - 2.0, 2)) / 0.02)                //global min
    - 50.0  * exp (-(pow (x + 1.3, 2) + pow (y + 0.2, 2)) / 0.5)
    + 60.0  * exp (-(pow (x - 1.5, 2) + pow (y + 1.5, 2)) / 0.1);

    return res;
  }
 
Andrey Dik #:
Não tenho certeza de como fazer isso, mas a fórmula da superfície é a seguinte:

.

Andrei, você deseja apenas obter uma imagem ou deseja obter uma imagem em MQL5?
Posso visualizá-la facilmente, mas há ferramentas mais avançadas para visualização.
Por exemplo, aqui está sua fórmula como aparece neste recurso:
https://www.desmos.com/3d/887356da26.