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

 
Nikolai Semko :
Algoritmanızdan dizeleri kaldırdım. Onları neden kullandığın benim için bir gizemdi. Koda bakın, daha sonra gerçek rengi nasıl gösterirdim. Çok gereksiz kontrolleriniz var, teğet, dizi sıralama gibi işlevleri kullanıyorsunuz, ben sadece +-*/ kullanıyorum. Mt4 daha yavaş, bu anlaşılabilir, ancak 30 kat değil.
Pekala, biraz sonra algoritmamı 4'e koyacağım ve göreceğim. Neden 4 kullanıyorsun? Grafiksel bir arayüz için 4 hiç uygun değildir. Kaynakları bile okumuyor. Kodu 4'ten 5'e yeniden yapmak, tersinden çok daha zordur.

MT4 60 kat daha yavaş olabilir. Her iki platformda da int dizilerinin dolum oranını kontrol edin ve görün.

 
Nikolai Semko :
Algoritmanızdan dizeleri kaldırdım. Onları neden kullandığın benim için bir gizemdi. Koda bakın, gerçek rengi nasıl gösterirdim. Çok gereksiz kontrolleriniz var, teğet, dizi sıralama gibi işlevleri kullanıyorsunuz, ben sadece +-*/ kullanıyorum. Mt4 daha yavaş, bu anlaşılabilir, ancak 30 kat değil.
Pekala, biraz sonra algoritmamı 4'e koyacağım ve göreceğim. Neden 4 kullanıyorsun? Grafiksel bir arayüz için 4 hiç uygun değildir. Kaynakları bile okumuyor. Kodu 4'ten 5'e yeniden yapmak, tersinden çok daha zordur.

Grafiksel bir arayüz için 4 çok iyidir. Ama başka bir şeyden bahsetmek. Dikkatimizi dağıtmayalım.

 
Nikolai Semko :
Algoritmanızdan dizeleri kaldırdım. Onları neden kullandığın benim için bir gizemdi. Koda bakın, daha sonra gerçek rengi nasıl gösterirdim. Çok gereksiz kontrolleriniz var, teğet, dizi sıralama gibi işlevleri kullanıyorsunuz, ben sadece +-*/ kullanıyorum. Mt4 daha yavaş

Kayışların kullanılamayacağı açıktır. Kullanıcı için daha uygun olacağını düşündüm. İşlev bir kez çağrılırsa mikrosaniyeden tasarruf etmenin anlamı nedir?

 
Nikolai Semko :
Çok gereksiz kontrolleriniz var, teğet, dizi sıralama gibi işlevleri kullanıyorsunuz, ben sadece +-*/ kullanıyorum.

Nikolai, bende bir sorun olduğunu tartışmadan önce, algoritmanızın gerçekten daha hızlı ve daha iyi olduğundan emin olalım. Algoritmamı MT5 olarak değiştirip hızı kontrol edeceğim. Ve dizinizin bir çıktısını görüntüler ve Windows renkleriyle karşılaştırırsınız. (Bu durumda yine string type kullanmanız gerekiyor. Bunu kullanmamın sebeplerinden biri de bu. Karşılaştırma için de gerekliydi.)

 
Реter Konow :

Nikolai, bende bir sorun olduğunu tartışmadan önce, algoritmanızın gerçekten daha hızlı ve daha iyi olduğundan emin olalım. Algoritmamı MT5 olarak değiştirip hızı kontrol edeceğim. Ve dizinizin bir çıktısını görüntüler ve Windows renkleriyle karşılaştırırsınız. (Bu durumda yine string type kullanmanız gerekiyor. Bunu kullanmamın sebeplerinden biri de bu. Karşılaştırma için de gerekliydi.)

4-ke'deki algoritmamın getirisi seninkinden 4 kat fazla.

4-ku kullanmanın neden mantıksız olduğuna dair bir örnek.

İlk olarak, +/-* içeren basit algoritmalar bile 5-7 kat daha yavaş çalışır.

İkincisi, fonksiyonum hatasız olarak hemen dörde ulaştı. Seninkini denedim, bir sürü düzeltme yaptım ama kod tamamen farklı değerler verdi, bazı renk çubukları vardı. İnanmıyorsanız kendiniz deneyin.

Soru şu ki, 4-ku kullanarak zamanınızı çalıyorsunuz. Er ya da geç, kodu 4'ten 5'e kadar yeniden yapmanız gerekecek. 4 artık şimdi olduğu gibi talep olmayacak ve talep olsa bile, kodu 5'ten 4'e yeniden işlemek için harcanan güçler, bunun tersinden orantısız olacaktır.

Dosyalar:
 
Реter Konow :

Nikolai, bende bir sorun olduğunu tartışmadan önce, algoritmanızın gerçekten daha hızlı ve daha iyi olduğundan emin olalım. Algoritmamı MT5 olarak değiştirip hızı kontrol edeceğim. Ve dizinizin bir çıktısını görüntüler ve Windows renkleriyle karşılaştırırsınız. (Bu durumda yine string type kullanmanız gerekiyor. Bunu kullanmamın sebeplerinden biri de bu. Karşılaştırma için de gerekliydi.)

Ve bu arada, işlevimle bu tür arızalar olmadan çalışır:

Algoritmanızdaki bir söve üzerinde anlamına gelir. Kendini anla.

 
Nikolai Semko :

4-ke'deki algoritmamın getirisi seninkinden 4 kat fazla.

4-ku kullanmanın neden mantıksız olduğuna dair bir örnek.

İlk olarak, +/-* içeren basit algoritmalar bile 5-7 kat daha yavaş çalışır.

İkincisi, fonksiyonum hatasız olarak hemen dörde ulaştı. Seninkini denedim, bir sürü düzeltme yaptım ama kod tamamen farklı değerler verdi, bazı renk çubukları vardı. İnanmıyorsanız kendiniz deneyin.

Soru şu ki, 4-ku kullanarak zamanınızı çalıyorsunuz. Er ya da geç, kodu 4'ten 5'e kadar yeniden yapmanız gerekecek. 4 artık şimdi olduğu gibi talep olmayacak ve talep olsa bile, kodu 5'ten 4'e yeniden işlemek için harcanan güçler, bunun tersinden orantısız olacaktır.

Nikolai, gereksiz konularla dikkatimizi dağıtmayalım. Algoritmaların doğruluğu ve hızlarının karşılaştırılması hakkında konuşun.

  1. Dizideki renkleri yazdırarak ve bunları Windows paletindeki renklerle karşılaştırarak algoritmanızın doğru çalıştığını gösterin.
  2. Şu anda algoritmamı MT5'e aktarıyorum ve sonuçları bildireceğim.

 
Реter Konow :

Nikolai, bende bir sorun olduğunu tartışmadan önce, algoritmanızın gerçekten daha hızlı ve daha iyi olduğundan emin olalım. Algoritmamı MT5 olarak değiştirip hızı kontrol edeceğim. Ve dizinizin bir çıktısını görüntüler ve Windows renkleriyle karşılaştırırsınız. (Bu durumda yine string type kullanmanız gerekiyor. Bunu kullanmamın sebeplerinden biri de bu. Karşılaştırma için de gerekliydi.)

Dize türünü çıkarmak için işlevin gövdesine koymak gerekli değildir, ancak yazdırma anında değerleri bu türe dönüştürmek yeterlidir.

 for ( int l= 0 ;l< 256 ;l++) {Col.clr=Gradient[l]; Print ( "RGB = " + string (Col.c[ 2 ])+ ", " + string (Col.c[1])+ ", " + string (Col.c[0]));}
 
Nikolai Semko :

Dize türünü çıkarmak için işlevin gövdesine koymak gerekli değildir, ancak yazdırma anında değerleri bu türe dönüştürmek yeterlidir.

Yine başka konularla dikkatiniz dağılıyor. Soru, dize türünün nasıl çıkarılacağı değildir. Bu herkesin kişisel tarzıdır.

Kodumu değiştirdiniz ve kodunuzun çoğunu eklediniz. Bu, sonucu önemli ölçüde değiştirdi. Her şeyi MT5'e çeviriyorum ve burada yazdıklarınızı anlamaya çalışıyorum.

Sonuç olarak, renk paleti ile karşılaştırıldığında benim için her şey açık. Ve algoritmanızla ekrana bir çıkışta - bir sorun. Sürtünmenin nerede olduğunu bulmaya çalışıyorum.

 
Реter Konow :

Yine başka konularla dikkatiniz dağılıyor. Soru, dize türünün nasıl çıkarılacağı değildir. Bu herkesin kişisel tarzıdır.

Kodumu değiştirdiniz ve kodunuzun çoğunu eklediniz. Bu, sonucu önemli ölçüde değiştirdi. Her şeyi MT5'e çeviriyorum ve burada yazdıklarınızı anlamaya çalışıyorum.

Sonuç olarak, renk paleti ile karşılaştırıldığında, benim için her şey açık. Ve algoritmanızla ekrana bir çıkışta - bir sorun. Sürtünmenin nerede olduğunu bulmaya çalışıyorum.

Peter, soru şu ki, herkesin renk ayrıştırmasını görmesi ve uygulaması için forumda bir işlev yayınladınız. Ancak bu işlev istenen renk dizisini değil, yalnızca gradyanını ekranda göstermek yerine yalnızca Print output için uygun olan bir dize dizisini oluşturur. Bu bir dürtme domuz ve başkalarına saygı yok. Mesela, ihtiyacı olan varsa kendin tercüme et.