@Zi_Heyun 在 13VEX101-Custom Functions 就是切割矩形的时候,我也是按照课程代码来敲的,可是就会无缘无故多出三个面,不知道是怎么回事,我想来想去,也不知道错误出在哪里
代码如下:
float seed = chf("seed");
int npts[] = primpoints(0,@primnum);
string grp = itoa(@primnum);
vector bbmin = getbbox_min(0,grp);
vector bbmax = getbbox_max(0,grp);
vector bbsize = getbbox_size(0,grp);
int cutdir;
if (bbsize.x > bbsize.z)
cutdir = 0;
else
cutdir = 1;
float cutpos = rand(@primnum + seed);
// Subdivision
vector cut = lerp(bbmin,bbmax,cutpos);
vector pos;
int newpt;
cutdir = 0;
if(cutdir == 0){
//first quad
int newprim = addprim(0,"poly");
pos = bbmin;
newpt = addpoint(0,pos);
addvertex(0,newprim,newpt);
pos = set(cut.x,bbmin.y,bbmin.z);
newpt = addpoint(0,pos);
addvertex(0,newprim,newpt);
pos = set(cut.x,bbmin.y,bbmax.z);
newpt = addpoint(0,pos);
addvertex(0,newprim,newpt);
pos = set(bbmin.x,bbmin.y,bbmax.z);
newpt = addpoint(0,pos);
addvertex(0,newprim,newpt);
}