Mathematica 和 MouseListener - 使用 Mma 开发交互式图形

2024-05-19

我想为 Mathematica 3D 图形添加交互性,除了 Manipulate 之外,Manipulate 很酷但有其局限性。考虑 Mathematica 中四个立方体问题的演示的四个示例,单击其中一个立方体即可旋转一个立方体。

问题。

  1. 是否可以在 Mathematica 图形中捕获 MouseEvents(例如使用 Java 类或其他方式?)

  2. 或者使用 Java 然后从 Java 调用 Mathematica 是建议的路线吗?

  3. 或者(我希望不是)开发交互式图形程序超出了 Mathematica 的用途?


事件处理器 http://reference.wolfram.com/mathematica/ref/EventHandler.html可用于捕获各种鼠标事件(鼠标向上、鼠标向下、鼠标单击、鼠标拖动)。使用 MousePosition 来添加一些智能。

Example:

DynamicModule[{col1 = Green, col2 = Blue}, Graphics[
  {
   EventHandler[
    Dynamic[{col1, Disk[]}, 
     ImageSize -> 
      Tiny], {"MouseClicked" :> (col1 = 
        col1 /. {Red -> Green, Green -> Red})}],
   EventHandler[
    Dynamic[{col2, Disk[{1, 1}]}, 
     ImageSize -> 
      Tiny], {"MouseClicked" :> (col2 = 
        col2 /. {Blue -> Yellow, Yellow -> Blue})}]
   }
  ]
 ]

可以单独单击圆圈。为每个对象单独定义一个操作。

令人惊讶的是,这甚至适用于 3D 图形:

DynamicModule[{col1 = Green, col2 = Blue}, 
 Graphics3D[
  {
   EventHandler[
    Dynamic[{col1, Sphere[]}, 
     ImageSize -> 
      Tiny], {"MouseClicked" :> (col1 = 
        col1 /. {Red -> Green, Green -> Red})}], 
   EventHandler[
    Dynamic[{col2, Sphere[{1, 1, 1}]}, 
     ImageSize -> 
      Tiny], {"MouseClicked" :> (col2 = 
        col2 /. {Blue -> Yellow, Yellow -> Blue})}]
   }
  ]
 ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mathematica 和 MouseListener - 使用 Mma 开发交互式图形 的相关文章

  • Mathematica 中的空值和非空值测试

    在 Mathematica 中测试某个值是否为 Null 的最佳 最干净 建议的方法是什么 并且不为空 例如 a Null b 0 f n If n Null 1 2 f a f b 结果是 1 If 0 Null 1 2 我本来期望 f
  • 重新定义 Mathematica 中的非交换乘法

    Mathematicas NonCommutativeMultiply 不会简化诸如 a 0 0 a 0 a 1 1 a a or a a a 2 我想重新定义 去做这个 我使用 NCAlgebra 来执行此操作 但我需要 ReplaceR
  • 确定一个集合是否是另一个集合的子集的有效代码

    我正在寻找一种有效的方法来确定一个集合是否是 Matlab 或 Mathematica 中另一个集合的子集 例子 集合 A 1 2 3 4 集合 B 4 3 集 C 3 4 1 集合 D 4 3 2 1 输出应该是 设置A 集合B和C属于集
  • 在 Mathematica 中使用多个包和引用构建应用程序包

    我正在 Mathematica 中构建一个应用程序包 应用程序包含多个包并引用其他应用程序包 为了设置一切 我使用并遵循了工作台帮助部分的应用程序包说明 该部分也可以在以下位置找到 http reference wolfram com wo
  • 对函数体评估感到困惑

    我对以下行为感到困惑Function In 1 InlineCellInMessage Function expr DisplayForm Cell BoxData MakeBoxes expr StandardForm Input Hol
  • 有没有办法自动将Matlab 中的结果或数据导入到Mathematica 中?

    有没有办法将结果或数据 例如矩阵 从Matlab导入到Mathematica自动地 或者有什么方法可以先运行Matlab程序 然后运行Mathematica程序自动地 感谢您提供任何有用的答案 至少有三种方法可以解决这个问题 通过 Java
  • 在 MathLink 函数中检查中止?

    我刚刚发现这样的MathLink功能为LinkWrite and LinkRead有类似其内部的东西CheckAbort吸收任何中止 并且不会进一步传播它们 这可以很容易地显示为LinkRead link LinkLaunch First
  • 在 Mathematica 中查找先前定义的消息

    Mathematica 默认定义了许多有用的消息来表示常见错误 例如使用错误数量的参数调用函数或未找到文件 一般来说 我更喜欢尽可能使用现有的 已定义的消息 因为这样可以更轻松地通过诸如Check Quiet and On Off 然而 我
  • 如何让 Mathematica 内核暂停以创建外部文件

    是否可以在计算期间暂停 Mathematica 内核 这是一个例子 Module Mathematica code Calls an external program with some argument Needs to wait for
  • Mathematica:为什么 3D 绘图会记住最后的视点/旋转,即使在再次评估后也是如此?

    我觉得这有点烦人 我制作了一个 3D 绘图 最初它以默认方向出现 然后 我使用鼠标以某种方式旋转它 现在我再次运行该命令 期望获得原始形状 即通过鼠标旋转它之前的原始方向 但相反 它只是给了我与屏幕上相同的绘图 即它似乎保留 记住了该输出单
  • 创建自定义表格表示的函数

    我使用下面的代码来概述我的部分数据 从以下代码中创建函数的最佳方法是什么 它将采用 dataList 以及一些图形选项 例如颜色 作为参数 并返回自定义的表格表示形式 如下所示 overviewtheData Text Grid Map R
  • 如何在 Mathematica 8 中并行集成

    有人知道如何使用所有核心来计算积分吗 我需要使用并行化或并行表 但如何使用 f r Sum 1 n 2 r 2 n 7 2 n n r 2 n 1 x r 2 n 1 n 0 r 2 Nw Transpose Table f j i 1 j
  • 使用 select 操作 mathematica 中的列表

    我已将一些数据导入 Mathematica 中 数据将类似于 0 2 2 3 4 3 5 4 8 4 我想丢弃 x 值小于给定值的所有元素 或者创建一个包含 x 值大于该值的数据的新列表 我假设Select应该做这项工作 但我不知道怎么做
  • 为什么使用牛顿法的 FindMaximum 会抱怨找不到足够的函数减少?

    首先 这看起来 来自 ContourPlot 是一个相当简单的最大化问题 为什么使用牛顿法的 FindMaximum 会出现问题 其次 如何摆脱警告 第三 如果我无法摆脱这些警告 我如何判断警告是否有意义 即最大化失败 例如 在下面的代码中
  • 自定义后缀表示法,应用/函数

    我想在 Mathematica 7 中设置以下自定义符号 这种表示法本身并不是特别有用 因此请不要建议现有的替代方案 或指出这只会节省一些击键次数 我想知道是否可以以及如何完成 目前 可以进入 f 2 2 3 f a b c Out b a
  • 如何在mathematica中进行函数替换

    我有这样的表情D f x y x 我想替换f x y with x y 我尝试了以下方法 D f x y x f x y gt x y and D f x y x f gt x y 但两者都不起作用 将不胜感激您的帮助 谢谢 The Ful
  • Mathematica 和 MouseListener - 使用 Mma 开发交互式图形

    我想为 Mathematica 3D 图形添加交互性 除了 Manipulate 之外 Manipulate 很酷但有其局限性 考虑 Mathematica 中四个立方体问题的演示的四个示例 单击其中一个立方体即可旋转一个立方体 问题 是否
  • 避免重复调用 Interpolation

    我想在mathematica 中插入一个函数 该函数取决于参数a 实际上它是函数的反函数F这也取决于a 所以我建立我的近似值如下 approx Interpolation Table F 0 1 n a 0 1 n n 100 100 现在
  • Mathematica 中的数据缓存

    有一个非常耗时的操作在我的包中生成数据集 我想保存此数据集 并仅在我手动删除缓存文件时才让包重建它 这是我的方法作为包的一部分 myDataset Module fname data fname cached data mx If File
  • .NETLink Graphics 生成 PNG 而不是 EMF

    下面的 C 代码应该生成 EMF 但查看输出 在 Vim 中 显示它是 PNG 也许有人在 S O 知道一个好的解决方法或解决方案 MathKernel k new MathKernel k CaptureGraphics true k G

随机推荐

  • Apexcharts 项目栏上的最大宽度

    如何更改 Apexcharts 中项目栏的最大宽度 高度 https apexcharts com https apexcharts com 我有一个水平条形图 其数据是动态加载的 并且用户 项目 的数量各不相同 当用户很少或只有一个用户时
  • 使用@Singleton和@Stateless加载和缓存应用程序范围的数据

    我正在寻找一种优雅的解决方案来解决加载和缓存的老问题static shared应用程序启动时的数据 具有无限的生命周期 我以前的方法是 Spring Singleton Bean 但我现在正在尝试用 Spring Singleton Bea
  • 在 Ubuntu 上将 MPICH 与 Boost.MPI 结合使用

    我试图在 Ubuntu 12 04 下使用 boost mpi apt get 将安装 openmpi 但我运行一些其他软件 涉及扭矩 期望 mpich2 mpich 并抱怨 mpdstartup 找不到命令 我当然不想乱改软件来使用 op
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • Android 存储库初始化失败

    我想我非常仔细地遵循该网站的说明 http source android com source downloading html http source android com source downloading html 但是当我尝试这
  • GCC 5 及更高版本中的 AVX2 支持

    我编写了以下类 T 来加速操作 使用 AVX2 的 字符集 然后我发现它不起作用 gcc 5 及更高版本当我使用 O3 时 谁能帮我追踪到一些编程结构 已知不适用于最新的编译器 系统 该代码的工作原理 底层结构 bits 是一个 256 字
  • 加载位图图像至特定尺寸

    我正在尝试使用 allegro 将位图加载到特定大小 al crate bitmap x y 创建特定大小的位图 al load bitmap filename 加载我需要的图像 但为其原始大小 我需要将位图加载到我设置的大小 有任何想法吗
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • 如何配置database.yml以部署到Heroku

    我最近升级到了最新版本的Rails 并且不明白如何将应用程序部署到Heroku 这是我的database yml file default default adapter postgresql pool 5 timeout 5000 dev
  • maven 构建错误:创建阴影 jar 时出错(访问被拒绝)

    我尝试使用 Maven 制作 uberjar 时遇到以下错误 您知道可能发生什么情况吗 INFO ERROR BUILD ERROR INFO INFO Error creating shaded jar C Projects info b
  • npmjs.org - 找不到自述文件

    我是 npm 包的主要作者scramjet 一个月以来 我遇到了关于可视性的问题README md在 npmjs 中 The npm 中的超燃冲压发动机包 https www npmjs com package scramjet shows
  • 如何使用 pyDicom 替换同一 DICOM 文件中的像素数据,以便使用任何 DICOM 查看器再次读取它?

    我想读取一些 DICOM 文件 所以我正在测试pydicom对于我的工作来说 我认为这非常有用 现在我想加载现有的 DICOM 文件 用另一个像素数组替换像素数据数组 例如预处理或实际上另一个 DICOM 像素数组 最重要的是 我想使用任何
  • Java 编程错误:java.util.ConcurrentModificationException

    我正在编写一个程序作为 Java 初学者教程的一部分 我有以下方法 每当我运行它时 它都会给出以下异常 java util ConcurrentModificationException at java util AbstractList
  • .htaccess 强制“www”。除子域外的所有内容并删除尾随斜杠

    这是我到目前为止所拥有的 Force www RewriteCond HTTPS on RewriteCond HTTP HOST www NC RewriteRule http www HTTP HOST REQUEST URI R 30
  • 以下代码使用 std::set “合法”吗?

    我有这个代码 set
  • 使用 phpdocx 下载损坏的 .docx

    我有一个项目 我们使用 phpdocx pro 在模板中生成 docx 文件 我可以很容易地将数据输入到模板中 但是当下载文件并在 MS Word 2010 中打开时 程序报告无法打开文件 因为内容存在问题 详细信息是 文件已损坏 并且无法
  • 在java库中找不到源

    I m new to java and facing this problem while debugging code 我在使用外部文件时发现了 rt jar 但不起作用 这是否意味着该文件已损坏还是什么 您需要附加 src zip 作为
  • Java Mail - 以字符串形式读取附件

    我开始使用 Java Mail 我有一些关于附件处理的问题 如果我们的内容是Multipart即有一个附件 在哪个索引处是实际的附件 在哪个索引处我们可以找到邮件内容 我只想处理附件 这是正确的做法吗 如果我想将给定的附件转换为字符串 只需
  • gnuplot 中的块注释

    我有一个很长的 gnuplot 脚本 出于调试目的 我希望能够阻止该脚本的注释部分或使用 goto 语句 这可能吗 我知道我可以使用if陈述 if 1 2 commented out code else non commented out
  • Mathematica 和 MouseListener - 使用 Mma 开发交互式图形

    我想为 Mathematica 3D 图形添加交互性 除了 Manipulate 之外 Manipulate 很酷但有其局限性 考虑 Mathematica 中四个立方体问题的演示的四个示例 单击其中一个立方体即可旋转一个立方体 问题 是否