问题标签 [wolfram-cdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wolfram-mathematica - 从 CDF 播放器中获取数据
在我的怀疑论者工作组中,我在 Mathematica 中编写了一个程序,以测试探矿者评估通过照片向他们展示的人的状态的能力。对于零测量,我以 CDF 形式(新的 v8 可计算文档格式,旨在与CDF-player一起运行)将此文档分发给我的小组成员。在我的计算机上(使用 mma)一切正常,但其他计算机无法导出数据(程序会导出到 Excel 文件)。在阅读细则时,我看到播放器不支持导出。所以我的问题是:
有没有办法从 CDF 播放器中获取数据?
wolfram-mathematica - 从 webMathematica 提供 CDF
假设我在 Mathematica 中输入以下(编辑过的)代码片段。
我发现 nbTest 和 cdfTest 都是 True。如果我从 webMathematica 中运行相同的命令,nbTest 为 True,但 cdfTest 为 False。你可以在这里看到结果:
http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp
您可以在此处查看生成该结果的代码:
http://www.cs.unca.edu:8082/webMathematica/generateCDF.jsp.txt
我搜索了 webMathematica 的安全配置以找到一种启用 CDF 导出的方法,但没有找到。有谁知道启用此功能的方法?当然,在这种情况下可能会故意禁用它。
我的目的是提供从通过 HTML 表单访问的 JSP 页面动态生成的 CDF 文档。这应该允许与文本输入相结合的良好 CDF 交互。
编辑:我已经更新了我们服务器上的 Mathematica 版本并更新了上面的代码,以便显示完整的版本字符串。因此,我们可以看到它是 8.0.1 版本。问题仍然存在。
wolfram-mathematica - CDF 播放器上网配置
CDF播放器的上网配置在哪里?
在 Mathematica 上,如果我告诉它使用与系统相同的配置,它就不起作用。如果我自己编写相同的配置,它就可以工作。
我想在 CDF 播放器上做同样的事情(它说它找不到互联网)。“偏好”在哪里?
谢谢,
wolfram-mathematica - 关于 Mathematica 图形中闪烁和双缓冲的问题
Mathematica 如何处理图形显示的双缓冲?它是自动完成的吗?
我问的原因是,当我做一些动画时,根据动画速率,我注意到在屏幕上更新图形时烦人的闪烁。当我放慢速度时,我可以减少这个。
我将在下面展示一个简单的示例来说明我的意思,并询问专家是否对如何减少所显示的闪烁有建议。
此示例围绕圆绘制一个点。当动画运行时,您会注意到闪烁。即球的运动不平滑。减慢速率时,闪烁会减少。但是我觉得应该有远离来减少闪烁即使率很高的东西?
所以我的问题是:事情应该是这样的吗?或者是否有技巧和提示可以使动画更新运行更顺畅(减少闪烁),即使速率未设置为“最佳”,Mathematica 是否在内部使用双缓冲来更新图形?
我在 Windows 7、64 位上使用 V 8.0.1。
谢谢
更新 1 我想我的问题可能没有很好地提出。由于我没有直接使用 Animate,所以不能责怪 Mathematica。我现在正在使用 RunScheduledTask[] 来更新计时器,并且在每个计时器实例中,我在 Graphics 中制作新的绘图。很难用它在这里发布一个小例子,所以在上面,我只是使用了触发器。因此,在这种情况下我不能使用 RefreshRate,因为我现在实际上并没有使用 Trigger。
我正在查看讨论这些更新屏幕问题的不同网页,例如此页面和其他页面,这就是我问的原因。
这是我现在正在制作的 CDF,用于制作双摆动画,您可以看到,如果您将 delta_t 设为大(这是找到 ODE 的数值解的每个间隔之间的时间),动画显示在屏幕有很多闪烁(或您喜欢使用的任何术语),关键是,它不容易在眼睛上看到,并且想找到我可以做些什么来防止这种情况。
这是CDF
您也可以使用鼠标改变钟摆的位置,以查看更多闪烁的效果。
感谢您指出 RefreshRate,但看起来我不能在当前的实现中使用它,因为由于此处描述的问题,我不再使用 Trigger
我想我现在只需要保持 delta_t 很小。
更新 2
这是我用来更新图形的代码部分
上面的“更新”是由 scheduleTask 在我控制的每个 time_interval 更新的变量。
更新
我想我展示了一个我看到的小程序,它也在 Java 中为双摆设置动画,我认为它的闪烁比我做的要少得多,即使我以大致相同的速度运行我的程序也是如此。这是链接 http://www.myphysicslab.com/dbl_pendulum.html
所以,我想我还有很多工作要做。我需要找到一种方法来减少这种闪烁效果。
wolfram-mathematica - 如何在不使用 Manipulate 结构的情况下“保存定义”?
我正在制作一个 CDF 文档,其中我将动态片段放在文本中间。该文档应该在播放器中工作。
注册应该从分散在不同单元格周围的所有动态部分访问的 glogal 值的最佳方法是什么?
例如,我想定义 g=9.8,并且我希望放置在不同单元格中的所有动态都可以访问此值。因为这应该对播放器起作用,所以这个值应该在 Mathematica 的会话中保持不变。
我只能想到两种不同的方式:
- 用户在打开文件时必须单击的操作按钮,该按钮启动所有需要的 = 和 := 在笔记本周围使用
- 创建一个空操作,使用 SaveDefinitions->True,其变量未本地化到 Manipulate
两者似乎都太做作了。
使用任何其他仅在显示后设置定义的方法都不好,因为接受显示动态的人可能已经向下滚动,并通过实现所有需要的定义的动态。
那么,如何在不使用 Manipulate 结构的情况下“保存定义”呢?
wolfram-mathematica - 在 CDF Player 输入字段中按 ENTER 会复制行。如何改变行为?
我创建了一个 CDF,在文本中间有一些 InputFields,供读者输入自己的值。
在 CDF 播放器 (8.0.3) 上一切正常,除非用户在更改字段内的值后按 ENTER 而不是:“Return”或“Tab”或“鼠标选择其他字段”。
如果他按下 ENTER,CDF 播放器会执行与 Mathematica 完全相同的操作:行复制,最终在中间显示一些内部单元结构。
所有 Mathematica 用户都可以轻松避免按 ENTER,但 CDF Player 用户很可能不知道这种 ENTER/RETURN 对偶性。
我已经尝试了我能记住的所有笔记本选项:已部署、可编辑等,但没有成功,
我记得的另一件事是使用 NotebookEventAction 删除 ENTER 操作,但找不到如何操作:{"KeyDown", "Enter"}->Null ??? ; 尝试了 Enter、EnterKey、[EnterKey] 等,但没有成功。
有人可以帮我从 CDF 付款人中删除这个 Enter 副作用吗?
wolfram-mathematica - 在 Manipulate 外部快速绘制的代码,但在 Manipulate 内部绘制缓慢的代码。帮助找出原因
给出的代码使用直接使用 Dynamics 的快速算法绘制 ODE 解决方案的结果,我发现它在屏幕上非常快地绘制解决方案。
我将此算法集成到 Manipulate[] 中,并注意到绘图部分现在比以前慢得多。
我在这上面花了 4 个小时,但不明白为什么会这样。我希望有人能发现问题以及问题所在。
该算法是 Leonid 今天刚刚在他对我的另一个问题的回答中发布的算法(再次感谢 Leonid!)
该算法非常快,并且也可以快速渲染绘图。但它直接使用动态。我想在 Manipulate 中使用它。
我确实将它集成到 Manipulate 中,尽我所知,因为代码对我来说是先进的,我不确定我是否做得对,但结果是正确的。
该绘图确实有效并生成了正确的绘图,与原始算法一样,但现在绘图速度现在要慢得多。两种情况下的所有参数都相同(即问题参数)。这是我长期以来一直在努力解决的问题。使用 Manipulate 时如何加快 fps。
所以,问题可能在于我将它集成到 Manipulate 中运行,我做了一些效率不高的事情,或者可能是因为 Manipulate 已经使用了 DynamicModule[] 并且这对使绘图渲染更慢或整个过程更慢有副作用。
我将发布我的 Manipulate 代码,我在其中集成了 Leonid 代码(我尝试了许多不同的方法,但它们都绘制得很慢,这是下面的一个版本)。
这是原始代码,与 Leonid在此处发布的完全相同,但我在顶部添加了 2 个参数,因此两个版本将运行完全相同的参数以更轻松地比较速度。当你运行它时,你会注意到,与上面相比,屏幕上的绘图生成速度有多快。
我想帮助找出速度差异的原因。我现在假设绘图的速度差异是由于 Manipulate 内部的 Dyanmics 交互,因为我知道算法在外面非常快。
再次感谢任何提示或尝试的事情。
更新
好的,这变得有趣了。我从来不知道只使用 Dynamics 就可以制作 CDF,我认为必须使用 Manipulate。但是我错了。我刚试过一个,它确实有效! 这是在我的网站上,阻尼驱动摆的模拟(由于关节上存在驱动力而表现出混沌运动),仅使用 Dynamics 编写,没有 Manipulate。
上述代码如下:
这是我第一个使用直接动态的 CDF。如果你想看看更新屏幕的性能差异,这里是上面的一个版本,使用 Manipulate。在这种情况下,我没有注意到太大的区别,但请注意这是在绘制钟摆位置,不需要缓冲,也不需要数据处理。简单地逐点绘制鲍勃位置。
我认为现在可以仅从 Dynamics 制作 CDF 非常有趣。
wolfram-mathematica - 关于在函数之间传递数据的简单问题
一个简单的问题,但我只是为了确保我没有忽略一个明显的解决方案,它可以更有效。
如果一个人有很大的数据缓冲区,比如说非常大的列表,需要更新,并且想将它传递给一个函数以在函数内部进行更新,如
并且由于我不能使用按引用传递(在 CDF 中,不能将函数的属性更改为任何东西,例如 HoldFirst),所以我被迫在函数本身内按顺序制作列表的副本更新它,并返回副本。
我的问题是,除了使用不好的“全局变量”之外,还有更有效的方法吗?
附言。大约一年前,我通过引用询问了副本,这是 我的 Mathgroup 问题的链接。(顺便说一句,感谢 Leonid 的回答,这是有用的答案)。
但是我在这里的问题有点不同,因为现在我不能使用 HoldFirst,是否还有其他我没有看到的替代方法来避免这种额外的数据复制,当大小变得太大时,它似乎会减慢程序的速度大的。
(不能使用 SetAttributes 及其朋友,CDF 中不允许)。
我将首先展示基本示例,然后展示如果我可以使用 HoldFirst,我会怎么做。
例子
如果我可以使用 HoldFirst,我会写
效率更高,因为没有复制。通过参考。
我可以使用全局变量,如
但这当然是糟糕的编程,即使它非常快。
由于我有大型数据缓冲区,并且我想模块化我的 Mathematica 代码,我需要创建将大数据传递给它以进行处理的函数,但同时又想保持它“高效”。
可以看到任何其他选项来做到这一点?
抱歉,如果之前在这里问过这个问题,很难搜索到。
谢谢,
加法1
使用 Unevaluated 很容易使用,但我不再能够使用我必须确保列表正在传递的类型检查。例如
现在调用不会“绑定”到定义,因为“a”现在没有标题列表。
因此,我失去了代码中的一些稳健性。但是在 CDF 中使用 Unevaluated 确实有效,并且更改代码以使用它很容易。我只需要删除我在那里的那些额外的“类型检查”以使其工作。
wolfram-mathematica - 我们可以在 PowerPoint 或 Keynote 中展示一些 Dynamics/CDF 吗?
我想在演示文稿中展示一些动态内容。但是,我不确定我是否有时间在星期四之前以我希望在 Mathematica 中使用的方式制作幻灯片。
是否可以在 Powerpoint (Microsoft) 或 Keynote (Apple) 演示文稿中在 Mathematica 中构建动态对象?
ipad - iPad 上的 CDF?
我的数学教授希望能够在 iPad 上生成交互式图形(即您可以使用 CDF 生成的图形)。用户应该能够有效地使用 iPad 上的 CDF 播放器在计算机上执行他们可以执行的所有操作,使用 Web 浏览器可以执行的任何操作。我在想一些类似于画布元素的东西,但是有人知道是否有 iPad 的本地客户端吗?如果没有,有没有办法将 Mathematica 图形代码编译成 Safari 或 Chrome 可以理解的东西?
谢谢!