int inc = 0;

//整数inc等于0

while(inc < 6){

//inc在小于6的范围内递增

if(rand(@ptnum + inc + ch("seed")) < ch("variance")){

inc++;

//如果随机数小于variance,产生递增值

continue;

}

float angle = radians(60 * inc);

//angle的值等于(1-5之间的递增值)*60度

vector axis = @N;

//旋转轴向等于点的法线属性

matrix rot = ident();

//定义矩阵rot

rotate(rot, angle, axis);

vector dir = v@dir * rot;

//dir的值等于原始dir乘以旋转度数

vector step = @P + dir * ch("step");

//step等于原始位置+(base中dir的随机的方向*长度)

vector rp, ruv;

int ray = intersect(2, @P + dir * 0.015, dir, rp, ruv);

//输出与边界框(端口2)相交处的坐标与uv坐标rp和ruv

if(ray == -1){

//如果不相交

int handle = pcopen(1, "P", step, ch("rad"), 1);

//pcopen打开点云查询查询范围是“rad”,查询点的个数是1

vector naxis = pcfilter(handle, "N");

//定义矢量属性naxis,是查询点的处的N属性

vector ndir = pcfilter(handle, "dir");

//定义矢量属性ndir,是查询点处的dir属性

pcclose(handle);

//pcclose这个函数用来关闭与pcopen相关的handle

int prim = addprim(0, "polyline");

//在0号端口处添加图元(polyline),为prim

int pt0 = addpoint(0, @P);

//在0号端口的@P处添加点,为pt0

int pt1 = addpoint(0, step);

//在0号端口的step处添加点,为pt1

addvertex(0, prim, pt0);

//在pt0处,图元名为prim的位置添加顶点

addvertex(0, prim, pt1);

//在pt1处,图元名为prim的位置添加顶点

setpointattrib(0, "end", pt1, 1);

//在pt1处设置end属性,值为1

setpointattrib(0, "N", pt1, naxis);

//在pt1处设置N属性,值为naxis

setpointattrib(0, "dir", pt1, ndir);

}

inc++;

}

i@base = 0;

i@start = 0;

frost_vex_01的更多相关文章

随机推荐

  1. Linux 下编程

    关于Linux 下的C语言编译命令和编程要点! https://www.cnblogs.com/wfwenchao/p/3985153.html?utm_source=tuicool&utm_ ...

  2. 关于js数组的简单复制

    var a=[]; a.push(1); a.push(2); a.push(3); var b=a; b[0]=4; alert(a);//4,2,3 alert(b);//4,2,3 这种写法由于 ...

  3. windows分驱

    步骤/方法   1 鼠标右击“计算机” 2 选择“管理”标签 3 打开“计算机管理”窗口   选择“磁盘“>>”存储管理“,打开”磁盘管理“页面 如图:   右键单击选择要压缩的磁盘(本例 ...

  4. μCOS-Ⅲ——临界段

    临界段代码(critical sections),也叫临界区(critical region),是指那些必须完整连续运行,不可被打断的代码段.μC/OS-Ⅲ系统中存在大量临界段代码.采用两种方式对临界 ...

  5. 安装SSD

    前面两篇文章讲了用SSD检测框架训练自己的数据集,这篇补充一下SSD的安装.github链接:https://github.com/weiliu89/caffe/tree/ssdSSD是16年ECCV ...

  6. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  7. 四、fgets与fputs

    fgets 描述:从流中读取最多size个字符,遇到文件末尾或\n则停止读取,该函数会在读取到的字符最后加上\0. 原型:char *fgets(char *s, int size, FILE *st ...

  8. 《团队-爬虫豆瓣top250项目-团队一阶段互评》

    团队名称:咣咣踹电脑 学号:2015035107217姓名:耿文浩 得分10 原因:组长带领的好,任务分配的好,积极帮助组员解决问题 学号:2015035107213姓名:周鑫 得分8 原因:勇于分担 ...

  9. linux定时清理日志

    服务器硬盘较小,需要自动删除日志 1.编写find命令 首先编写需要删除文件的sh #删除50天前的日志 find */logs -mtime +50 -exec rm -f {} \; #注意目录  ...

  10. nginx和resin一二三

    最近听我们这边的开发讲解了一小下nginx和resin,现在Mark一下,可能不专业,但是对于我来说通俗易懂就好哈哈哈. 首先说服务器,服务器这个东西吧它是干啥的呢,你写的页面只能在你自己的电脑上打开 ...