Tuval harika! - sayfa 2

 
fxsaber :

CCanvas - ResourceCreate sarmalayıcı. Bu nedenle, örneğin, zaten diziler şeklinde 20 hazır resminiz var. Bunları tuval üzerinden değiştirmek istiyorsanız, sürekli olarak pahalı ArrayCopy+Update yapmanız gerekecektir.

Ve eğer CCanvas olmadan yaparsanız, her şey yalnızca ResourceCreate+ChartRerdraw ile sonuçlanacaktır. Kod tabanına dinamik çizimli birkaç çalışma yükledim. Orada CCanvas'ın iyi olmadığı açıktı.

Bunun bir Kaynak sarmalayıcı olduğuna katılıyorum. Tanımları tanımlamamız gerekiyor. Canvas (tuval), anladığım kadarıyla bir CCanvas sınıfı değil, dikdörtgen bir grafik kaynağıdır, yani. nokta dizisi. CCanvas sınıfından oluşturmak, güncellemek ve silmek için birkaç fonksiyona ihtiyacım var. İçinde, bu oldukça yetkin bir şekilde uygulandı, piksel (düzeltilmemiş) uygulama nedeniyle işlevlerin geri kalanı bana işe yaramaz görünüyor. Ayrıca tuvalle vektör grafiği olarak ilgileniyorum, raster değil, yani. başka bir deyişle, resmi kendim oluşturduğumda, resim yükleyerek değil. Bu nedenle, 20 hazır resim içeren seçenek için pratik bir uygulama görmüyorum, MT5'te video oynatıcı yapamıyorum. Vektör grafiklerinin görevi, bir görüntüyü 30 (ve tercihen 10'dan az) milisaniyeden daha kısa sürede çizmektir. Çünkü insan gözü hala saniyede 30 defadan fazla bir resim değişikliği görmeyecektir. Temel olarak, MT5'teki tuval bu işi iyi yapıyor. Doğru, bu renk girdapları yeteneklerinin sınırında (yani, ortalama dizüstü bilgisayarımda yaklaşık 30 milisaniyede bir kare oluşuyor), ancak MT4'te zaten yavaşlıyor.

Şimdi, boş zamanım olur olmaz, her şeyi biraz daha iyileştirmek istediğim CCanvasPro sınıfını yapıyorum.
Şu ana kadar dairelerle elde ettiğimiz şey (gölgelerle yumuşatılmış). Üzgünüm, henüz kodu açmadım. Nem yüzünden.

Bu aynı zamanda bir senaryodur.

Dosyalar:
 
Evgeniy Zhdan :
Harika gökkuşağı tablosu! Bir diğeri de mumları müzikle dans ettirip kendi aralarında döndürmek olabilir!

Bu kârı artıracak mı?) Her dans için bir bonus, o zaman ben varım.)))

 
Nikolai Semko :

Elbette yardımcı olacaktır, ancak korkunç frenler olacaktır.

Hafif bir yavaşlama olacak, ancak korkunç frenler yok. En azından görsel olarak değişen bir şey yok.


 
Rashid Umarov :

Hafif bir yavaşlama olacak, ancak korkunç frenler yok. En azından görsel olarak değişen bir şey yok.


Eh, bitti, ürkütücü olanlar hakkında, heyecanlandım. Ama yine de - genel performansta yaklaşık %10 daha yavaş.

 
Rashid Umarov :

Hafif bir yavaşlama olacak, ancak korkunç frenler yok. En azından görsel olarak değişen bir şey yok.


Profil oluşturmada değil, GetMicrosecondCount aracılığıyla kontrol edildi

1000 karede %3-4 yavaşlama çıktı. Prensip olarak, evet, çok kritik değil.

 while (! IsStopped ())
     {
       static ulong t0= GetMicrosecondCount ();
       int pos= int (i%size);
       if (pos== 0 )
        {
         C.Update();
         //Sleep(30);
         X1= Width-( sin (( double )j/ 100 )*( double )Width);
         Y1= Height-( cos (( double )j/ 140 )*( double )Height);
         X2= Width+( cos (( double )j/ 80 )*( double )Width);
         Y2= Height+( sin (( double )j/ 20 )*( double )Height);
         if (j== 101000 ) Print ( GetMicrosecondCount ()-t0);
         j++;
        }
       int X=pos%Width;
       int Y= int (pos/Width);
       double d= ((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y))/(((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y))+((X2-X)*(X2-X)+(Y2-Y)*(Y2-Y)));
       //C.m_pixels[pos]=XRGB(h[int(d*11520)],h[int(d*17920)],h[int(d*6400)]);
      C.PixelSet(X,Y,XRGB(h[ int (d* 11520 )],h[ int (d* 17920 )],h[ int (d* 6400 )]));
      i++;
     }


 
Nikolai Semko :

Kendime CCanvas sınıfı aracılığıyla kısa bir kod kullanarak özel grafiklerin yeteneklerini etkili bir şekilde gösterme görevini verdim.

İşte bundan böyle çıktı.

Bu komut dosyası hem MQL5 hem de MQL4'te çalışır. Yalnızca MT5'te çok daha hızlıdır.

Her kare benzersizdir ve tekrarlamaz, yani komut dosyası döngüsel değildir.


Derlemeden önce m_pixels[] dizisini protected:'den Canvas.mqh dosyasındaki public'e aktarmak gerekir:

Yarım saat izledim, bu şeyin kalkmasını bekliyorum))

 
Alexey Volchanskiy :

Yarım saat izledim, bu şeyin kalkmasını bekliyorum))

:))
 

Dürüst olmak gerekirse, amacın ne olduğunu anlamıyorum.

Evet, güzel, renkli, pembe... Peki, Expert Advisor'ın işini nasıl etkileyecek?

Buraya oyunlar yazsaydık anlardım - böyle bir fırsat var, ah, nasıl talep olurdu ... Ve sonra ...

Bence, bunun tam tersi gerekli - ortaya çıkan kodun sistemi mümkün olduğunca az yüklemesi için gereksiz eylemlerden kurtulmak (bulutta para gerektirir). Evet ve bunu kolaylaştırmak için destek olarak.

Alıcılar için bir "vay etkisi" olmadıkça... Güzel tasarlanmış bir çıktının Freelance'da daha fazla hamur kesmenize izin verdiği doğru olduğunu düşünüyorum...

 
Çok güzel, teşekkürler, şimdi ticaret gerçek anlamda çok daha pembe olacak.
 
George Merts :

Dürüst olmak gerekirse, amacın ne olduğunu anlamıyorum.

Evet, güzel, renkli, pembe... Peki, Expert Advisor'ın işini nasıl etkileyecek?

Buraya oyunlar yazsaydık anlardım - böyle bir fırsat var, ah, nasıl talep olurdu ... Ve sonra ...

Bence, bunun tam tersi gerekli - ortaya çıkan kodun sistemi mümkün olduğunca az yüklemesi için gereksiz eylemlerden kurtulmak (bulutta para gerektirir). Evet ve bunu kolaylaştırmak için destek olarak.

Alıcılar için bir "vay etkisi" olmadıkça... Güzel tasarlanmış bir çıktının Freelance'da daha fazla hamur kesmenize izin verdiği doğru olduğunu düşünüyorum...

Göstergeler için kullanışlıdır. Burada tuval üzerine çeşitli ok göstergeleri çizmişler, hatta bir yazı bile vardı.

Neden: