La toile est cool ! - page 63

 
Renat Akhtyamov:

Magnifique ! !!

Nikolaï, jetez le listing du code de la formation de la palette de couleurs de l'arc-en-ciel ici.

Si elle prend la forme d'une fonction, elle sera encore plus pratique.
Je l'ai fait plusieurs fois. Je ne suis pas devant mon ordinateur en ce moment.
Cette fonction s'appelle Grad.
Vous pouvez le trouver au moins dans l'after code de 3DSpiral.
 
Nikolai Semko:

Avarage mobile 3D
Je mettrai le code dans le Buy More demain.


Nikolaï, tu ne cesseras jamais de nous étonner !

 

Super !

 
Avant, ça tournait dans ma tête) maintenant tu peux le regarder. Une pensée intéressante, j'y ai réfléchi pendant quelques heures. Que pourrait signifier le comportement de l'axe z... ? On dirait des montagnes et une plaine devant. Comme le Caucase en Russie est le prix actuel et le reste du plateau est la moyenne...)
Mais lorsqu'elle est vue dans l'espace, elle s'avère être une distance le long de l'axe z. Mais la distance est dans quoi ? Bref, je n'ai pas encore trouvé d'anologue, mais je me demande si Nikolaï a fait exactement ce que j'ai vu dans ma tête☺.
 
Maxim Romanov:
Mais lorsqu'elle est vue dans l'espace, elle s'avère être une distance le long de l'axe z. Mais la distance dans quoi ?
Z est la période de la MA.
Dans ce cas, les trois dimensions ont des amplitudes différentes :
x - temps
y - prix
z est la période de calcul de la moyenne arithmétique
leurs plages sont simplement mises à l'échelle pour s'adapter à la taille de l'écran.
 

Forum sur le trading, les systèmes de trading automatisés et l'essai de stratégies de trading

Bibliothèques : Easy Canvas

Nikolai Semko, 2020.02.17 05:15

Je souhaite clarifier un point important pour les programmeurs intéressés par l'utilisation du kanvas en mode testeur.
Un programmeur bien connu dans cette communauté est venu me voir avec cette question :

- Pourquoi en mode Testeur mon panneau, créé sur des objets, est redessiné beaucoup plus rapidement que sur la toile, alors qu'en mode normal mon panneau est dessiné à une vitesse normale sur la toile ?

J'ai réussi à comprendre la raison du problème et sa solution.

Le problème est que le redécoupage des objets s'accompagne d'un redécoupage de l'ensemble de l'écran, alors que l'écran du testeur n'est redécoupé que 30 fois par seconde.

Les objets sont en fin de compte le même canevas (interne), mais lorsque vous modifiez les propriétés de l'objet, le canevas de l'objet n'est pas généré (pas recalculé), mais généré uniquement lorsque l'écran est mis à jour (ChartRedraw), ce qui se produit dans le testeur (et en mode normal, aussi) pas plus souvent que nos yeux peuvent distinguer les changements, c'est-à-dire pas plus souvent que ~ 32 images par seconde.

Supposons que le panneau change à chaque tick. Ensuite, le canevas par défaut sera également redessiné à chaque tick, mais le redessin dans le testeur n'est toujours pas plus fréquent que ~30 msec (~30 fps).

En d'autres termes, le canevas sera recalculé beaucoup plus fréquemment qu'il n'est réellement affiché à l'écran, ce qui entraîne une utilisation disproportionnée des ressources.

La solution à ce problème serait de s'assurer que le canevas est recalculé et redessiné au maximum toutes les 15-30 millisecondes de temps informatique, et ainsi il n'y aura pas de cycles inutiles de recalcul à vide.

Par exemple, comme ceci :

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

 
Nikolai Semko:

Cela devrait être posté dans le fil de discussion sur les fonctionnalités - utile.
 

Bonjour à tous, j'aimerais approfondir mes connaissances de Canvas

Je ne sais même pas par où commencer. En ce moment, j'imagine que Canvas, c'est des formules logarithmiques compliquées et des trucs comme ça.

Pouvez-vous me donner un exemple de comment faire un bouton comme ci-dessous sur le canevas. J'ai besoin du code pour le comprendre.


 
Vladimir Pastushak:

Bonjour à tous, j'aimerais approfondir mes connaissances sur Canvas

Je ne sais même pas par où commencer. En ce moment, j'imagine que Canvas, c'est des formules logarithmiques compliquées et des trucs comme ça.

Pouvez-vous me donner un exemple de comment faire un bouton sur un canevas comme ci-dessous. J'ai besoin du code pour le comprendre.


Il est plus facile d'utiliser un élément prêt à l'emploi. (sous forme d'image Png).

Il s'agit donc d'une ligne avec un virage, une autre ligne avec un autre virage, etc. - Puis une plus petite avec un remplissage sous forme de dégradé (c'est ainsi que vous définissez le remplissage).

Sur la toile, vous ne disposez que de rectangles et de cercles à bandes primitives avec la possibilité de dessiner le contour de notre figure ou de notre ligne, ou de le remplir.

Ainsi, par défaut, un rectangle est disponible qui est rempli immédiatement......

Il y a aussi une toile avec des points pour peindre vos primitives (étendre la classe).

Il a probablement écrit beaucoup de choses que vous connaissez déjà.


Il existe également un canevas 3D avec des matrices vectorielles.

Raison: