帆布很酷! - 页 92

 
Nikolai Semko #:

尼古拉,在这里问 DX 问题合适吗?我需要帮助。

我对标准终端代码做了一些调整,这些代码展示了三维图形的可能性。当然,我去掉了变形功能,因为它很笨拙。

问题是,在优化测试功能时,我需要在曲面上绘制点,但我不知道该怎么做。

结果应该是这样的

附加的文件:
 
Nikolai Semko #:

就我个人而言,我首先需要 kanvas 来开发复杂的算法。如果没有流程和数据的中间可视化,要完成这项工作会更加困难,时间也会更长。

事实上,在某些开发阶段,可能有必要将流程可视化

 
Andrey Dik #:

尼古拉,在这里问 DX 问题合适吗?我需要帮助。

我对标准终端代码做了一些调整,这些代码展示了三维图形的可能性。当然,我去掉了变形功能,因为它很笨拙。

问题是,在优化测试功能时,我需要在曲面上绘制点,但我不知道该怎么做。

结果应该是这样的

好吧,如果你需要空间中的点,坐标为 x、y、z,那么一切都很简单,不需要 DirectX 和 OpenCL(当然有了它们会更有成效)。
在本示例中,我们将最大限度地贴近这一主题:
h ttps://www.mql5.com/ru/forum/227736/page72#comment_25130501
 
Nikolai Semko #:
好吧,如果您需要空间中具有 x、y、z 坐标的点,那么一切都很简单,无需 DirectX 和 OpenCL(当然,有了它们会更有成效)。
本示例最大限度地贴近了这一主题:
谢谢,我会试试的。稍后我会告诉你我的结果。
 
Andrey Dik #:
谢谢,我试试看。稍后我会报告我的结果。
如果有几万个点,应该不会有延迟,如果有几十万个点,最好使用 OpenCl 进行计算。
最耗费资源的是三角函数(sin、cos)。因此,在出现滞后的情况下,使用自己的这些函数表是有意义的,正如我在本分支的第一个示例中所意识到的那样。
 
Nikolai Semko #:
如果有几万个点,应该没有滞后;如果有几十万个点,最好使用 OpenCl 完成计算部分。
最耗费资源的是三角函数(sin、cos)。因此,在出现滞后的情况下,使用自己的这些函数表是有意义的,正如我在本分支的第一个示例中所意识到的那样。
如果点数较少,恐怕连续曲面将无法工作,它看起来就像一个筛子。
我想我理解了这个例子的原理,我将向您展示我的结果。
 
Andrey Dik #:
如果点的数量很少,恐怕连续曲面就无法工作,它会像筛子一样。
我明白这个例子的原理,我给你看看我的结果。

是的,不幸的是,我的担心是有道理的。


 
Andrey Dik #:

是的,不幸的是,人们的担心是有道理的。


通过FileWriteArray 将您的 3d 点数组发送给我
 
Nikolai Semko #:
通过FileWriteArray 向我发送您的 3D 点数组
我不确定如何操作,但曲面公式是这样的:

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 #:
我不知道如何操作,但曲面公式是这样的: 。

Andrei,您是只想获得一张图片,还是想在 MQL5 中获得一张图片?
我可以很容易地将其可视化,但有更高级的可视化工具。
例如,这是您的公式在这个资源上的样子:
https://www.desmos.com/3d/887356da26。