El lienzo es genial. - página 63

 
Renat Akhtyamov:

¡¡¡Precioso!!!

Nikolai, por favor, lanza el listado de códigos de la formación de la paleta de colores del arco iris aquí

Si es en forma de función, será aún más práctico
Lo he hecho muchas veces. No estoy en mi ordenador en este momento.
La función se llama Grad.
Puedes encontrarlo al menos en el código posterior de 3DSpiral
 
Nikolai Semko:

Avarage 3D en movimiento
Mañana pondré el código en el Buy More.


Nikolai, ¡nunca dejas de sorprender!

 

¡Genial!

 
Solía girar en mi cabeza) ahora puedes mirarlo. Una idea interesante, lo he pensado durante un par de horas. ¿Qué podría significar el comportamiento del eje z...? Parece que hay montañas y una llanura delante. Como el Cáucaso en Rusia es el precio actual y el resto de la meseta es la media...)
Pero cuando se ve en el espacio, resulta ser una distancia a lo largo del eje z. ¿Pero la distancia está en qué? De todos modos, aún no se me ha ocurrido ningún anólogo, pero me pregunto si Nikolai hizo exactamente lo que vi en mi cabeza☺
 
Maxim Romanov:
Pero cuando se ve en el espacio, resulta ser una distancia a lo largo del eje z. Pero, ¿distancia en qué?
Z es el período de la MA.
En este caso, las tres dimensiones tienen magnitudes diferentes:
x - tiempo
y - precio
z es el período de cálculo de la media aritmética
sus rangos son simplemente escalados para ajustarse al tamaño de la pantalla.
 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bibliotecas: Easy Canvas

Nikolai Semko, 2020.02.17 05:15

Quiero aclarar un punto importante para los programadores interesados en el funcionamiento del kanvas en modo tester.
Un conocido programador de esta comunidad se dirigió a mí con esta pregunta:

- ¿Por qué en el modo de prueba mi panel, creado en objetos, se redibuja mucho más rápido que en el lienzo, mientras que en el modo normal mi panel se dibuja a velocidad normal en el lienzo?

He conseguido entender el motivo del problema y su solución.

El problema es que el redibujado de los objetos va acompañado del redibujado de toda la pantalla, mientras que la pantalla en el probador no se redibuja con más frecuencia que 30 fotogramas por segundo.

Los objetos son, en última instancia, el mismo lienzo (interno), pero cuando se cambian las propiedades del objeto, el lienzo del objeto no se genera (no se recalcula), sino que se genera sólo cuando se actualiza la pantalla (ChartRedraw), lo que ocurre en el probador (y en el modo normal, también) no más a menudo de lo que nuestros ojos pueden distinguir los cambios, es decir, no más a menudo que ~ 32 cuadros por segundo.

Supongamos que el panel cambia cada tick. Entonces el lienzo por defecto también se redibujará cada tick, pero el redibujado en el probador sigue siendo no más frecuente que ~30 mseg (~30 fps).

En otras palabras, el lienzo se volverá a calcular con mucha más frecuencia de la que realmente se muestra en la pantalla, lo que supone un uso desproporcionado de recursos.

La solución a este problema sería asegurar que el lienzo se recalcule y redibuje no más a menudo que cada 15-30 milisegundos de tiempo de computación, y entonces no habrá ciclos innecesarios de recálculo vacío.

Por ejemplo, así:

void OnTick()
  {
  static uint lastCalc=0;
  uint cur=GetTickCount();
  if (cur-lastCalc>15) {
    ReDrawMyCanvas();
    lastCalc=cur;
   }
  }

 
Nikolai Semko:

Esto debería publicarse en el hilo de características - útil.
 

Hola a todos, me gustaría profundizar en mis conocimientos sobre Canvas

No sé ni por dónde empezar. Ahora mismo me estoy imaginando que Canvas son complicadas fórmulas logarítmicas y cosas así.

Me puedes dar un ejemplo de cómo hacer un botón como el de abajo en el lienzo. Necesito el código para entenderlo.


 
Vladimir Pastushak:

Hola a todos, me gustaría profundizar en mis conocimientos sobre Canvas

No sé ni por dónde empezar. Ahora mismo me estoy imaginando que Canvas son complicadas fórmulas logarítmicas y cosas así.

Me pueden decir cómo hacer un botón como el de abajo en un lienzo como ejemplo. Necesito el código para entenderlo.


Es más fácil utilizar un elemento ya hecho. (como imagen Png).

Así que es una línea con una vuelta otra línea más vuelta, etc. - Luego uno más pequeño con un relleno en forma de degradado (así se define el relleno).

En el lienzo sólo tienes unas rayas primitivas rectángulos y círculos con la posibilidad de dibujar el contorno de nuestra figura o línea, o rellenarla.

Así, por defecto, se dispone de un rectángulo que se rellena inmediatamente.....

También hay un lienzo con puntos para pintar sus primitivas (ampliar la clase).

Probablemente escribió muchas cosas que ya conoces.


También hay un lienzo 3D con matrices vectoriales