Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在webgl中制作保龄球销状结构_Webgl - Fatal编程技术网

如何在webgl中制作保龄球销状结构

如何在webgl中制作保龄球销状结构,webgl,Webgl,我想要一个这样的结构: 我做了一个圆筒,并在上面放了一个较小的圆筒。 对于基础圆柱体,我想随着y的增加,平滑地增加x坐标,直到max(y坐标)的一半,然后随着y的增加,平滑地减少x,对于y>half(max(y坐标))。 但旋转形状会使其变形 有没有一种方法可以使用基本的webgl而不是任何高级库(如Three.js)生成这样的形状。正如我在评论中提到的,生成3D形状的最常用方法是使用3D建模包,如Blender或Maya或3D Studio Max或DAZ或Cinema4D等 如果你真的想在

我想要一个这样的结构:

我做了一个圆筒,并在上面放了一个较小的圆筒。 对于基础圆柱体,我想随着y的增加,平滑地增加x坐标,直到max(y坐标)的一半,然后随着y的增加,平滑地减少x,对于y>half(max(y坐标))。 但旋转形状会使其变形


有没有一种方法可以使用基本的webgl而不是任何高级库(如Three.js)生成这样的形状。

正如我在评论中提到的,生成3D形状的最常用方法是使用3D建模包,如Blender或Maya或3D Studio Max或DAZ或Cinema4D等

如果你真的想在代码中实现它,那么最明显的想法是创建一个函数,生成一个圆柱体,然后使用正弦波将其挤压到正确的位置。但这可能无法达到您想要的效果,因为您需要使圆柱体具有非常高的分辨率(许多顶点),以便顶部圆形部分变得平滑

一个3D建模软件包可能会这样做,你会使用一个工具来创建保龄球杆的2D轮廓。然后围绕中心“车削”或旋转样条曲线以生成顶点。建模包将设置沿样条线放置的点的数量以及周围要生成的点的数量。它还有一些设置来决定是沿样条线等距放置点,还是进行某种曲线拟合/误差累积,以确定需要更多点的位置,以及需要更少点的位置


我最终对此感到好奇,所以制作任何特定形状的最常见方法是使用3d建模包,如3dsmax、Maya、Cinema4D、DAZ等。。然后导出并提取数据。gman说,如果你已经找到了一种程序方法,只是在失真方面有问题,这是一个操作顺序的问题,因为现在的问题太广泛了,不清楚你是在寻找2D还是3D、SDF、顶点变换还是制作保龄球的javascript片段,你没有表现出你的努力,所以是帮助你解决问题,而不是为你解决问题。