Rengi gölgelere ayırma işlevi. - sayfa 10

 
Реter Konow :

Nikolai, anaokulu gibi. "4 kat daha hızlı" ifadesi kanıtlanmadığı için geçerli değildir.


  1. MT5'teki çözümünüzün sürümünüzdeki satırı yorumlayın ve farkı göreceksiniz.

Bu çizgi nedense tüm dikdörtgenin çizimini etkiler. Ama bu benim hatam değil. Kontrol etmek.

Görünen o aksaklıkları anlamaya devam ediyorum. Algoritmam nedeniyle geçerli olup olmadıklarını anlamak istiyorum.


Ve sayıların gereksiz titremesini kapatın. Tüm gereksizleri kaldırın. Bir başlangıç renginin gradyanına sahip basit bir dikdörtgenin bir kez görüntülenmesine izin verin. Ekstra fırfırlar yok.

Piotr, kanıt kodunu verdikten sonra "4 kat daha hızlı" yazdım. Başka neye ihtiyaç var anlamıyorum.

Her şeyin bağlantısı kesildi - aksaklık devam ediyor. Bu gövde kitini yapmadan önce bile bu aksaklığı gördüm. Degrademi eklerseniz, bu aksaklık bir metin setinde bile değildir. Bu, bu gönderiye eklenen kodda benim tarafımdan zaten gösterilmiştir.

 
Yury Kulikov :

"Suçlamalara" katılacağım, dayanamadım :)

Programlama yapılmamasına güzel bir örnek. GUI'nizin tamamı bu şekilde yazılmışsa, yakında görmeyeceğiz. :(

Her satır bir "şaheser"dir: öyle bir hata ve gaf yığını, mql4'ün onu ortadan kaldıracağını umarız. Şimdi neden MT4'ün kullanıldığı ortaya çıktı.

Bu tür kodların yayınlanması ve ardından gelen eleştirilere tepki, bunun forumun izleyicilerine saygı duymadığını düşünüyorum. Zarar istemiyorsun - sana yardım etmek istiyorlar.

Ve algoritmaların karşılaştırılması hakkında görsel olarak karşılaştırılabilir. Algoritmanızın "Windows gölgelerine" %99 yakın gölgeler verdiğine dair rakamlarla herhangi bir kanıt sunmadınız.

Solda - sanki yaklaşımınız, sağda - Nikolai Semko . (Değiştirilmiş bir Nikolai Semko komut dosyası kullanıldı)


Senaryoyu aldın mı? mt4'e bahse girdin mi? Kontrol? Karşılaştırıldı mı? Ve buradaki herkes suçlamalara katılacak.)))

Senaryoya gelince - bu benim algoritmam değil. Nikolai nasıl olduğunu bilmeden kendisi değiştirdi. Bu yüzden bu resimler hakkında onunla iletişime geçin.

 
Nikolai Semko :
Genel olarak konuşursak, iki renk arasında bir dizi gradyan elde etmek için bir fonksiyon daha arzu edilir. Çünkü pratikte daha kolay ve daha kullanışlıdır.

Bir rengin beyaza veya siyaha geçişine ihtiyacınız varsa, bu işlevi kullanarak bunları bu şekilde elde edebilirsiniz.


Sana söylemiştim. Gereksiz titremeyi kapatın. Bir dikdörtgen çizin. Orada benim algoritmamla ilgisi olmayan bir çizim problemin var. Sana işaret ettim. Bir yolunu bul.

 
Реter Konow :

Sana söylemiştim. Gereksiz titremeyi kapatın. Bir dikdörtgen çizin. Orada benim algoritmamla ilgisi olmayan bir çizim problemin var. Sana işaret ettim. Bir yolunu bul.

Peter yeterli kelime. Benim yaptığım gibi görselleştirme ile kodla kanıtlayın. Tekrar ediyorum - işlevinizi değiştirmedim, ancak ondan bir dize yerine yalnızca bir uint değeri çıkardım.
Son olarak, MQL5'te dizeler olmadan işlevinizin çalışan bir sürümünü sağlayın!

 
Yury Kulikov :

"Suçlamalara" katılacağım, dayanamadım :)

Programlama yapılmamasına güzel bir örnek. GUI'nizin tamamı bu şekilde yazılmışsa, yakında görmeyeceğiz. :(

Her satır bir "şaheser"dir: öyle bir hata ve gaf yığını, mql4'ün onu ortadan kaldıracağını umarız. Şimdi neden MT4'ün kullanıldığı ortaya çıktı.

Bu tür kodların yayınlanması ve ardından gelen eleştirilere tepki, bunun forumun izleyicilerine saygı duymadığını düşünüyorum. Zarar istemiyorsun - sana yardım etmek istiyorlar.

Algoritmaların karşılaştırılması konusunda ise görsel olarak karşılaştırılabilir. Algoritmanızın "Windows gölgelerine" %99 yakın gölgeler verdiğine dair rakamlarla herhangi bir kanıt sunmadınız.

Solda - sanki yaklaşımınız, sağda - Nikolai Semko . (Değiştirilmiş bir Nikolai Semko komut dosyası kullanıldı)


Bu GIF'ler hakkında ne kadar telaşlısın? etkilemek ister misin? Ne yazık ki, bunun için daha çok çalışmanız gerekecek. Fazla grafiktim. Algoritmamı al, MT4'e bahse gir ve renkleri yazdır. Ardından renk paletini kontrol edin sevgili MENTOR.

 
Nikolai Semko :

Peter yeterli kelime. Benim yaptığım gibi görselleştirme ile kodla kanıtlayın. Tekrar ediyorum - işlevinizi değiştirmedim, ancak ondan bir dize yerine yalnızca bir uint değeri çıkardım

Kodumu MT5'e dönüştürme sürecindeyim. Bitirdiğimde, sana göstereceğim.

 
Nikolai Semko :
Genel olarak konuşursak, iki renk arasında bir dizi gradyan elde etmek için bir fonksiyon daha arzu edilir.

belki şöyle biraz daha hızlı olur:

 void Gradient( uint clr1, uint clr2, uint &arr[], uint size)
  {
   if (size== 0 ) return ;
   ArrayResize (arr,size);
   rgb c1,c2;
   c1.clr=clr1;
   c2.clr=clr2;
   double R1=c1.c[ 2 ],G1=c1.c[ 1 ],B1=c1.c[ 0 ];
   double R2=c2.c[ 2 ],G2=c2.c[ 1 ],B2=c2.c[ 0 ];
   double deltaR=(R2-R1)/(size- 1 );
   double deltaG=(G2-G1)/(size- 1 );
   double deltaB=(B2-B1)/(size- 1 );
   R1 += 0.4999 ;
   G1 += 0.4999 ;
   B1 += 0.4999 ;
   for ( uint i= 0 ;i<size;i++)
     {
      R1+=deltaR; c1.c[ 2 ]= uchar (R1);
      G1+=deltaG; c1.c[ 1 ]= uchar (G1);
      B1+=deltaB; c1.c[ 0 ]= uchar (B1);
      arr[i]=c1.clr;
     }
  }
 
Nikolai Semko :

Peter yeterli kelime. Benim yaptığım gibi görselleştirme ile kodla kanıtlayın. Tekrar ediyorum - işlevinizi değiştirmedim, ancak ondan bir dize yerine yalnızca bir uint değeri çıkardım

Neden renk paletini kontrol etmiyorsun? Zor mu?

Ve neden metnin çıktısını içeren satırı yorumluyorsunuz, tüm dikdörtgenin çizimini değiştiriyor?

 
Реter Konow :

Neden renk paletini kontrol etmiyorsun? Zor mu?

En azından bağlantıyı falan bıraktın. Ne ile karşılaştırılacak.

 
Görünüşe göre tüm aksaklıklar MT5'e geçiş sırasında ortaya çıktı. MT4'te böyle bir şey yok. MT5'in titizliği çok daha yüksek, bu da sorun yaratıyor. Ancak bu, çözümün iyi olmadığı anlamına gelmez. Sadece kodu düzeltmeniz gerekiyor.
Neden: