For Each Loop Node
涉及到随机变量的情况都可以使用stamp随机来完成,在老版本中for循环还可以使用stamp,如`stamp("..","FORVALUE",0)`
对当前循环执行到第几次进行计数 (tab 键上面的点`) 固定用法不能改------老版用法
但是在新版本中stamp一般常用在copy中来取随机值
stamp function
stamp("../copy1","ABC",0)
寻找相对路径名字为copy1,变量名字为ABC的属性,并复刻属性。最后的0是赋予默认值,以防写错找不到copy1
而在for循环中新版使用detail属性和iteration属性来引用
detail function
detail("..","iteration",0)
或者使用
point function
vex中
for循环:
int x;//(int num = chi("num");
for(x=0;x<3;x++) //for(int i=0;i<num;i++)
{
//do this;
}
由此我们可以看出foreach 循环与for循环的区别:foreach 需要数组,而for 循环不需要。
for循环想使用数组的时候,需要使用len()函数,以保证数组里面的数据能被循环到,如:
for(x=0;x<len(@examplearrray);x++)
while循环
while(//This condition is true)
{
//Run this code;
}
//基本格式
尝试用while 写一个颜色的案例 例如:
v@v = {0,1,0};
while(@P.y<100)
{
@Cd.g -= .1;
@Cd.b -= .1;
if(@Cd.g<=0);
{
pointremove(0,@ptnum);
}
break;
}
首先设置一个矢量方向为Y轴的速度,在条件函数while 下,如果位置信息小于100时,那么颜色green 和颜色blue 值会一直-1循环,直到小于或等于0被排除掉,即只剩下红色,嵌套条件函数if 当绿色green信息值 小于或等于0时,这些点会被移除,最后用break来终止本次循环。书写的过程要注意规范。
int num = chi(“num”);
int i = 0;
while(i<num)
{
int pt = addpoint(0,set(i,0,0));
i++;
}
当整数值i小于num值成立时,添加一个点,并且执行 i+1的的循环
do循环
do
{
@P.y += .1;
@icounter +=1;
}
while(@P.y<1000);
执行do循环函数,当y位置信息<1000时,点y位置循环+0.1,数量同时+1,直到y位置信息>1000时候,停止循环。
补充:for/whine/do while 循环表达完全不一样,需要加以甄别
主要区别在于:for loop 中条件前置,只有当**成立时,则执行i+1的操作
while loop中,先执行第一次的指令,如果满足条件,则继续i+1
do while loop中,先执行指令,然后再对满足条件进行验证
数组(矩阵)Arrays ForEach Loop 例子
阵列:i[]@exampleArray = {1,2,3,4}; foreach循环:foreach(int x;@examplearray)
v[]@colors = {{1,0,0},{0,1,0},{0,0,1}};
foreach(vector x;@colors)
{
if(x={1,0,0})
{
@colors[0] = set(rand(@ptnum+123),rand(@ptnum+12),rand(@ptnum+2))
}
}
@Cd = @colors[0];
三元矢量数组--矢量颜色为红绿蓝叠加色=白色