mathematica如何实现这种动态图?

Pla*_*iac 5 graphics wolfram-mathematica

这是BBC动态图形.我想有可能在Mathematica中重现图形.

在此输入图像描述

在回答的过程中,我们将在MMA中看到一些迷人的图形技巧.这是在这里提出这个问题的唯一原因.

更新:

我刚刚检查过BBC使用简单的JavaScript来做到这一点.他们手动制作了静态图片,甚至没有使用基于Flash的事件处理.因此,所有图片都是静态实体,一旦我们点击一​​个国家,它就会生成一个独特的图像.对于其他国家,它显示其他图像.每个案例的单独图像可以通过PowerPoint,Visio甚至Photoshop生成.人们可以通过在浏览器中禁用JavaScript并重新加载页面来检查这一点.

我知道那些单张照片可以从MMA制作.一些答案显示了如何做到这一点的正确方向.所以我接受到目前为止最好的答案.

Dr.*_*ius 3

只是另一个首发:

a = Point[{0, 0}];
b = .75 Tuples[{1, -1}, 2][[{3, 1, 2, 4}]];
PieChart[
 {
  Button[1, (a = {Thickness[.05], Arrowheads[.1], 
      Arrow[BSplineCurve@{b[[1]], {0, 0}, #}] & /@ b})],
  Button[1, (a = {Thickness[.05], Arrowheads[.1], 
      Arrow[BSplineCurve@{b[[2]], {0, 0}, #}] & /@ b})],
  Button[1, (a = {Thickness[.05], Arrowheads[.1], 
      Arrow[BSplineCurve@{b[[3]], {0, 0}, #}] & /@ b})],
  Button[1, (a = {Thickness[.05], Arrowheads[.1], 
      Arrow[BSplineCurve@{b[[4]], {0, 0}, #}] & /@ b})],
  }
 ,
 SectorOrigin -> {Automatic, 1},
 Epilog -> Dynamic@a]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑更紧凑:

a = Point[{0, 0}];
b = .75 Tuples[{1, -1}, 2][[{3, 1, 2, 4}]];
PieChart[
 ReleaseHold[Replace[Table[
    List[1, 
     ReplaceAll[
      Hold[a = {Thickness[.05], Arrowheads[.1], 
         Arrow[BSplineCurve@{k, {0, 0}, #}] & /@ b}], k -> i]],
    {i, b}], List -> Button, {2}, Heads -> True]]
 ,
 SectorOrigin -> {Automatic, 1},
 Epilog -> Dynamic@a]
Run Code Online (Sandbox Code Playgroud)