Come si calcola la lunghezza di una linea dalle coordinate? - pagina 9

 
AlexSTAL:

Come si ottiene la lunghezza della linea a zig zag (lunghezza d'onda in sostanza) in qualsiasi unità, conoscendo le coordinate di due punti?

Necessità di confrontare le lunghezze d'onda dei due in percentuale

È abbastanza semplice da risolvere - è necessario utilizzare le funzioni GDI

Ecco un esempio ancora più complicato: il calcolo della pendenza del MA. Si usano le distanze dei pixel


#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; // равняем относительно оси Х
}


Nelle versioni successive, ho usato dei coefficienti di normalizzazione per mantenere il valore dell'angolo invariato quando si ingrandisce o si riduce il grafico. Ma ora non riesco a trovarli.

 

Questo è quello di cui parlavo, ma ho dimenticato l'API (mi serviva troppo raramente):

AlexSTAL:

Se si potesse ottenere la dimensione del grafico in pixel - non ci sarebbero problemi. Ci sono operatori che ottengono il prezzo minimo e massimo, ci sono operatori che ottengono il numero di barre sullo schermo. Tradurli in unità condizionali non è un problema


Ancora una volta molte grazie ad Alexey, un vero professionista!

 

Naturalmente sono in ritardo nella discussione.

Domanda per il matematico:

In quali unità si ottiene l'ipotenusa di tale triangolo se è parallela all'asse del pappagallo? In quali unità erano le lunghezze dei cateti?

E nel merito della questione, penso che sia necessario contare la lunghezza non in battute, ma in tempo. L'orizzonte temporale minimo è M1 - significa che il tempo è misurato in modo discreto con incrementi di 1 minuto. Questo è il numero di minuti e deve essere preso come la lunghezza di uno dei cateti. Questo approccio garantisce la stessa lunghezza del cateto in tempi diversi e non dipende dalla scalatura nel terminale.

 
api:

Naturalmente sono in ritardo nella discussione.

Domanda per il matematico:

In quali unità si ottiene l'ipotenusa di tale triangolo se è parallela all'asse del pappagallo? In quali unità erano le lunghezze dei cateti?

E nel merito della questione, penso che sia necessario contare la lunghezza non in battute, ma in tempo. L'orizzonte temporale minimo è M1 - significa che il tempo è misurato in modo discreto con incrementi di 1 minuto. Questo è il numero di minuti e deve essere preso come la lunghezza di uno dei cateti. Questo approccio garantisce la stessa lunghezza del cateto in tempi diversi e non dipende dalla scalatura nel terminale.

Non sono un matematico, ma vi chiedo: in quali unità misurate le lunghezze dei cateti?
 
sanyooooook:
Non sono un matematico, ma vi chiedo: in quali unità misurate le lunghezze dei cateti?

La stessa lunghezza dell'ipotenusa!
 
api:

La stessa lunghezza dell'ipotenusa!
cioè la radice quadrata di: il quadrato dei pappagalli più il quadrato dei pappagalli, e cosa ha a che fare questo con le mele?
 
sanyooooook:
cioè la radice quadrata di: il quadrato dei pappagalli più il quadrato dei pappagalli, e cosa ha a che fare questo con le mele?

L'immagine non ha alcun senso.
 
sergeev:

Nelle versioni successive, aggiungevo dei coefficienti di normalizzazione, in modo che quando si cambia la scala del grafico, i valori degli angoli non cambiano. Ma ora non riesco a trovarli.

Perché tutto questo ballare (con i pixel) allora?

Aggiungere un coefficiente per portare la seconda ipotenusa a circa lo stesso ordine della prima e... Teorema di Pitagora. È chiaro che il risultato non sarà misurato né in secondi, né in barre o in pixel, sarà solo un numero, ma permetterà di confrontare segmenti separati tra loro e con i parametri dati (e il risultato sarà concreto e onomatologico, con un valore di coefficiente costante), il che è sufficiente per la soluzione del compito. Non ci sono altre opzioni.

 
sanyooooook:
cioè la radice quadrata di: il quadrato dei pappagalli più il quadrato dei pappagalli, e cosa ha a che fare questo con le mele?

Non proprio.

È uno spazio astratto e non ha niente a che vedere con lo spazio reale e non ne è una proiezione. Per dimostrarlo, immaginate un qualsiasi oggetto in questo spazio, come un pappagallo posizionato in modo che la sua linea di crescita sia parallela all'asse del pappagallo. Guardandolo dalla parte dell'asse del pappagallo si vede un pappagallo intero, e guardandolo dalla parte dell'asse della mela si vede una parte di una mela o diverse mele - non importa. Da questo lato non si vede il pappagallo. Ora gira il pappagallo in modo che la sua linea di crescita sia parallela all'asse delle mele. In questo caso, osservando il pappagallo dall'asse delle mele, si vedrà.... Proprio così: poche mele e nessun pappagallo. E sul lato dell'asse dei pappagalli si osserva... beh, diciamo - una "ala di pappagallo", per usare il linguaggio di un famoso personaggio dei cartoni animati.

Questo è uno spazio così complicato, che tuttavia obbedisce alla legge di Pitagora.

Ma nel nostro caso nessuno ruota i grafici e il prezzo rimane il prezzo e il tempo rimane il tempo.

 
Mischek:

L'immagine non ha alcun senso
)
Motivazione: