EZ - Tree 设备
关于
EZ-Tree是一个程序树生成器,具有数十个可捕金枪鱼参数. 独立树生成代码作为库来发布,可以被导入到您自己的应用程序中,用于按需要动态生成树. 此外,还有一个独立的网络应用程序允许您在浏览器内创建树并导出为.PNG或.GLB文件.
应用
安装
npm i @dgreenheck/ez-tree
使用量
// Create new instance
const tree = new Tree();
// Set parameters
tree.options.seed = 12345;
tree.options.trunk.length = 20;
tree.options.branch.levels = 3;
// Generate tree and add to your Three.js scene
tree.generate();
scene.add(tree);
每当树的参数被改变,你必须呼叫 generate() 以再生几何.
本地运行独立应用程序
要在本地运行独立应用程序,您首先需要在运行该应用程序之前建立 EZ-Tree 库.
npm install
npm run app
与 Docker 一起运行 App
docker compose build
docker compose up -d
树参数
这个 TreeOptions 类定义了控制程序生成树的各种参数的选项对象。 这个物体的每个属性都允许定制树的外观,包括树皮,树枝和树叶. 以下详细解释 TreeOptions 对象.
一般属性
seed:设置随机生成的初始值,在使用同种种子时确保树生成的一致性.type: 定义树的种类, 它可以设置为从TreeType列举(例如,TreeType.Deciduous) (中文(简体) ).
桶参数
这个 bark 对象控制树干外观和属性.
type:指定要使用的树皮纹理类型,从BarkType列举(例如,BarkType.Oak) (中文(简体) ).tint:确定适用于树皮的颜色锡,定义为十六进制颜色值(例如,0xffffff白纸黑字.flatShading:布尔属性表示是否使用平面阴影(true)或平滑阴影(false为了树皮.textured:指向树皮的纹理的布尔值(true或者说false) (中文(简体) ).textureScale: 控制树皮纹理在两侧的大小x财务报告和审定财务报表y斧头. 它是一个有属性的对象x财务报告和审定财务报表y以定义缩放系数.
分支参数
这个 branch 对象定义树干和分支级的参数.
levels: 递归分行级数. 设为0只创建树干,而更高的值会增加更多的分支.angle:定义取角,以度为单位,儿童分支相对于父母分支生长. 这对每一级别都作了单独规定.children:指定每个级别上的儿童分支的数目,并附索引(0, (中文(简体) ),1, (中文(简体) ),2)代表级别.force: 代表鼓励树木生长的外部定向力量,定义如下:direction(矢量对象){ x, y, z }和strength(数字值).gnarliness: 定义每个分支级别应如何扭曲或卷曲,为每个级别指定.length: 各级分行长度. 这是一个带有每个关卡的密钥的对象 .radius:每等分枝的半径(或厚度).sections: 沿每个分支级别长度的段数,控制分支网格的分辨率.segments: 构成每个分支的光圈片段数,值较高后产生更平滑的圆柱.start: 指定父分支(作为从0改为1儿童分支应开始形成.taper:控制每个级别分行的磁带. 值之间0财务报告和审定财务报表1定义从基到尖的半径减少.twist: 定义每个分支级别应用的扭矩量.
叶参数
这个 leaves 对象定义了控制叶子外观和位置的属性.
type: 指定从LeafType列举(例如,LeafType.Oak) (中文(简体) ).billboard: 定义叶子的渲染方式. 这个Billboard可设置为Single或者说Double以表示单一或垂直双面叶.angle: 定义叶子相对于母分支的角度,以度为单位.count:要生成的叶数.start: 指定树枝长度的行间位置(作为值)0财务报告和审定财务报表1)叶子应该开始生长.size:叶的大小,以数值表示.sizeVariance:指定每个叶子实例的大小应有多大差异,使叶子看起来更自然.tint:适用于叶片的丁色,被定义为十六进制颜色值(例如,0xffffff白纸黑字.alphaTest:设置叶子透明性的α阈值,控制叶子纹理的透明度.