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. static易错点

    package com.juemuren.Error; /** * static关键字的易错点 */class SuperClass{    static{        System.out.pri ...

  2. (2018 Multi-University Training Contest 2)Problem G - Naive Operations

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6315 题目大意:告诉你a,b两个数组,a数组初始化为0,b数组告诉你长度和具体值,接下来有q次操作,a ...

  3. 1.5 select编写

    1.with:用于指定临时命名的结果 2.select A from B   在B中查看A 3.into 插入语句  例如:select A.B into 表1 from 表2 4.where 指定搜 ...

  4. 《贝贝GO》服务条款

    服务条款 一.服务条款的确认与接收 1.贝贝GO客户端软件(以下简称“本软件”)各项电子服务的所有权和运作权归属于“东莞市山水信息技术有限公司”(以下称“本公司”)所有,本软件提供的服务将完全按照其发 ...

  5. Android日常问题整理

    1.系统语言切换后Activity布局刷新问题 4.2增加了一个layoutDirection属性,当改变语言设置后,该属性也会成newConfig中的一个mask位.所以ActivityManage ...

  6. WebStorm 安装及使用

    WebStrom 插件安装 File(文件) -> settings(设置) -> Plugins 即可调出设置中的插件选项. 或者 按 快捷键ctrl + alt + s也可调出设置菜单 ...

  7. 微信小程序 - app.json配置解析

    { "pages": [ "pages/index/index", "pages/logs/logs", "pages/login ...

  8. Centos7_64环境搭建

    smb搭建参考 https://www.cnblogs.com/areyouready/p/10369917.html activeMq搭建参考 https://blog.csdn.net/u0122 ...

  9. 强大的css3库

    http://www.html5tricks.com/demo/css3-animate-css/index.html 关注微信小程序

  10. Delphi7第三方控件

    控件安装(安装时建议先关闭Delphi) 1.只有一个DCU文件的组件. DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布.一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本 ...