如何在VPython中为每个盒子的颜色着色?

时间:2018-03-07 13:24:19

标签: python-3.x vpython

我想用VPython制作一个魔方,我在第一阶段遇到了问题!我想用不同的颜色为每个盒子的颜色着色,但我无法找到它!在教程中,您只能使用一种颜色为框的所有面部着色!

我该怎么办?

注意:我使用的是VPython 7和Python 3.6

2 个答案:

答案 0 :(得分:0)

您可以尝试使用与此演示中所示类似的6个框中的不同颜色的面板制作一个框,其中该框具有红色蓝色和灰色面。

http://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/program/Bounce-VPython

您还可以使用多个对象制作复合对象。

http://www.glowscript.org/docs/VPythonDocs/compound.html

所以你可以制作一个叫做五彩盒子的复合物体,由六盒不同颜色的盒子组成。

你也可以尝试用三角形和/或四边形创建自己的盒子并为每个脸部着色。

http://www.glowscript.org/docs/VPythonDocs/triangle.html

答案 1 :(得分:0)

您还可以使用由6个不同颜色的金字塔对象组成的复合对象制作一个具有不同颜色面的框。

def cubelet(....): # a "factory function"
#create a list of the 6 pyramids with different colors; suppose its name is L

L = [pyramid(color=color.red,pos=vec(),axis=vec()), ... ]
return compound(L)

c = cubelet(....)

这个"工厂功能" (返回对象的函数)返回一个对象,该对象具有原始对象(如box)的常用属性。您可以通过更改c.pos或c.axis等来操作此复合对象。您可以创建此cubelet的副本:

c2 = c.clone(pos=vec(10,5,0), size=vec(2,1,0.2))

对于金字塔,请参阅文档

http://www.glowscript.org/docs/VPythonDocs/pyramid.html

只需将其中的6个以盒子形状排列即可。对于复合对象,请参阅

http://www.glowscript.org/docs/VPythonDocs/compound.html

从6个金字塔中制作复合物。