如何解决Mathematica和MouseListener-用Mma开发交互式图形
|| 我想向Mathematica 3D图形添加交互性,除了使用Manipulate之外,它很酷,但有其局限性。想想Mathematica中四个立方体问题的演示的四个示例,单击其中一个立方体将旋转一个立方体。 问题。 是否有可能在Mathematica图形中捕获MouseEvent(例如,使用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}]},{\"MouseClicked\" :> (col2 =
col2 /. {Blue -> Yellow,Yellow -> Blue})}]
}
]
]
圆圈可以独立单击。分别为每个对象定义一个动作。
令人惊讶的是,这甚至适用于3D图形:
DynamicModule[{col1 = Green,Graphics3D[
{
EventHandler[
Dynamic[{col1,Sphere[]},Sphere[{1,1,Yellow -> Blue})}]
}
]
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。