Dahil olmak üzere iki paralel çizgi arasındaki mesafeyi hesaplayın! - sayfa 3

 
Sergey Kolemanov :

Yüksek ve Düşük arasındaki mesafeyi sayıyorsunuz ve çizgileri var

Bunlar paralel çizgilerdir. Ve paralel çizgilerde, herhangi bir çubukta dikey mesafe her zaman aynıdır. Onun örneğinde, çizgiler arasındaki mesafe ( Yüksek [ 10 ]- Düşük [ 10 ]). Bunun için süreyi hiç hesaplamanıza gerek yok.

Kontrol edebilirsiniz - sonuç her zaman aynı olacaktır.

Daha genel bir formül burada

Ancak dakika tablosunda bile payda 1'e çok yakın olduğu için basitleştirilebilir:

 double R=(Price2-Price1);

Bu, @Renat Akhtyamov tarafından bu mesajda zaten haklı olarak söylenmiştir.

 
Sergey Kolemanov :
Açıya göre mesafe de değişecektir... O halde çizgiler arasındaki fark nedir? )
 
Itum :
Açıya göre mesafe de değişecektir... O halde çizgiler arasındaki fark nedir? )
Açıya bağlı olarak, tüm mesafeler katlar halinde değişecektir, çünkü bir dik üçgeniniz var. Bu nedenle, nerede ölçüleceği önemli değildir. Size göre en kolay mesafeyi ölçün.
 
Renat Akhtyamov :
Açıya bağlı olarak, tüm mesafeler katları değişecektir, çünkü bir dik üçgeniniz var. Bu nedenle, nerede ölçüleceği önemli değildir. Size göre en kolay mesafeyi ölçün.

Lütfen bir örnek gösterin.

 ObjectCreate ( "Line1" , OBJ_TRENDBYANGLE , 0 , Time [ 0 ], High [ 10 ], Time [ 10 ], Low [ 10 ]);
   ObjectSetInteger ( 0 , "Line1" , OBJPROP_STYLE , STYLE_SOLID );
   ObjectSetInteger ( 0 , "Line1" , OBJPROP_COLOR ,Red);
   ObjectSetInteger ( 0 , "Line1" , OBJPROP_WIDTH , 2 );
   
   ObjectCreate ( "Line2" , OBJ_TRENDBYANGLE , 0 , Time [ 10 ], High [ 100 ], Time [ 20 ], Low [ 10 ]);
   ObjectSetInteger ( 0 , "Line2" , OBJPROP_STYLE , STYLE_SOLID );
   ObjectSetInteger ( 0 , "Line2" , OBJPROP_COLOR ,Lime);
   ObjectSetInteger ( 0 , "Line2" , OBJPROP_WIDTH , 2 );

   ObjectSetDouble ( 0 , "Line1" , OBJPROP_ANGLE , 260 ); // 85 
   ObjectSetDouble ( 0 , "Line2" , OBJPROP_ANGLE , 260 ); // 85
/*   
   ObjectCreate ( "Value" , OBJ_TREND , 0 , Time [ 0 ], High [ 10 ], Time [ 10 ], High [ 10 ]);
   ObjectSetInteger ( 0 , "Value" , OBJPROP_RAY , false );
   ObjectSetInteger ( 0 , "Value" , OBJPROP_COLOR ,Gold);
   ObjectSetInteger ( 0 , "Value" , OBJPROP_WIDTH , 3 );
   */

// Предлагали сделать так и не помогает !

   double V = ( ObjectGetDouble ( 0 , "Line1" , OBJPROP_PRICE , 0 )- ObjectGetDouble ( 0 , "Line2" , OBJPROP_PRICE , 0 ))/(( datetime ) ObjectGetInteger ( 0 , "Line1" , OBJPROP_TIME , 0 )-( datetime ) ObjectGetInteger ( 0 , "Line2" , OBJPROP_TIME , 0 ));
   double R = ( ObjectGetDouble ( 0 , "Line1" , OBJPROP_PRICE , 0 )- ObjectGetDouble ( 0 , "Line2" , OBJPROP_PRICE , 0 ))/ sqrt ( 1 +V*V) ; 
   
   
   Comment ( "Разница: R=" ,R, " | " );

// Предлагали сделать и так и также не помогает !
   
   datetime t1 = ( datetime ) ObjectGetInteger ( 0 , "Line1" , OBJPROP_TIME , 0 );
   datetime t2 = ( datetime ) ObjectGetInteger ( 0 , "Line2" , OBJPROP_TIME , 0 );
   double p1 = 0 ;
   double p2 = 0 ;
   
   if (t1 > t2)
   {
      p1 = ObjectGetValueByTime ( 0 , "Line1" , t2);
      p2 = ObjectGetDouble ( 0 , "Line2" , OBJPROP_PRICE , 0 );
   }
   if (t1 < t2)
   {
      p1 = ObjectGetDouble ( 0 , "Line1" , OBJPROP_PRICE , 0 );
      p2 = ObjectGetValueByTime ( 0 , "Line2" , t1);;
   }
   if (t1 == t2)
   {
      p1 = ObjectGetDouble ( 0 , "Line1" , OBJPROP_PRICE , 0 );
      p2 = ObjectGetDouble ( 0 , "Line2" , OBJPROP_PRICE , 0 );
   }
   
   Comment ( "Разница: " + DoubleToString ( MathAbs (p1 - p2) / _Point , 0 ));
 
Itum :
Açıya göre mesafe de değişecektir... O halde çizgiler arasındaki fark nedir? )

İki paralel çizgi arasındaki mesafeyi belirlemeniz gerekiyor ve hangi değerde ifade edileceği önemli değil, asıl mesele bu değerin ölçek değişikliği ile değişmemesi mi?

Seni doğru anladım mı? Evet ise, kontrol ettiğiniz kodun tamamını gösterin ve bu sizin için çalışmıyor. Her şey benim için çalışıyor ve değer değişmiyor.

 
Itum :

Lütfen bir örnek gösterin.

 double Расстояние=ObjectGetValueByShift ( "Line1" ,0)- ObjectGetValueByShift ( "Line2" ,0);
Yani, Hat1 üstte ve Hat2 aşağıdaysa
 
Renat Akhtyamov :
Yani, Hat1 üstte ve Hat2 aşağıdaysa
Evet
 
Itum :
Evet

İsterseniz bunun altındakiler yerine benim hattımı deneyin

 // Предлагали сделать так и не помогает !

Bu mavi çizginin uzunluğu olacaktır:


 

Renat Akhtyamov :

double Расстояние=ObjectGetValueByShift ( "Line1" ,0)- ObjectGetValueByShift ( "Line2" ,0);

Hmmm... Biliyorsun, bu da yardımcı olmuyor)... Kodumu yukarıdan çalıştırmayı denedin... Bunlar istediğin sonuçlar değil.

Belki de her şeyi doğru anlatmıyorum.

 
Renat Akhtyamov :

İsterseniz bunun altındakiler yerine benim hattımı deneyin

Bu mavi çizginin uzunluğu olacaktır:


Bu doğru ... Ve kırmızı çizginin uzunluğuna ihtiyacım var. Düşünün, bu iki paralel çizgi dikey ise, mavi çizgi ne gösterecek? (Farklı açı, farklı uzunluk olacaktır)

Beyaz bir kağıda birbirinden 10 cm uzaklıkta iki paralel çizgi çizilirse ( Şekil 7) bu sayfa istediğiniz açıda bükülebilir ve aynı 10 cm olacaktır ( Şekil 6) .


Neden: