如果图形是由ReliefPlot或DensityPlot等函数生成的,使用Opacity来控制外观,是否可以在Mathematica中叠加两个或多个图形?
例如:
a = ReliefPlot[
Table[i + Sin[i^2 + j^2], {i, -4, 4, .03}, {j, -4, 4, .03}], ImageSize -> 100]
b = ReliefPlot[
Table[i + Sin[i^3 + j^3], {i, -4, 4, .03}, {j, -4, 4, .03}], ImageSize -> 100]
Show[a,b]
Run Code Online (Sandbox Code Playgroud)

结合这两者,但我无法弄清楚如何在这里任何地方插入一个不透明度命令,以便两者都可见.文档说明这些函数接受与Graphics相同的选项("ReliefPlot具有与Graphics相同的选项,具有以下添加和更改:"),但我不明白如何控制图形......(我可能对图形选项和指令之间的区别感到困惑.)
启蒙 - 不那么透明 - 非常欢迎!
编辑:哇,你们比我的Mathematica版本更快 - 谢谢!
我正在尝试覆盖不同字体的字形,但很难让它们排成一行.我敢肯定他们应该排队比这更好.我怎样才能做到这一点?
Graphics[
{Opacity[0.1],
{Text[Style["a", FontFamily -> "Helvetica", 240]],
Text[Style["a", FontFamily -> "Arial", 240]]}
}]
Run Code Online (Sandbox Code Playgroud)
此外,我有兴趣绘制轮廓 - 这里我选择了它们,但我想绘制它们.

编辑:谢谢!在您的帮助下,我能够实现我想要的大部分内容:
Manipulate[
Graphics[{{{Opacity[opacity],
Text[Style["Greats", Red, FontFamily -> "Helvetica", 180], {0,
0}, {Center, Baseline}]}, {Opacity[1 - opacity],
Text[Style["Greats", Blue, FontFamily -> "Arial", 180], {0,
0}, {Center, Baseline}]}}}], {opacity, 0.1, 1, 0.1}]
Run Code Online (Sandbox Code Playgroud)

是否可以自动将任何文本添加到多面体的面上,如此手动绘制的图形显示(示例的奇数编号方案不相关):

标记顶点很容易:
c = 1;
Show[{Graphics3D[
Text[c++, #] & /@ PolyhedronData["Dodecahedron", "VertexCoordinates"]],
PolyhedronData["Dodecahedron"]},
Boxed -> False]
Run Code Online (Sandbox Code Playgroud)

(即使一些文本放在隐藏顶点的形状前面.这可能是可溶的.)
但是,当我试图为面孔做同样的事情时,没有任何效果.PolyhedronData["Dodecahedron", "Faces"]返回GraphicsComplex,而不是坐标.
我忽略了一个简单的解决方案/选项吗?
编辑:感谢这些答案,他们都很棒.如果我能将szabolcs的答案的文本放置与belisarius的文本质量相结合,那么完美的解决方案就在眼前!
我正在尝试使用ImageTransformation函数来尝试制作变形版本的图像,但到目前为止进展有限.我的目标是使用在柱面镜中反射的图像得到的结果,图像在中心镜周围弯曲约270度.在维基百科的文章有几个精致的例子(和我借霍尔拜因的头骨从他们太).
i = Import["../Desktop/Holbein_Skull.jpg"];
Run Code Online (Sandbox Code Playgroud)

i = ImageResize[i, 120]
f[x_, y_] := {(2 (y - 0.3) Cos [1.5 x]), (2 (y - 0.3) Sin [1.5 x])};
ImageTransformation[i, f[#[[1]], #[[2]]] &, Padding -> White]
Run Code Online (Sandbox Code Playgroud)

但我无法说服Mathematica向我展示整个图像,或者正确地弯曲它.变形图像应该围绕放置在图像中心"内部"的镜子,但它不会.我通过将其放入一个操作(并将分辨率降低:)来找到常量的合适值.我正在使用这个公式:
x1 = a(y + b) cos(kx)
y1 = a(y + b) sin(kx)
Run Code Online (Sandbox Code Playgroud)
任何帮助产生更好的结果将不胜感激!
在探索了Heike对我之前关于变形变换的问题的非常好的答案之后,我最终想要看到一个完全由里面翻转的图像.
我们的想法是,不仅仅是通过变形变换来拉伸图像,就像你拉动纸张的边缘一样,你实际上可以将纸张"从里面拉出来".内部"像素"将被拉出到边缘(极度扭曲/拉伸),而外部像素将向内朝向中心压扁(大大缩小).
我无法说明它,但另一种尝试描述它的方法是在这张图片中:

因此,像素越红,它们转换到边缘的次数就越多(反之亦然).
我尝试过FindGeometricTransform,但它似乎没有任何领先优势.

这对谷歌来说并不容易,我还没有在Mathematica中找到任何线索,这种破坏性的转变是可能的.这是一种2.5D的重新投影.
你怎么看?可能吗?
编辑
所以,由于你的答案很好,我现在可以正确地说明我的问题:
这是莱昂纳多着名的Anom Asil,这是对可怜的Lisa进行内向外变换的结果():

这是布拉格的Orloj:

对此的实际用途即将到来,呃,很快......
谢谢!
我一直无法正确安排图形元素.这是一个例子:
im1 = Import["http://upload.wikimedia.org/wikipedia/commons/5/5c/London_2010_Tower_Bridge.jpg"];
GraphicsRow[{im1, ImageAdd[im1, Graphics[Disk[]]], Graphics[Disk[]]}]
Run Code Online (Sandbox Code Playgroud)

圆圈都以相同的方式指定,但以不同的比例显示,因此试图显示其工作原理的图表并不十分令人满意.显然,一个缩放以匹配图像,但我不明白为什么它们看起来不相同.Row类似于GraphicsRow但给了我同样的问题.
我可以问一个简单的初学者的问题,在我的任何一个文本中都无法找到一个易于理解的答案(在某些情况下,这些文本已经很老了,早于版本6)?你如何使用多面体,就好像它们是像Sphere和Cuboid这样的图形基元?即,以一个点为中心并缩放.以下是一些愚蠢的例子来说明这一点:
(* spheres along a path *)
data = Table[{Cos[t], Sin[t], Sin[t] Cos[2 t]}, {t, 0, 2 Pi, Pi/24}];
Graphics3D[Sphere[#, 0.3] & /@ data]
Run Code Online (Sandbox Code Playgroud)

(* cubes along a path *)
Graphics3D[Cuboid[#, # + 0.1] & /@ data]
Run Code Online (Sandbox Code Playgroud)

那么如何将icosahedra置于特定的点和规模,写出类似的东西
Graphics3D[icosahedron[#, 0.1] & /@ data]
Run Code Online (Sandbox Code Playgroud)
编辑:我认为我的问题是如何制作GraphicsComplex和Graphics3D合作.例如,我目前在哪里:
shapes[ct_, siz_] := {Sphere[ct - .2, siz ], Sphere[ct - 0.1, siz]};
Graphics3D[{{shapes[#, size] & /@ data}}]
Run Code Online (Sandbox Code Playgroud)
我想替换Sphere[]用icosahedron[].我目前正试图让Heike的解决方案工作......
编辑2:现在工作正常,谢谢Heike.不确定我会不会得到它3D打印 - 看起来有点不舒服...

我正试图找到一种在图像中寻找颜色的方法.这是一个简化的例子:
tree = ExampleData[{"TestImage", "Tree"}]
Run Code Online (Sandbox Code Playgroud)

我可以看到那里有蓝色,所以我想在像素海洋中的某个位置找到xy位置.假设我正在寻找特定的蓝色阴影,我可以提供一些近似的RGB值:
Manipulate[Graphics[{RGBColor[r, g, b], Disk[]}], {r, 0, 1}, {g, 0, 1}, {b, 0, 1}]
Run Code Online (Sandbox Code Playgroud)

现在我想找到一些具有该值或足够近的像素的坐标.Nearest也许能够做到:
Nearest[ImageData[tree], {0.32, 0.65, .8}]
Run Code Online (Sandbox Code Playgroud)
但不是 - 它"产生了非常大的输出"......
这样做的反面:
ImageValue[tree, {90, 90}]
Run Code Online (Sandbox Code Playgroud)
如果我已经有数字,那就没问题,或者可以点击图片.一旦我想要的颜色的位置已知,我就可以将其提供给需要"标记"的功能 - 例如RegionBinarize.
我觉得必须有Mathematica功能,但还是找不到它......
我正在尝试使用Mathematica示例.这是Theo Gray博客上的那个.
我认为Mathematica自编写该代码以来一定发生了变化(2008年5月),因为尽管几乎改变了一切,但我无法从中得到任何合理的结果.我是否使用ImageData而不是Import?任何人都可以建议这个代码的版本适用于Mathematica 8?
imagePool =
Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &,
FileNames["Pool/*.jpg"]];
closeMatch[c_] :=
RandomChoice[Take[SortBy[imagePool, Norm[c - #[[2]]] &], 20]][[1]];
Grid[Reverse[
Map[closeMatch, Import["MendeleevIcon.tif"][[1, 1]], {2}]],
Spacings -> {0, 0}]
Run Code Online (Sandbox Code Playgroud) 我的第一个小时是(迷人的)J语言,看起来很不错,但我遇到了第一个问题,我无法在文档的帮助下进行分析.
如何计算字符串中的字符数:
y =. 'hello world'
(~. y) ; " 0 (+/ " 1 =y)
?????
?h?1?
?????
?e?1?
?????
?l?3?
?????
?o?2?
?????
? ?1?
?????
?w?1?
?????
?r?1?
?????
?d?1?
?????
Run Code Online (Sandbox Code Playgroud)
但是我怎么能丢掉盒子呢?我收集;了两个项目在一个水平框中加入,但没有框字符似乎很难做到这一点.如何得到:
h 1
e 1
l 3
Run Code Online (Sandbox Code Playgroud)
等等?这是演示选项吗?