gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:42:45 24 4
gpt4 key购买 nike

我想为 Mathematica 3D 图形添加交互性,而不是使用很酷但有其局限性的 Manipulate。想想 Mathematica 中四个立方体问题的演示的四个示例,单击其中一个立方体可以旋转一个立方体。

问题。

  • 是否可以在 Mathematica 图形中捕获 MouseEvents(例如使用 Java 类或其他方式?)
  • 或者使用 Java 然后从 Java 调用 Mathematica 是建议的路线?
  • 或者(我希望不是)正在开发超出 Mathematica 应该做什么的交互式图形程序?
  • 最佳答案

    EventHandler可用于捕捉各种鼠标事件(鼠标向上、鼠标向下、鼠标点击、鼠标拖动)。使用 MousePosition 添加一些智能。

    例子:

    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})}]
    }
    ]
    ]

    enter image description here

    圆圈可以独立点击。为每个对象单独定义一个 Action 。

    令人惊讶的是,这甚至适用于 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})}]
    }
    ]
    ]

    enter image description here

    关于wolfram-mathematica - Mathematica 和 MouseListener - 使用 Mma 开发交互式图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6189570/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com