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

 

Renk ayrıştırma algoritması hakkındaki konuşmaya geri dönüyoruz. Konudan saptığım için özür dilerim.

Algoritmanın nasıl ve nereye uygulanacağı konusunda sorusu olan varsa önceki sayfalarda açıklama bulabilir.

 
Vladislav Andruschenko :

10 sentimi koyabilir miyim? GUI ve genel olarak burada tartışılan her şey hakkında.

Her insanın bir hayali, hobisi, tutkusu vardır.

Biri balık tutuyor, biri fotoğrafçılığı seviyor, biri seyahat etmeyi seviyor, biri uçak maketi...


Aynı şekilde burada:

MetaTrader geliştiricileri , MQL5 dilini yaygınlaştırmak için iyi bir adım attı!

Şablonların veya yapıların yetersizliği ile ilgili tüm yazılar onu kullananlar içindir.


Aynı GUI kitaplıkları oluşturma, örneğin Anatoly'den, onun hobisidir. Yaptı ve herkese gösterdi.

Baktım ve şaşırdım... ve kitaplığıyla "kalkmaya" başladığı şeyin başında bile - uzun zamandır "GUI'yi kesmeyi" planlıyordum, ama korktum.

Ve sonra artık bunu çok zor yapanla "yetişmeye" başlamadı.

Bu kütüphaneyi o yaptı ve eminim birçok kişi kullanıyor.

Onun için bu bir hobiydi, favori bir şeydi. Sadece bu projeyle meşguldü (muhtemelen) ve bundan bıkmıştı. Ve o şimdi hasta.


Peter'ın da kendi tutkusu, bir hobisi var. Peter GUI'sini yapar

Ve herkes kendi başına ısrar edecek.

Bazı insanların buna ihtiyacı var, bazıları değil.


Neden bir şeyi kanıtlamakla uğraşıyorsun? İkna etmek? " Yardımcı" olmaya mı çalışıyorsun ? - OL, deneme.


Bazı insanlar Uzman Danışmanlarda bir GUI'ye ihtiyaç duyar, bazıları gerekmez.

Birisi MQL'de oyunlar çiziyor ve birisinin EA'da herhangi bir parametreye ihtiyacı yok.

Burada herkes o kadar farklı ki birini bir şeye ikna etmenin bir anlamı yok.

Herkesin kendi bakış açısına sahip olmasına ve kendi işine bakmasına izin verin. O zaman çatışma olmayacak.


Hepimiz bir yerden başladık. Birbirimizden bir şeyler öğrendik. Neden daha önce herkes daha arkadaş canlısıydı?

Vladislav. İnsanlarla olan farkımı anlama arzusuyla hareket ediyorum. Neden ben ve onlar bu kadar farklı görüşlere sahibiz. Bu kadar.

Bazıları bunu ürünleri için bir reklam olarak, bazıları bir saplantı olarak, bazıları ise sabit bir fikir olarak algılar.

Ama aslında, tartışıyor ve kanıtlıyorum çünkü başkalarını ve kendimi anlamak istiyorum.

 
Реter Konow :

Vladislav. İnsanlarla olan farkımı anlama arzusuyla hareket ediyorum. Neden ben ve onlar bu kadar farklı görüşlere sahibiz. Bu kadar.

Bazıları bunu ürünleri için bir reklam, diğerleri bir saplantı, diğerleri sabit bir fikir vb. olarak algılar.

Ama aslında, tartışıyor ve kanıtlıyorum çünkü başkalarını ve kendimi anlamak istiyorum.

Sizi temin ederim, şunlar var: OOP ve Prosedürel Programlama.

OOP'nin gerekli olduğu yerde, OOP kullanılır.

PP'nin gerekli olduğu durumlarda, basit bir programlama türü kullanırlar - prosedürel.

Ne çok insan, ne çok fikir.

Bir bilişim firmasına gidip yazılımda programlama yaptığınızı söylerseniz sizi gönderecekleri açıktır.

Burada istediğini yaparsın.


GUI'nizde öğretici makaleler yazmaya başlar başlamaz, "kendi" hayran ordunuz olacak. Ayrıca bir trol ordusu olacak, ama buna da ihtiyaç var :-)

Hangisinin daha iyi olduğunu kendi aralarında tartışsınlar. OOP'de GUI veya PP'de GUI.


Sadece bana güven.

Ne istersen onu yap ve onu kullanacaklar olacak.
Tartışmayın, çatışmalara girmeyin. Bunun için çok fazla enerji harcanıyor, tüm enerjiyi projenize yönlendirmek daha iyi!

 
Vladislav Andruschenko :

Sizi temin ederim, şunlar var: OOP ve Prosedürel Programlama.

OOP'nin gerekli olduğu yerde, OOP kullanılır.

PP'nin gerekli olduğu durumlarda, basit bir programlama türü kullanırlar - prosedürel.

Kaç kişi, çok görüş.

Bir bilişim firmasına gidip yazılımda programlama yaptığınızı söylerseniz sizi gönderecekleri açıktır.

Burada istediğini yaparsın.


GUI'nizde öğretici makaleler yazmaya başlar başlamaz, "kendi" hayran ordunuz olacak. Ayrıca bir trol ordusu olacak, ama buna da ihtiyaç var :-)

Hangisinin daha iyi olduğunu kendi aralarında tartışsınlar. OOP'de GUI veya PP'de GUI.


Sadece bana güven.

Ne istersen onu yap ve onu kullanacaklar olacak.
Tartışmayın, çatışmalara girmeyin. Bunun için çok fazla enerji harcanıyor, tüm enerjiyi projenize yönlendirmek daha iyi!

İyi. Size katılıyorum.

Algoritmam hakkında ne düşünüyorsun?

Anlayışınız ne kadar uygun ve kullanışlı?

 
Реter Konow :

İyi. Size katılıyorum.

Algoritmam hakkında ne düşünüyorsun?

Anlayışınız ne kadar uygun ve kullanışlı?


Ben, "kolay ve basit" destekçisi olarak - sürümünüzü daha çok beğeniyorum.

Ama ben, birçokları gibi, OOP'nin gerekli olduğu gerçeğine bağlıyım.

Çalışmamın özellikleri nedeniyle, örneğin "müşterinin" Rusça değişken adlarıyla bile açık bir koda ihtiyacı olduğunu biliyorum. Rus müşteriler genellikle bundan rahatsız oluyor.

Ve programı "sipariş ettikleri" için, hiçbir şey anlamadıkları ve daha kolay bir koda ihtiyaç duyacakları anlamına gelir. Rusça değişken isimleri ile .......


Ancak, siparişe göre programlamanın uzun zamandır anladım - sizi dibe çekiyor! Kendini geliştirme yok. Artık projelerinizi kodu göstermeden yapmak daha ilginç. OOP'u zaten nerede kullanabilirsiniz?

Genel olarak, kullanıcının öğelerin bulunduğu ve doğrudan grafik üzerinde kontrol edilebildiği basit bir kurucuya ihtiyacı vardır.


Bir kez daha. Her çözümün kendi hayran ordusu vardır.

Sadece sevdiğin şeyi yap...


bütün bunlar deneyimden geliyor, bu yüzden ifade ettiğim kelimelerin doğru olduğunu iddia etmiyorum ....

"GENEL TARTIŞMA" dan tüm dalları pratik olarak okudum, (hepsi bu bölümün altına kaydıramayacak kadar tembel olduğum için :-)), birçok şeye şaşırıyorum.

Bazen içine "12 kopek" koymak istersin ama birine bir şeyi kanıtlamak enerji ister.

Aynı operadan - "piyasada neye ihtiyaç duyulduğu" tartışması - evet, herkesin kendine ihtiyacı var.

Birisi bir RISK parametresi olan tam bir otomat ve birinin 100.500 parametreye ihtiyacı var!

Bir projeye sahip olmak ve yüzünüz maviye dönene ve tamamen tükenene kadar geliştirmek ve ancak o zaman bir sonrakini almak daha iyidir.

Nasıl, program isimlerini ve testçiden gelen resmi değiştirerek, kimsenin ihtiyacı olmayan yüzlerce ve binlerce proje üretiliyor....


Benim nacizane fikrime göre

herkese saygılar!!!

 

Geri dönüşünüz için teşekkür ederiz. Beğendiğine sevindim. Geliştirmelerinizde bu algoritmayı kullanırsanız sevinirim.

Bu sadece biraz konu dışı. Bu benim hatam. Konuşma algoritma hakkındaydı. Geri kalan konular göz ardı edilebilir.
 
Vladislav Andruschenko :


Ben, "kolay ve basit" destekçisi olarak - sürümünüzü daha çok beğeniyorum.

Ama ben, birçokları gibi, OOP'nin zorunlu olduğu gerçeğine bağlıyım.

Çalışmamın özellikleri nedeniyle, örneğin "müşterinin" Rusça değişken adlarıyla bile açık bir koda ihtiyacı olduğunu biliyorum. Rus müşterileri genellikle buna sürükleniyor .

Ve programı "sipariş ettikleri" için, hiçbir şey anlamadıkları ve daha kolay bir koda ihtiyaç duyacakları anlamına gelir. Rusça değişken isimleri ile .......

...

Benim pratiğimde, bu forumdaki 3 kişi dışında kimse peşini bırakmadı.

Örneğin, böyle bir koddan çıkıyorum, en fazla 3 satır okuyup siliyorum.

 
Vitaly Muzichenko :

Benim pratiğimde bu forumdaki 3 kişi dışında kimse peşini bırakmadı.

Örneğin, böyle bir koddan çıkıyorum, en fazla 3 satır okuyup siliyorum.

İngilizce konuşan biri olarak kararımı görmezden gelmekte özgürsün. Birkaç İngilizce kelime var.

Bu arada, İngilizce koduna çok aşina olduğunuz için Nikolai Semko tarafından önerilen kodu ayrıştırmama yardım edin:

 #include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164

union rgb { uint clr; uchar c[ 4 ];};

void OnStart ()
  {
   rgb c,cc;
   double d= 5 ;
   while (! IsStopped ())
     {
      c.c[ 2 ]= uchar ( 127.5 *( 1 + sin (d* 1.2 ))+ 0.4999 ); c.c[ 1 ]= uchar ( 127.5 *( 1 + sin (d* 1.9 ))+ 0.4999 ); c.c[ 0 ]= uchar ( 127.5 *( 1 + sin (d* 2.8 ))+ 0.4999 );   // генерируем новый цвет
      cc.clr=c.clr;
       double k0,k1,k2;
       if (c.c[ 2 ]>=c.c[ 1 ] && c.c[ 2 ]>=c.c[ 0 ]) {k2= 1 ; if (c.c[ 2 ]== 0 ) {k1= 1 ; k0= 1 ;} else {k1=( double )c.c[ 1 ]/c.c[ 2 ]; k0=( double )c.c[ 0 ]/c.c[ 2 ];}} // если Red - максимальный цвет
       else if (c.c[ 1 ]>=c.c[ 2 ] && c.c[ 1 ]>=c.c[ 0 ]) {k1= 1 ; k2=( double )c.c[ 2 ]/c.c[ 1 ]; k0=( double )c.c[ 0 ]/c.c[ 1 ];} // если Green - максимальный цвет
       else {k0= 1 ; k2=( double )c.c[ 2 ]/c.c[ 0 ]; k1=( double )c.c[ 1 ]/c.c[ 0 ];} // если Blue - максимальный цвет
       for ( int y= 0 ; y<W.Height; y++)
        {
         double k= 255.0 *( double )y/(W.Height- 1 );
         c.c[ 2 ]= uchar (k2*k+ 0.4999 );
         c.c[ 1 ]= uchar (k1*k+ 0.4999 );
         c.c[ 0 ]= uchar (k0*k+ 0.4999 );
         Canvas.LineHorizontal( 0 ,W.Width- 1 ,y, ColorToARGB (c.clr, 240 ));
        }
      Canvas.FillRectangle(W.Width/ 2 - 80 ,W.Height/ 2 - 50 ,W.Width/ 2 + 80 ,W.Height/ 2 + 50 , ColorToARGB (cc.clr, 240 ));
      Canvas.CurentFont( "Tahoma" , 20 , 22 , ColorToARGB (~cc.clr)); // 20 -  размер шрифта, 22 - межстрочный интервал
      Canvas.TextPosition(W.Width/ 2 - 70 ,W.Height/ 2 - 40 );
      Canvas.Comm( "Текущий цвет:" );
      Canvas.Comm( "R = " + string (cc.c[ 2 ]));
      Canvas.Comm( "G = " + string (cc.c[ 1 ]));
      Canvas.Comm( "B = " + string (cc.c[ 0 ]));
      ChartChanged(); // на всякий случай контролируем изменение размеров окна, т.к. это скрипт (в индикаторах и экспертах это происходит автоматически)
      Canvas.Update();
      d+= 0.01 ;
       Sleep ( 30 );
     }
  }

Dürüst olmak gerekirse, nasıl çalıştığını anlamıyorum. Birçok kısa İngilizce hece var. Sadece sevdiğin şey.

 
Vitaly Muzichenko :

Benim pratiğimde bu forumdaki 3 kişi dışında kimse peşini bırakmadı.

Örneğin, böyle bir koddan çıkıyorum, en fazla 3 satır okuyup siliyorum.

Sana tamamen katılıyorum.

Değişkenler uluslararası dilde olmalıdır.


Ama ben "müşterilerden" bahsediyorum.

Değişkenlerin Rusça olmasını isteyenlere rastladım.

Ve nasıl tartışılabilir? imkanı yok. Müşterinin "ihtiyaçları"

Bu nedenle, kimseye bir şey kanıtlamamak için bir yıl boyunca emirleri reddettim.


Örneğin, İngilizce isimlerle bir sipariş veriyorsunuz, kimse size bir şey söylemiyor.

Ve müşteri değişkenlerini Rusça yapmaya çalışıyorsunuz - hoşuna gidecek. Ve İngilizce bilmediği için kendini sürüklüyor.

 
Реter Konow :

İngilizce konuşan biri olarak kararımı görmezden gelmekte özgürsün. Birkaç İngilizce kelime var.

Bu arada, İngilizce koduna çok aşina olduğunuz için Nikolai Semko tarafından önerilen kodu ayrıştırmama yardım edin:

Dürüst olmak gerekirse, nasıl çalıştığını anlamıyorum. Birçok kısa İngilizce hece var. Sadece sevdiğin şey.


Eh, İngilizce isimler bir sebepten dolayı icat edildi.

Rus isimleri kodunuzu öldürdüğünde size başka bir örnek verebilirim:

Kodu Kiril alfabesine sahip olmayan bir müşteriye teslim ediyorsunuz. Herşey. .... her şey kaybolur ..... :-)


Bir an daha.

Örneğin GOOGLE tercümanının ana dili İngilizcedir. Ve ismi İngilizce yazarsanız, bir tercüman yardımıyla tercüme edilebilir.

Aksi takdirde sorunlar olacaktır.

Ben sadece gelecek için söylüyorum.


ama genel olarak herkese odaklanmak gerekiyor ki ayrımcılık olmasın. Ruslar için - Rusça.

Geri kalanı için daha tanıdık - İngilizce.

Hala İspanyolca - sonuçta, bu dil en popüler olarak kabul edilir.