Recursion 我试着用递归的答案画出每棵树3到3个分支的深度,但答案很奇怪?

Recursion 我试着用递归的答案画出每棵树3到3个分支的深度,但答案很奇怪?,recursion,three.js,Recursion,Three.js,我根据来自的答案,使用递归尝试绘制一个深度为3和3个分支的图 但它打印了一个奇怪的答案,如图三 请告诉我哪里出了问题。谢谢 图片一: 图二:我用for来画答案 图三:奇怪的答案 该算法使用深度优先顺序,这意味着需要调整顶点的顺序 ABCFGHDIJKELMN 身体{ 保证金:0; } c{ 宽度:100vw; 高度:100vh; 显示:块; } 将*作为三个源导入'https://threejsfundamentals.org/threejs/resources/threejs/r115/b

我根据来自的答案,使用递归尝试绘制一个深度为3和3个分支的图 但它打印了一个奇怪的答案,如图三 请告诉我哪里出了问题。谢谢

图片一: 图二:我用for来画答案

图三:奇怪的答案


该算法使用深度优先顺序,这意味着需要调整顶点的顺序

ABCFGHDIJKELMN
身体{ 保证金:0; } c{ 宽度:100vw; 高度:100vh; 显示:块; } 将*作为三个源导入'https://threejsfundamentals.org/threejs/resources/threejs/r115/build/three.module.js'; 主要功能{ const canvas=document.querySelector'c'; const renderer=new THREE.WebGLRenderer{canvas}; 常数fov=75; const aspect=2;//画布默认值 常数near=1; 常数far=1000; const-camera=新的3.PerspectiveCamerafov、aspect、near、far; camera.position.set250500,-75; 摄像机。注视0,200,0; const scene=新的三个场景; scene.background=新的三种颜色'lightskyblue'; { 常量颜色=0xFFFFFF; 常数强度=1; 恒光=新的三向光颜色、强度; light.position.set1、2、4; scene.addlight; } //ABCFGHDIJKELMN 常数树=[ [0,0,0],//A [-2104,4],//B [39183,-23],//C [-156270,-72],//F [-115296,-63],//G [-106326,6],//H [-4230,19],//D [-8236623],//I [-43360123],//J [10294144],//K [34192,-61],//E [76271,-176],//L [132289,-150],//M [97228,-63],//N ].mapv=>新的3.Vector3.fromArrayv; //假设每个分支有3个分支 函数addBranchparent,深度,偏移量,树,parentNdx=0,childNdx=1{ const start=tree[parentNdx]; const end=tree[childNdx]; const length=start.distanceToend; const material=new THREE.MeshPhongMaterial{color:'ff0000'}; const geometry=新的三圆柱几何5,5,长度20,1,假; geometry.translate0,长度/2,0; geometry.rotateXMath.PI/2; const mesh=新的三个网格几何体、材质; 网格位置z=偏移量; parent.addmesh; 目数; 设ndx=childNdx+1; 如果深度>1{ 常数numBranches=3; 对于let i=0;iABCFGHDIJKELMN