Comment calculer la longueur d'une ligne à partir de ses coordonnées ? - page 9

 
AlexSTAL:

Comment obtenir la longueur d'une ligne en zigzag (longueur d'onde en substance) dans n'importe quelle unité, en connaissant les coordonnées de deux points ?

J'ai besoin de comparer les longueurs d'onde des deux en pourcentage.

C'est assez simple à résoudre - vous devez utiliser les fonctions GDI.

Voici un exemple encore plus compliqué : le calcul de la pente du MA. Les distances entre les pixels sont utilisées


#import "user32.dll"
        int GetWindowDC(int dc);
        bool GetWindowRect(int h, int& pos[4]);
        int ReleaseDC(int h, int dc);
#import

//---------------------------------------------------------------   CheckAngle
int CheckAngle(string smb, int tf, int iB)
{
  double p1, p2, ang;
  p1=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB+1);
  p2=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB);

  int hWnd=WindowHandle(Symbol(), Period()); int hDC=GetWindowDC(hWnd); // получаем хендл окна
  int rect[4]; GetWindowRect(hWnd, rect); ReleaseDC(hWnd, hDC);   // берем его DC
  double wW=rect[2]-rect[0]; double wH=rect[3]-rect[1];           // получаем высоту и ширину в пикселях
  double H=(WindowPriceMax()-WindowPriceMin()); double W=WindowBarsPerChart(); // переводим на график
  double x=wW/W; double y=((p2-p1))*wH/H;                         // определяем катеты
  ang=MathArctan(y/x)*180/3.1415926535; if (ang>180) ang=ang-360; // равняем относительно оси Х
}


Dans les versions ultérieures, j'ai utilisé des coefficients de normalisation pour que la valeur de l'angle reste inchangée lors du zoom avant et arrière du graphique. Mais maintenant, je ne peux pas les trouver.

 

C'est ce dont je parlais, mais j'ai oublié l'API (j'en avais trop rarement besoin) :

AlexSTAL:

Si vous pouviez obtenir la taille du graphique en pixels - il n'y aurait aucun problème. Il y a des opérateurs qui obtiennent le prix minimum et maximum, il y a des opérateurs qui obtiennent le nombre de barres sur l'écran. Les traduire en unités conditionnelles ne pose pas de problème.


Encore une fois, un grand merci à Alexey, un vrai professionnel !

 

Je suis bien sûr en retard dans la discussion.

Question pour le mathématicien :

Dans quelles unités est obtenue l'hypoténuse d'un tel triangle si elle est parallèle à l'axe du perroquet ? En quelles unités étaient les longueurs des cathéters ?

Et sur le fond de la question, je pense qu'il faut compter la longueur non pas en mesures, mais en temps. Le délai minimum est M1 - cela signifie que le temps est mesuré de manière discrète avec des incréments d'une minute. Il s'agit du nombre de minutes et doit être considéré comme la durée d'un des cathéters. Cette approche garantit la même longueur du cathetus à différents moments et ne dépend pas de l'échelonnement dans le terminal.

 
api:

Je suis bien sûr en retard dans la discussion.

Question pour le mathématicien :

Dans quelles unités est obtenue l'hypoténuse d'un tel triangle si elle est parallèle à l'axe du perroquet ? En quelles unités étaient les longueurs des cathéters ?

Et sur le fond de la question, je pense qu'il faut compter la longueur non pas en mesures, mais en temps. Le cadre temporel minimum est M1 - cela signifie que le temps est mesuré de manière discrète avec des incréments d'une minute. Il s'agit du nombre de minutes et doit être considéré comme la durée d'un des cathéters. Cette approche garantit la même longueur du cathetus à différents moments et ne dépend pas de l'échelonnement dans le terminal.

Je ne suis pas mathématicien, mais je demande : en quelles unités mesurez-vous la longueur des cathéters ?
 
sanyooooook:
Je ne suis pas mathématicien, mais je demande : en quelles unités mesurez-vous la longueur des cathéters ?

La même que la longueur de l'hypoténuse !
 
api:

La même que la longueur de l'hypoténuse !
c'est-à-dire la racine carrée de : le carré des perroquets plus le carré des perroquets, et quel est le rapport avec les pommes ?
 
sanyooooook:
c'est-à-dire la racine carrée de : le carré des perroquets plus le carré des perroquets, et quel est le rapport avec les pommes ?

L'image n'a aucun sens.
 
sergeev:

Dans les versions ultérieures, j'avais l'habitude d'ajouter des coefficients de normalisation, de sorte que lorsque vous changez l'échelle du graphique, les valeurs d'angle ne changent pas. Mais je ne peux pas les trouver maintenant.

Pourquoi cette danse (avec des pixels) alors ?

Ajoutez un coefficient pour que la seconde hypoténuse soit à peu près du même ordre que la première et... Le théorème de Pythagore. Il est clair que le résultat ne sera pas mesuré en secondes, ni en barres ou en pixels, ce sera juste un nombre, mais il permettra de comparer des segments séparés entre eux et avec les paramètres donnés (et le résultat sera concret et onomatologique, avec une valeur de coefficient constante), ce qui est suffisant pour la solution de la tâche. Il n'y a pas d'autres options.

 
sanyooooook:
c'est-à-dire la racine carrée de : le carré des perroquets plus le carré des perroquets, et quel est le rapport avec les pommes ?

Pas vraiment.

C'est un espace abstrait qui n'a rien à voir avec l'espace réel et n'en est pas une projection. Pour le prouver, imaginez un objet quelconque dans cet espace, par exemple un perroquet positionné de telle sorte que sa ligne de croissance soit parallèle à l'axe du perroquet. En la regardant du côté de l'axe du perroquet, vous voyez un perroquet entier, et en la regardant du côté de l'axe de la pomme, vous voyez une partie d'une pomme ou plusieurs pommes - peu importe. De ce côté, on ne voit pas le perroquet. Tournez maintenant le perroquet de façon à ce que sa ligne de croissance soit parallèle à l'axe des pommes. Dans ce cas, en observant le perroquet depuis l'axe des pommes, vous verrez.... C'est vrai - quelques pommes et pas de perroquets. Et du côté de l'axe des perroquets, vous observerez... disons - une "aile de perroquet", pour reprendre le langage d'un célèbre personnage de dessin animé.

C'est un espace si délicat, qui obéit pourtant à la loi de Pythagore.

Mais dans notre cas, personne ne fait tourner les graphiques et le prix reste le prix et le temps reste le temps.

 
Mischek:

L'image n'a aucun sens
)