Language agnostic 如何在代码中复制这样一个潦草的模式?

Language agnostic 如何在代码中复制这样一个潦草的模式?,language-agnostic,math,graphics,trigonometry,Language Agnostic,Math,Graphics,Trigonometry,我无意中用wolfram alpha制作了这个图表: 您可以编写代码来生成此模式的更大版本吗? 你能做出类似的图案吗? 任何语言的可读代码都是好的,但可以在浏览器中运行的代码最好(即JavaScript/Canvas)。如果您用其他语言编写代码,请附上屏幕截图 注: 上图的输入公式是:arg(sin(x+iy))=sin^(-1)((sqrt(2)cos(x)sinh(y))/sqrt(cosh(2y)-cos(2x)))() 您不必使用上述公式。任何产生类似结果的东西都是很酷的。但“逆向工

我无意中用wolfram alpha制作了这个图表:

您可以编写代码来生成此模式的更大版本吗?

你能做出类似的图案吗?

任何语言的可读代码都是好的,但可以在浏览器中运行的代码最好(即JavaScript/Canvas)。如果您用其他语言编写代码,请附上屏幕截图

注:

  • 上图的输入公式是:arg(sin(x+iy))=sin^(-1)((sqrt(2)cos(x)sinh(y))/sqrt(cosh(2y)-cos(2x)))()
  • 您不必使用上述公式。任何产生类似结果的东西都是很酷的。但“逆向工程”Wolfram Alpha是最好的
  • 等式的两边是相等的(我认为),所以WA应该只返回'true'而不是图形
  • 这种模式可能是舍入误差造成的
  • 我不知道图案是通过迭代每个像素生成的,还是基于矢量(点和线)。我猜是矢量
  • 我不知道是什么导致了这种模式(“舍入误差”是最好的猜测。)
  • IEEE浮点标准没有说明sin或cos等应如何工作,因此触发器功能在平台和体系结构之间有所不同
  • 请不要用布朗运动图
最后,这里有另一个可能有助于您完成任务的示例:()


当您要求在任何语言中使用类似的外观模式时,这里是Mathematica代码(非常简单,因为Wolfram Alpha基于Mathematica)

编辑

这确实是一种舍入效应:

如果我们设置:

策划

Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> MachinePrecision]
结果是:

但如果我们将绘图精度扩展到30位:

Plot3D[f[x, y], {x, 7, 9}, {y, -8, -9},WorkingPrecision -> 30]  
我们得到

粗糙消失了(这导致了你潦草的图案)

顺便说一句,你的f[x,y]是一个非常好的函数:


因此,如果我能够复制你的公式而没有错误(这应该被认为是一个奇迹),你的方程的两边只有在x的某些周期范围内是相等的,可能是[2nπ,(2n+1)π]

+1和-1的形式:我很受诱惑,但认为这太容易了,也太没有帮助了。你做得好@belisarius,因为你足够大胆地发布了这篇文章。@高性能标记我只是认为OP可能会受益于了解到曲线图的形式是“轮廓图[f[x,y]==0]”,因为Wolfram Alpha没有显示这一点。。。但是是的-1:)不完全是我想的那样:)但它确实有助于澄清问题,并提供了更好(更大)的图案形象,因此它仍然受到赞赏。@High-Performance Mark Your-1刺痛了我的心:)。再见,谢谢!“仅在某些周期范围内相等”我怀疑这可能是个错误的符号(那些平方根前面可能有+/-)。不过我只是在猜测。你的等式仅在某些x范围内保持的问题似乎与多值函数有关。如果你认为双方都有罪,那么你的平等就无处不在。