500*_*500 5 graphics wolfram-mathematica
请考虑 :
Manipulate[
Row[{
Graphics[Disk[]],
Graphics[{
Polygon[{{0, 0}, {3, 0}, {3, 1}, {0, 1}},
VertexColors -> {White, Blend[{White, Blue}],
Blend[{White, Blue}], White}],
Black, Thick,
Line[{{i, 0}, {i, 1}}]}, ImageSize -> 300]}],
{i, 0, 3}]
Run Code Online (Sandbox Code Playgroud)
使用Szabolcs的梯度填充解决方案
如何使用位于黑线下方的颜色为磁盘着色?
这是一个有效的解决方案,因为左边的颜色White
和渐变是线性的.
With[{max = 3, color = Blend[{White, Blue}]},
Manipulate[
Row[{Graphics[{Opacity[i/max], color, Disk[]}],
Graphics[{Polygon[{{0, 0}, {max, 0}, {max, 1}, {0, 1}},
VertexColors -> {White, color, color, White}], Black, Thick,
Line[{{i, 0}, {i, 1}}]}, ImageSize -> 300]}], {i, 0, max}]]
Run Code Online (Sandbox Code Playgroud)
如果每个末端都有两种不同的颜色(即不同的颜色White
),则该Opacity
方法不起作用.相反,您可以将可选的混合分数参数用于Blend
所需比例的颜色.这是一个例子:
With[{max = 3, color1 = Red, color2 = Green},
Manipulate[
Row[{Graphics[{Blend[{color1, color2}, i/max], Disk[]}],
Graphics[{Polygon[{{0, 0}, {max, 0}, {max, 1}, {0, 1}},
VertexColors -> {color1, color2, color2, color1}], Black,
Thick, Line[{{i, 0}, {i, 1}}]}, ImageSize -> 300]}], {i, 0,
max}]]
Run Code Online (Sandbox Code Playgroud)
如果你需要这样做,除了某些东西和白色的混合颜色,Opacity
将不适合.你可以使用第二个参数更接近Szabolcs的原始解决方案,Blend
如下所示:
skyBlue = Blend[{White,Blue}];
Manipulate[ Row[{ Graphics[{Blend[{White,skyBlue},i/3], Disk[]}],
Graphics[{ Polygon[{{0, 0}, {3, 0}, {3, 1}, {0, 1}},
VertexColors -> {White, skyBlue,
skyBlue, White}], Black, Thick,
Line[{{i, 0}, {i, 1}}]}, ImageSize -> 300]}], {i, 0, 3}]
Run Code Online (Sandbox Code Playgroud)
我除以i
3是因为该参数意味着在0
和之间变化1
.