【问题标题】:How to color every face of a box in VPython?如何在 VPython 中为盒子的每个面着色?
【发布时间】:2018-03-07 13:24:19
【问题描述】:

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

我该怎么办?

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

【问题讨论】:

    标签: python-3.x vpython


    【解决方案1】:

    您还可以使用由 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 等来操作此复合对象。您可以创建此立方体的副本:

    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 个金字塔制作复合物体。

    【讨论】:

      【解决方案2】:

      您可以尝试从 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

      【讨论】:

        猜你喜欢
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-05
        • 1970-01-01
        • 2021-05-02
        相关资源
        最近更新 更多