Koordinatlardan çizgi uzunluğu nasıl hesaplanır? - sayfa 9

 
AlexSTAL :

İki noktanın koordinatlarını bilerek, herhangi bir birimde zikzak çizgisinin uzunluğu (aslında dalga boyu) nasıl elde edilir?

Yüzde olarak iki dalganın uzunluklarını karşılaştırmak için gerekli

her şey oldukça basit bir şekilde çözüldü - GDI işlevlerine dönmeniz gerekiyor

İşte daha da karmaşık bir örnek - MA eğim açısının hesaplanması. Piksel mesafeleri kullanılır


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


sonraki sürümlerde, grafik ölçeği değiştiğinde açı değerlerinin değişmemesi için normalleştirme katsayıları ekledim. Ama şimdi bulamıyorum.

 

İçinde! Bahsettiğim şey, ancak API'yi tamamen unuttum (çok nadiren ihtiyacım vardı):

AlexSTAL :

Grafiğin boyutunu piksel olarak almak mümkün olsaydı, sorun olmazdı. Minimum ve maksimum fiyatı alan operatörler vardır ve ekranda çubuk sayısı vardır. Bunları keyfi birimlere dönüştürmek sorun değil


Gerçek bir profesyonel Alexey'e bir kez daha çok teşekkürler!

 

Tabii ki tartışmaya geç kaldım.

Matematikçiye Soru:

Papağanların eksenine paralel ise, böyle bir üçgenin hipotenüsü hangi birimlerde elde edilir? Bacakların uzunlukları hangi birimlerdeydi?

Ve konunun esası hakkında, uzunluğu çubuklarda değil, zamanla düşünmek gerektiğini düşünüyorum. Minimum zaman çerçevesi M1'dir - bu, zamanın 1 dakikalık artışlarla ayrı ayrı ölçüldüğü anlamına gelir. İşte dakika sayısı ve bacaklardan birinin uzunluğu olarak alınmalıdır. Bu yaklaşım, farklı zaman dilimlerinde aynı bacak uzunluğunu garanti eder ve terminaldeki ölçeklendirmeye bağlı değildir.

 
api :

Tabii ki tartışmaya geç kaldım.

Matematikçiye Soru:

Papağanların eksenine paralel ise, böyle bir üçgenin hipotenüsü hangi birimlerde elde edilir? Bacakların uzunlukları hangi birimlerdeydi?

Ve sorunun esasına göre, uzunluğu çubuk olarak değil, zamanla düşünmek gerektiğini düşünüyorum. Minimum zaman çerçevesi M1'dir - bu, zamanın 1 dakikalık artışlarla ayrı ayrı ölçüldüğü anlamına gelir. İşte dakika sayısı ve bacaklardan birinin uzunluğu olarak alınmalıdır. Bu yaklaşım, farklı zaman dilimlerinde aynı bacak uzunluğunu garanti eder ve terminaldeki ölçeklendirmeye bağlı değildir.

Matematikçi değilim, ama soracağım, bacakların uzunluklarını hangi birimlerle ölçüyorsunuz?
 
sanyooooook :
Matematikçi değilim, ama soracağım, bacakların uzunluklarını hangi birimlerle ölçüyorsunuz?

Hipotenüsün uzunluğu ile aynı!
 
api :

Hipotenüsün uzunluğu ile aynı!
onlar. karekökü: papağanların karesi artı papağanların karesi ve elmalar nerede?
 
sanyooooook :
onlar. karekökü: papağanların karesi artı papağanların karesi ve elmalar nerede?

Resim hiç mantıklı değil.
 
sergeev :

sonraki sürümlerde, grafik ölçeği değiştiğinde açı değerlerinin değişmemesi için normalleştirme katsayıları ekledim. Ama şimdi bulamıyorum.

O zaman neden tüm bu danslar bir tefle (piksellerle)?

İkinci hipotenüsü birinci ve... Pisagor teoremi ile aynı sıraya getirmek için bir faktör ekleyin. Sonucun ne saniyeler, ne çubuklar, ne de pikseller cinsinden ölçülmemesi hiç de mantıklı değil, sadece bir sayı olacak, ancak tek tek segmentleri hem birbirleriyle hem de verilen parametrelerle karşılaştırmanıza izin verecek (bunda durumda, sonuç, gizli problemi çözmek için yeterli olan sabit katsayı değeri ile spesifik ve açık olacaktır. Başka seçenek yok.

 
sanyooooook :
onlar. karekökü: papağanların karesi artı papağanların karesi ve elmalar nerede?

Tam olarak değil.

Bu soyut bir uzaydır ve gerçek uzayla hiçbir ilgisi yoktur ve onun izdüşümü değildir. Bunu kanıtlamak için, bu uzayda, büyüme çizgisi papağanların eksenine paralel olacak şekilde yerleştirilmiş bir papağan gibi herhangi bir nesne hayal edin. Papağan ekseninin yanından baktığınızda bütün bir papağan görürsünüz ve ona elma ekseninin yanından baktığınızda bir elmanın bir kısmını veya birkaç elma görürsünüz - önemli değil. Bu taraftan papağan göremezsiniz. Şimdi papağanı, büyüme çizgisi elmaların eksenine paralel olacak şekilde çevirin. Bu durumda, papağanı elma ekseninin yanından izlerken göreceksiniz.... Bu doğru - birkaç elma ve papağan yok. Ve papağanların ekseninin yanından gözlemleyeceksiniz ... peki, diyelim ki - ünlü bir çizgi film karakterinin dilinde "papağan kanadı".

Bu, yine de Pisagor yasasına uyan çok zor bir alandır.

Ama bizim durumumuzda, hiç kimse tabloları döndürmez ve fiyat fiyat olarak kalır ve zaman zaman olarak kalır.

 
Mischek :

Resim hiç mantıklı değil.
)