Tuval harika! - sayfa 92

 
Nikolai Semko #:

Nikolai, DX sorularını burada sormak uygun mu? Yardıma ihtiyacım var.

3D grafiklerin olanaklarını gösteren standart terminal kodlarıyla biraz oynadım. Biçim değiştirmeyi kaldırdım, tabii ki beceriksizce.

Soru şu, test fonksiyonunu optimize ederken yüzey üzerinde noktalar çizmem gerekiyor, bunu nasıl yapacağımı bulamıyorum.

Şöyle bir şey çıkmalı:

Dosyalar:
 
Nikolai Semko #:

Şahsen, karmaşık algoritmalar geliştirmek için öncelikle kanvasa ihtiyacım var. Süreçlerin ve verilerin ara görselleştirmeleri olmadan bunu yapmak çok daha zor ve uzun sürüyor.

Gerçekten de, gelişimin bazı aşamalarında süreçleri görselleştirmek gerekebilir

 
Andrey Dik #:

Nikolai, DX sorularını burada sormak uygun mu? Yardıma ihtiyacım var.

3D grafiklerin olanaklarını gösteren standart terminal kodlarıyla biraz oynadım. Biçim değiştirmeyi kaldırdım, tabii ki beceriksizce.

Soru şu, test fonksiyonunu optimize ederken yüzey üzerinde noktalar çizmem gerekiyor, bunu nasıl yapacağımı bulamıyorum.

Şöyle bir şey çıkmalı:

Eğer x,y,z koordinatları ile uzayda noktalara ihtiyacınız varsa, o zaman her şey basit ve DirectX ve OpenCL olmadan (elbette onlarla daha üretken olacak olsa da).
Bu örnekte bu konuya maksimum yakınlık:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501
 
Nikolai Semko #:
Eğer x,y,z koordinatları ile uzayda noktalara ihtiyacınız varsa, o zaman her şey basit ve DirectX ve OpenCL olmadan (elbette onlarla daha üretken olacak olsa da).
Bu örnekte bu konuya maksimum yakınlık:
Teşekkürler, deneyeceğim. Ne elde ettiğimi daha sonra size bildiririm.
 
Andrey Dik #:
Teşekkürler, bir deneyeceğim. Ne elde ettiğimi daha sonra bildireceğim.
Onbinlerce nokta varsa gecikme olmaması lazım, yüzbinlerce nokta varsa hesaplama kısmını OpenCl kullanarak yapmak daha iyi.
En yoğun kaynak gerektiren trigonometrik fonksiyonlar (sin, cos). Bu nedenle, bu dalın ilk örneğinde fark ettiğim gibi, gecikme durumunda bu işlevlerin kendi tablolarını kullanmak mantıklıdır.
 
Nikolai Semko #:
On binlerce nokta varsa, gecikme olmamalıdır, yüz binlerce nokta varsa, hesaplama kısmını OpenCl kullanarak yapmak daha iyidir.
En yoğun kaynak gerektiren trigonometrik fonksiyonlardır (sin, cos). Bu nedenle, bu dalın ilk örneğinde fark ettiğim gibi, gecikme durumunda bu işlevlerin kendi tablolarını kullanmak mantıklıdır.
Korkarım ki az sayıda nokta ile sürekli bir yüzey çalışmayacak, bir elek gibi görünecektir.
Örnekteki prensibi anladığımı düşünüyorum, size ne elde ettiğimi göstereceğim.
 
Andrey Dik #:
Korkarım ki az sayıda nokta ile sürekli bir yüzey işe yaramayacak, bir elek gibi görünecektir.
Örnekteki prensibi anlıyorum, size ne elde ettiğimi göstereceğim.

Evet, ne yazık ki korkularımda haklıydım.


 
Andrey Dik #:

Evet, korkular ne yazık ki haklıydı.


FileWriteArray aracılığıyla bana 3 boyutlu nokta dizinizi gönderin
 
Nikolai Semko #:
FileWriteArray aracılığıyla bana 3B nokta dizinizi bırakın
Nasıl yapılacağından emin değilim, ancak yüzey formülü şu şekildedir:

double Z (double x, double y)
  {
    double res =
    20.0 + x*x + y*y - 10.0 * cos (2.0 * M_PI * x) - 10.0 * cos (2.0 * M_PI * y)
    - 40.0  * exp (-(pow (x - 1.0, 2) + y*y) / 0.1)
    + 200.0 * exp (-(pow (x + M_PI * 0.47, 2) + pow (y - M_PI * 0.2, 2)) / 0.1)  //global max
    + 100.0 * exp (-(pow (x - 0.5, 2) + pow (y + 0.5, 2)) / 0.01)
    - 60.0  * exp (-(pow (x - 1.5, 2) + pow (y - 2.0, 2)) / 0.02)                //global min
    - 50.0  * exp (-(pow (x + 1.3, 2) + pow (y + 0.2, 2)) / 0.5)
    + 60.0  * exp (-(pow (x - 1.5, 2) + pow (y + 1.5, 2)) / 0.1);

    return res;
  }
 
Andrey Dik #:
Nasıl yapılacağından emin değilim, ancak yüzey formülü şu şekildedir:

.

Andrei, sadece bir resim mi almak istiyorsun yoksa MQL5'te bir resim mi almak istiyorsun?
Kolayca görselleştirebilirim, ancak görselleştirme için daha gelişmiş araçlar var.
Örneğin, formülünüz bu kaynakta göründüğü gibi:
https://www.desmos.com/3d/887356da26.

Neden: