2016-09-21 20 views
1

我一直在尝试使用以下代码在X形中排列多维数据集。为了更好地理解最终产品应该是什么样子,请想象每个立方体代表一个像素。通过For-loop语句将多维数据集排列成X形

它们应该以阶梯状图案堆叠,边缘只能触摸。 200为每个方向(1为中心的立方体,199每1 4的斜方向各块。)这是我走到这一步:

// CENTRAL BASE CUBE 
polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 

int $i; 
for ($i = 0; $i < 199; i++) { 

    // CUBE BRANCH TOP LEFT 
    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 -3.0 -3.1 ; 

    // CUBE BRANCH TOP RIGHT 
    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 3.0 3.1 ; 

    // CUBE BRANCH BOTTOM LEFT 
    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 0.3 0.04 ; 

    // CUBE BRANCH BOTTOM RIGHT 
    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 -0.3 -0.04 ; 
} 

我试着运行上面我当前的脚本,它赢得由于返回下面的错误而无法执行。尽管从我所知道的看起来似乎是正确的,但这似乎是句法的。我想可能有一些做的$i没有在Maya的编辑,尽管第二突出强调了一审(而不是由编辑认可?):

// Error: for ($i=0; $i<199; i++) 
// 
// Error: Line 4.22: Invalid use of Maya object "i". 
+0

借口星期的沉默:调整代码工作 为构建@ 0。每个举动乘以X&Y基地二手递增的基数1: for($ i = 0; $ i <100; $ i ++){ \t polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0; \t move -r($ i * 1)($ i * 1)0; \t} for($ i = 1; $ i <100; $ i ++)\t polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0; \t move -r($ i * -1)($ i * 1)0; \t} for($ i = 1; $ i <100; $ i ++)\t polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0; \t move -r($ i * 1)($ i * -1)0; \t} for($ i = 1; $ i <100; $ i ++)\t polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0; \t move -r($ i * -1)($ i * -1)0; \t} – Sarki241

回答

1

首先,你在代码中犯了一个错误。在$i++中缺少$。其次,如果$i = 0$i < 200,你将在每一个1/4边(而不是199)上得到200个立方体。

第三,在每个方向上使用(+/-2 * $i)进行增量移动(4以外)。

这里的代码如下所示:

polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 

int $i ; 

for ($i = 0; $i < 200; $i++) { 

    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 (2*$i) (2*$i) ; 

    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 (-2*$i) (-2*$i) ; 

    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 (2*$i) (-2*$i) ; 

    polyCube -ch on -o on -w 1.5 -h 2 -d 2 ; 
    move -r 0 (-2*$i) (2*$i) ; 
}; 

enter image description here