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. unity解压缩zip发布后的一些问题

    前段时间项目需要,搞了下zip的解压缩问题,也是利用ICSharpCode.SharpZipLib.dll来处理的zip,这里说下之前遇到的坑(这里提供我用的这个库ICSharpCode.SharpZ ...

  2. 多线程之 Thread类

    一.多线程第一种方式的实现步骤(继承Thread类) 代码演示: 1.定义MyThread类,继承Thread类 2.重写了里面的run方法,在run方法中定义线程要执行的任务 public clas ...

  3. Map集合练习题

    (Map)已知某学校的教学课程内容安排如下: 完成下列要求:1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排.2) 增加了一位新老师Allen 教JDBC3) Lu ...

  4. spring Ioc容器之使用XML配置Bean

    1.项目截图 2.创建xml文件 3.打印机接口 package com.example.demo.computerTest; public interface Printer { void init ...

  5. Vue对Html标签应用条件渲染

    我的需求 在flag属性为true时 渲染标签的html为 <input :data-val-required="不能为空"/> 在flag属性为false时 渲染标签 ...

  6. nginx——优化 Nginx access 日志

    1. 配置日志切割 #!/bin/bash savepath_log='/usr/local/clogs' nglogs='/usr/local/nginx/logs' mkdir -p $savep ...

  7. TCP学习总结(二)

    前面一节咱们介绍完了TCP协议,这部分,将要介绍,TCP是如何实现可靠传输的. TCP的可靠传输 1.滑动窗口 上一节我们介绍TCP报文段头部的时候说得到,"窗口"这个部分,&qu ...

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

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

  9. IIs实验,中间件漏洞

    实验一.IIS实验 1.修改端口   开始→管理工具→Internet 信息服务(IIS)管理器,属性,将端口改为 8080 如图: 2.    IP 地址绑定 前面步骤同第一题一样,将 Ip 改为本 ...

  10. 洛谷p1181 数列分段section I

    #include<iostream> #include<vector> #include<algorithm> using namespace std; int M ...