Canvas üzerinde bir kitle kaynaklı proje yapma - sayfa 20

 

Bu formüller karşılaştırıldığında, gerçekten farklı sonuç. Biri hızı karşılaştırdı.

Sol yarı üç farklı renk katmanından oluşur, şeffaflık her yerde 128'dir.Renkler terminal tarafından karıştırılır.

Sağ üst kısım, İngilizce wiki'ye göre karıştırılmış bir katman halinde yapılır.

Rus wiki'sine göre bir katmanda sağ alt.


Ekrandaki terminal ve İngilizce wiki karşılaştırması (terminal en üstte)


Bir dosyaya kaydedilen kaynaklara göre formüllerin karşılaştırılması (İngilizce üstte)


Bir kaynak oluşturmak çok zaman alıyor, rengi hesaplamak ve diziyi 10 kata kadar doldurmakla karşılaştırıldığında, muhtemelen OCL ile uğraşmak mantıklı değil.

PS Fena görünmüyor, Photoshop'u MT'de kullanabilirsiniz :)

Dosyalar:
script.mq5  4 kb
 
CCanvas sınıfını anlayanlar, söyle bana, orada bir gradyan oluşturmak mümkün mü? Örneğin, bir dikdörtgenin onu bir düğmeye dönüştürmesi için? Bunu uzun zamandır sormak istiyordum.
 
Реter Konow :
CCanvas sınıfını anlayanlar, söyle bana, orada bir gradyan oluşturmak mümkün mü? Örneğin, bir dikdörtgenin onu bir düğmeye dönüştürmesi için? Bunu uzun zamandır sormak istiyordum.
Orada.
 
Artyom Trishkin :
Orada.

Tuval kullanılarak çizilmiş düğme örnekleri var mı? Onları gördüğümü hatırlamıyorum. Çok güzel düğmeler gördüm ama orijinal resimlere dayanıyordu ama tuval üzerine tam olarak çizildiğini görmedim...
 
Реter Konow :

Kanavalar kullanılarak çizilmiş düğme örnekleri var mı? Onları gördüğümü hatırlamıyorum. Çok güzel düğmeler gördüm ama orijinal resimlere dayanıyordu ama tuval üzerine tam olarak çizilmiş bir şey göremedim...
Anatoly açıklamadaki grafiğini okudu. Hafızam bana doğru hizmet ediyorsa, kütüphaneler bilgi öğeleriyle ilgilidir.
 
Artyom Trishkin :
Anatoly açıklamadaki grafiğini okudu. Hafızam bana doğru hizmet ediyorsa, kütüphaneler bilgi öğeleriyle ilgilidir.

bulmaya çalışacağım...
 
Bulundu. Araç ipucu öğesi bir degrade kullanır. Doğru, her degrade çizgisini kendi rengi ve şeffaflığıyla ayarlamanın mümkün olup olmadığını anlamadım. Boş zamanlarınızda tuvali incelemek gerekli olacaktır. Meraklı...
 
Реter Konow :
CCanvas sınıfını anlayanlar, söyle bana, orada bir gradyan oluşturmak mümkün mü? Örneğin, bir dikdörtgenin onu bir düğmeye dönüştürmesi için? Bunu uzun zamandır sormak istiyordum.
Hey Peter!
Gradyan ile ilgili herhangi bir sorun görmüyorum.
İşte tüm renkleri yineleyen ve dinamik olarak değişen degrade renkli bir kare çizen bir komut dosyasının basit bir görsel örneği.
Sadece çalışması için Canvas.mqh'deki m_pixels[] dizisini public'e taşımanız gerekir.
 public :
   uint               m_pixels[];               // array of pixels
 #include <Canvas\Canvas.mqh>
void OnStart ()
  {
   CCanvas Grad;

   color col;
   if (!Grad.CreateBitmapLabel( 0 , 0 , "Grad" , 100 , 100 , 256 , 256 , COLOR_FORMAT_XRGB_NOALPHA )) Print ( "Error creating canvas: " , GetLastError ());
   for ( int r= 0 ; r< 256 ; r++) // red
     {
       int j= 0 ;
       // заполняем цветной градиентный квадрат
       for ( int b= 0 ; b< 256 ; b++) // blue
         for ( int g= 0 ; g< 256 ; g++) // green
           {
            col=( color )(((r& 0x0000FF )<< 16 )|((g& 0x0000FF )<< 8 )|(b& 0x0000FF )); // формируем цвет RGB
            Grad.m_pixels[j]=col; // рисуем точку с текущим цветом
            j++;
           }
      Grad.Update();
       Sleep ( 20 );   // Подождем для плавности
     }
  }
Dosyalar:
Gradient.mq5  2 kb
 
Nikolai Semko :
Hey Peter!
Gradyan ile ilgili herhangi bir sorun görmüyorum.
İşte tüm renkleri yineleyen ve degrade renkli bir kare çizen bir komut dosyasının basit bir görsel örneği.
Sadece çalışması için Canvas.mqh'deki m_pixels[] dizisini public'e taşımanız gerekir.


Merhaba Nikolay!

Örnek için teşekkürler, ama ben farklı bir şey demek istedim. Düşüncelerini belli belirsiz aktardı. Kareyi bir düğmeye çevirecek olan karenin çerçevesini kastetmiştim. Bunu yapmak için çerçeve çizgilerinin farklı olması gerekir. Örneğin, üst ve sol çizgiler açık, alt ve sağ çizgiler koyu, - butona basılır , aksi takdirde butona basılı gibi görünür. Bunu tuval ile nasıl yapacağımı bilmek istedim.

Kenar çizgilerini degrade olarak adlandırdım. Belki yanlıştır...

 
Реter Konow :

Merhaba Nikolay!

Örnek için teşekkürler, ama ben farklı bir şey demek istedim. Düşüncelerini belli belirsiz aktardı. Kareyi bir düğmeye çevirecek olan karenin çerçevesini kastetmiştim. Bunu yapmak için çerçeve çizgilerinin farklı olması gerekir. Örneğin, üst ve sol çizgiler açık, alt ve sağ çizgiler koyu, - düğmeye basılır , aksi takdirde düğme basılı görünecektir. Bunu tuval ile nasıl yapacağımı bilmek istedim.

Kenar çizgilerini degrade olarak adlandırdım. Belki yanlıştır...


Düğme görüntüsü, hazır bir bmp görüntüsü yüklenerek veya program çizimi ile oluşturulabilir (burada zaten birçok seçenek var). Ardından, görüntüsünü değiştirmek için OnChartEvent'te fare olaylarını işlemeniz yeterlidir.