Wolfram mathematica 如何加速使用自定义记号显示图形的动态过程?
以下内容改编自真实世界的代码:Wolfram mathematica 如何加速使用自定义记号显示图形的动态过程?,wolfram-mathematica,Wolfram Mathematica,以下内容改编自真实世界的代码: ticks = Join[ Table[{i, Style[i, 10, Background -> White], {.04, 0}}, {i, 0, 20, 1}], Table[{i, Null, {.01, 0}}, {i, 0, 20, 0.1}], Table[{i, Null, {.025, 0}}, {i, 0, 20, 0.5}] ]; loc = {1, 1}; LocatorPane[ Dynami
ticks = Join[
Table[{i, Style[i, 10, Background -> White], {.04, 0}}, {i, 0, 20,
1}],
Table[{i, Null, {.01, 0}}, {i, 0, 20, 0.1}],
Table[{i, Null, {.025, 0}}, {i, 0, 20, 0.5}]
];
loc = {1, 1};
LocatorPane[
Dynamic[loc, loc[[2]] = #[[2]]; &],
Dynamic@Show[
Graphics[{Dashed,
Line[{{loc[[1]] - 0.5, loc[[2]]}, {0, loc[[2]]}}]}],
ImageSize -> 300, PlotRange -> {{-10, 10}, {0, 20}},
Axes -> {False, True}, AxesOrigin -> {0, 0},
Ticks -> {Automatic, ticks}
]]
我遇到的问题是,当我使用自定义标记时,更新(移动定位器)会比使用自动标记(ticks->{automatic,automatic}
)慢得多。我怎样才能避免我认为是一段时间
(我确实需要
Dynamic@Show[…]
用于此代码示例中未显示的其他更新原因)。作为移动动态
内部的示例:
ticks = Join[
Table[{i, Style[i, 10, Background -> White], {.04, 0}}, {i, 0, 20,
1}], Table[{i, Null, {.01, 0}}, {i, 0, 20, 0.1}],
Table[{i, Null, {.025, 0}}, {i, 0, 20, 0.5}]];
loc = {1, 1};
LocatorPane[Dynamic[loc, loc[[2]] = #[[2]]; &],
Show[Graphics[
Dynamic@{Dashed, Line[{{loc[[1]] - 3, loc[[2]]}, {3, loc[[2]]}}]}],
ImageSize -> 300, PlotRange -> {{-10, 10}, {0, 20}},
Axes -> {False, True}, AxesOrigin -> {0, 0},
Ticks -> {Automatic, ticks}]]
如果不了解更多关于程序其余部分的信息,我将帮不上什么忙。请提供有关
Dynamic@Show
程序的一部分。您可以很好地渲染一组记号
,然后覆盖图形
。根据您尝试执行的操作,您还可以在图形
中移动动态
:显示[图形[动态]@{虚线,
你能给出一个更完整的例子,说明为什么你需要动态
在显示
之外吗?正如其他人所提到的,如果你能将动态
进一步推到里面,你就有可能得到一个更具响应性的图形。我有一个函数返回一个图形对象,我也是这样做的:Show[Graphics[…],myFunction[loc]]显示的替代方法是使用First等提取图形的各个部分并手动构建一个新的部分。特别是如果图形没有更改,在动态情况下,这可能会快得多。我有一个返回图形对象的函数,所以我会:Show[Graphics[…],myFunction[loc]]。是否有安全的方法删除元素的图形标题,以便在元素之间添加动态?@P.Fonseca您可以使用myFunction[loc]/.graphics[e\u]:>graphics[Dynamic[e]]
而不仅仅是myFunction[loc]
。