如何解决Mathematica:删除图形基元
| 假设“ 0”是具有诸如“ 1”和“ 2”之类的原语的图形对象,如何删除其中的一些?要向现有图形对象添加更多图元,我们可以使用Show
,例如:Show[g,g2]
其中g2
是具有其他图元的另一个图形对象。但是,如何删除不需要的原始对象?看一下以下内容
ListPlot3D[{{0,1},{1,0},{0,1,0}},Mesh -> {1,1}]
现在,对于输入表单:
InputForm[
ListPlot3D[{{0,1}]
]
要从该对象创建线框,我们要做的就是删除多边形。另外,我们也可以删除顶点法线,因为它们不影响线框。
注意,要制作线框,我们可以简单地在ListPlot3D
中设置PlotStyle -> None
作为选项。这样就摆脱了ѭ2,但并没有删除remove11。
为了澄清这个问题。鉴于
g = ListPlot3D[{{0,1}]
如何从g
中删除某些图形基元,以及如何删除VertexNormals
中的某些选项?注意:选项VertexNormals
是选项GraphicsComplex
。
如果这不可能,那么下一个问题可能是,如何获取用于生成“ 0”的数据,并使用从“ 0”获得的一些数据来生成新的图形对象。
解决方法
一种方法是使用转换规则。给你
im = ListPlot3D[{{0,1},{1,0},{0,1,0}},Mesh -> {1,1}]
你可以做
newim = im /. {_Polygon :> Sequence[],(VertexNormals -> _) :> Sequence[]}
或者,更紧凑地使用Alternatives
:
newim = im /. _Polygon | (VertexNormals -> _) :> Sequence[]
您还可以使用DeleteCases
获得类似的效果:
newim = DeleteCases[im,(_Polygon | (VertexNormals -> _)),Infinity]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。