Como se calcula o comprimento de uma linha a partir das coordenadas? - página 9

 
AlexSTAL:

Como obter o comprimento da linha em ziguezague (comprimento de onda em essência) em qualquer unidade, conhecendo as coordenadas dos dois pontos?

Necessidade de comparar os comprimentos de onda dos dois como uma porcentagem

É bastante simples de resolver - você precisa usar as funções GDI

Aqui está um exemplo ainda mais complicado: o cálculo da inclinação da MA. São usadas distâncias de 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; // равняем относительно оси Х
}


Em versões posteriores, usei coeficientes normalizadores para manter o valor do ângulo inalterado ao fazer zoom in e out do gráfico. Mas agora eu não consigo encontrá-los.

 

Era disso que eu estava falando, mas esqueci tudo sobre o API (eu precisava dele muito raramente):

AlexSTAL:

Se você pudesse obter o tamanho do gráfico em pixels - não haveria problema. Há operadores que recebem o preço mínimo e máximo, há operadores que recebem o número de barras na tela. Traduzi-los em unidades condicionais não é um problema


Mais uma vez, muito obrigado a Alexey, um verdadeiro profissional!

 

Estou, é claro, atrasado para a discussão.

Pergunta para o matemático:

Em que unidades é obtida a hipotenusa de tal triângulo, se for paralela ao eixo do papagaio? Em que unidades se encontravam os comprimentos dos catafetos?

E sobre os méritos da pergunta, acho que é necessário contar o comprimento não em barras, mas no tempo. O tempo mínimo é M1 - significa que o tempo é medido discretamente com incrementos de 1 minuto. Este é o número de minutos e deve ser tomado como a duração de um dos catárticos. Esta abordagem garante o mesmo comprimento do cateto em diferentes intervalos de tempo e não depende da escala no terminal.

 
api:

Estou, é claro, atrasado para a discussão.

Pergunta para o matemático:

Em que unidades é obtida a hipotenusa de tal triângulo se ela é paralela ao eixo do papagaio? Em que unidades se encontravam os comprimentos dos catafetos?

E sobre os méritos da pergunta, acho que é necessário contar o comprimento não em barras, mas no tempo. O tempo mínimo é M1 - portanto, o tempo é medido discretamente com incrementos de 1 minuto. Este é o número de minutos e deve ser tomado como a duração de um dos catárticos. Esta abordagem garante o mesmo comprimento do cateto em diferentes intervalos de tempo e não depende da escala no terminal.

Não sou matemático, mas vou perguntar, em que unidades você mede os comprimentos dos catetos?
 
sanyooooook:
Não sou matemático, mas vou perguntar, em que unidades você mede os comprimentos dos catetos?

O mesmo que o comprimento da hipotenusa!
 
api:

O mesmo que o comprimento da hipotenusa!
ou seja, a raiz quadrada de: o quadrado dos papagaios mais o quadrado dos papagaios, e o que isso tem a ver com as maçãs?
 
sanyooooook:
ou seja, a raiz quadrada de: o quadrado dos papagaios mais o quadrado dos papagaios, e o que isso tem a ver com as maçãs?

O quadro não faz nenhum sentido.
 
sergeev:

Em versões posteriores, eu costumava acrescentar coeficientes de normalização, para que, quando se muda a escala do gráfico, os valores angulares não mudem. Mas não consigo encontrá-los agora.

Por que então toda essa dança ao redor (com pixels)?

Adicionar um coeficiente para levar a segunda hipotenusa à mesma ordem que a primeira e... Teorema de Pitágoras. É claro que o resultado não será medido nem em segundos, nem em barras ou em pixels, será apenas um número, mas permitirá comparar segmentos separados entre si e com os parâmetros dados (e o resultado será concreto e onomatológico, com um valor de coeficiente constante), o que é suficiente para a solução da tarefa. Não há outras opções.

 
sanyooooook:
ou seja, a raiz quadrada de: o quadrado dos papagaios mais o quadrado dos papagaios, e o que isso tem a ver com as maçãs?

Na verdade, não.

É um espaço abstrato e não tem nada a ver com o espaço real e não é uma projeção dele. Para provar isto, imagine qualquer objeto neste espaço, como um papagaio posicionado de modo que sua linha de crescimento seja paralela ao eixo do papagaio. Olhando para ele do lado do eixo do papagaio você vê um papagaio inteiro, e olhando para ele do lado do eixo da maçã você vê alguma parte de uma maçã ou várias maçãs - não importa. Deste lado você não vê o papagaio. Agora vire o papagaio de modo que sua linha de crescimento seja paralela ao eixo das maçãs. Neste caso, observando o papagaio a partir do eixo das maçãs, você verá.... É isso mesmo - algumas maçãs e nenhum papagaio. E no lado do eixo dos papagaios você observará... bem, digamos - uma "asa de papagaio", para usar a linguagem de um famoso personagem de desenho animado.

Este é um espaço tão complicado, que no entanto obedece à lei de Pitágoras.

Mas em nosso caso ninguém gira os gráficos e o preço permanece o preço e o tempo permanece o tempo.

 
Mischek:

O quadro não faz sentido algum
)