El lienzo es genial. - página 92

 
Nikolai Semko #:

Nikolai, ¿es apropiado hacer preguntas DX aquí? Necesito ayuda.

He hecho algunos retoques con los códigos estándar del terminal, que demuestran las posibilidades de los gráficos 3D. He quitado morphing, por supuesto, es torpe.

La cuestión es la siguiente, necesito dibujar puntos en la superficie al optimizar la función de prueba, no consigo averiguar cómo hacerlo.

Debería salir algo así:

Archivos adjuntos:
 
Nikolai Semko #:

Personalmente, necesito kanvas ante todo para desarrollar algoritmos complejos. Sin visualizaciones intermedias de procesos y datos, es mucho más difícil y largo hacerlo.

De hecho, en algunas fases del desarrollo puede ser necesario visualizar los procesos

 
Andrey Dik #:

Nikolai, ¿es apropiado hacer preguntas DX aquí? Necesito ayuda.

He hecho algunos retoques con los códigos estándar del terminal, que demuestran las posibilidades de los gráficos 3D. He quitado morphing, por supuesto, es torpe.

La cuestión es la siguiente, necesito dibujar puntos en la superficie al optimizar la función de prueba, no consigo averiguar cómo hacerlo.

Debería salir algo así:

Bueno, si usted necesita puntos en el espacio con coordenadas x,y,z, entonces todo es simple y sin DirectX y OpenCL( aunque con ellos será más productivo, por supuesto).
Máximo cerca de este tema en este ejemplo:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501
 
Nikolai Semko #:
Bueno, si usted necesita puntos en el espacio con coordenadas x,y,z, entonces todo es simple y sin DirectX y OpenCL (aunque con ellos será más productivo, por supuesto).
Máximo cerca de este tema en este ejemplo:
Gracias, lo probaré. Luego te cuento lo que he conseguido.
 
Andrey Dik #:
Gracias, lo intentaré. Informaré más tarde de lo que he conseguido.
Si hay varias decenas de miles de puntos, no debería haber retrasos, si hay cientos de miles de puntos, es mejor hacer la parte de cálculo usando OpenCl.
Las funciones trigonométricas (sen, cos) son las que consumen más recursos. Así que tiene sentido usar tus propias tablas de estas funciones en caso de lags, como me di cuenta en el primer ejemplo de esta rama.
 
Nikolai Semko #:
Si hay varias decenas de miles de puntos, no debería haber retrasos, si hay cientos de miles, es mejor hacer la parte de cálculo con OpenCl.
Las funciones trigonométricas (sen, cos) son las que consumen más recursos. Así que tiene sentido usar tus propias tablas de estas funciones en caso de lags, como me di cuenta en el primer ejemplo de esta rama.
Me temo que con un número pequeño de puntos una superficie continua no funcionará, parecerá un colador.
Creo que entiendo el principio en el ejemplo, voy a mostrar lo que tengo.
 
Andrey Dik #:
Me temo que con un número reducido de puntos no funcionará una superficie continua, parecerá un colador.
Entiendo el principio en el ejemplo, voy a mostrar lo que tengo.

Sí, por desgracia mis temores estaban justificados.


 
Andrey Dik #:

Sí, los temores estaban desgraciadamente justificados.


Envíeme su matriz de puntos 3d a través de FileWriteArray
 
Nikolai Semko #:
Dejame tu array de puntos 3d via FileWriteArray
No estoy seguro de cómo hacerlo, pero la fórmula de la superficie es así:

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 #:
No estoy seguro de cómo hacerlo, pero la fórmula de superficie es así:

.

Andrei, ¿sólo quieres obtener una imagen o quieres obtener una imagen en MQL5?
Puedo visualizarlo fácilmente, pero hay herramientas más avanzadas para la visualización.
Por ejemplo, aquí está tu fórmula como se ve en este recurso:
https://www.desmos.com/3d/887356da26.

Razón de la queja: