我制作了一个圆柱体并在其上放置了一个较小的圆柱体。 对于基础圆柱体,我考虑平滑地增加x坐标直到最大(y坐标)的一半随着y的增加,然后平滑地减小x,对于y> 0。当y增加时,一半(最大(y坐标))。 但旋转形状会扭曲它。
有没有办法使用基本webgl而不是像Three.js这样的高级库来制作这样的形状。
答案 0 :(得分:0)
正如我在评论中提到的,制作3D形状的最常用方法是使用像Blender或Maya或3D Studio Max或DAZ或Cinema4D等3D建模软件包......
如果你真的想在代码中这样做,那么最明显的想法就是制作一个功能,使圆柱体然后使用正弦波将其夹在正确的位置。这可能不会让你想要你想要的,因为你需要制作圆柱体非常高的res(许多顶点),以使顶部圆形部分变得光滑。
3D建模包可能会这样做的方法是使用spline来创建保龄球的2D轮廓。然后,您将“车床”或围绕中心旋转样条线以生成顶点。建模包将设置沿样条曲线放置多少个点以及生成多少个点。它还可以设置决定是否沿着样条曲线以相等的距离放置点,或者进行某种曲线拟合/误差累积,以确定需要更多点的位置以及需要更少点的位置。
我最后对此感到好奇I wrote an article about it