Image 扭曲纸张的3D效果

Image 扭曲纸张的3D效果,image,math,image-processing,3d,Image,Math,Image Processing,3d,这可能有点难以描述,因为我没有样品。我试图在php或类似语言中找到一个数学函数或完整的3d函数,可以帮助我实现以下效果: 想象一下,如果你拿一张平板或纸,把它粘在一杯水上。再也不会是平坦的了。它会有一条曲线,它的一条边可能会被稍微隐藏起来 任何人都可以在网上向我推荐一个好的图书馆或资源,在那里可以找到这样的功能?假设你的论文的中心是x=0,你的圆柱体是垂直于y轴的。纸上的x坐标可以等同于圆柱体表面上的弧长。弧长等于角度(弧度)乘以半径。给定了半径,因此可以根据弧长和半径计算角度。角度=弧长/半径

这可能有点难以描述,因为我没有样品。我试图在php或类似语言中找到一个数学函数或完整的3d函数,可以帮助我实现以下效果:

想象一下,如果你拿一张平板或纸,把它粘在一杯水上。再也不会是平坦的了。它会有一条曲线,它的一条边可能会被稍微隐藏起来


任何人都可以在网上向我推荐一个好的图书馆或资源,在那里可以找到这样的功能?

假设你的论文的中心是x=0,你的圆柱体是垂直于y轴的。纸上的x坐标可以等同于圆柱体表面上的弧长。弧长等于角度(弧度)乘以半径。给定了半径,因此可以根据弧长和半径计算角度。角度=弧长/半径。因为现在有了角度和半径,所以可以计算新的x偏移,即(半径*cos(角度))。因此,映射函数将是:

  • 新x=半径*cos(旧x/半径)
  • 新的=旧的//y坐标不变
  • 新_z=半径*sin(旧_x/半径)

您必须强制执行边界(将x保持在纸上,并确保其不超过圆周的一半(x必须小于或等于PI*r).此外,注意标志…尤其是z坐标,这取决于坐标系是右手坐标系还是左手坐标系,或者你想象的纸张从圆柱体(背面还是正面)开始的位置。最后,在获得扭曲坐标后,您可以使用标准矩阵变换在三维空间中移动和定位纸张/圆柱体。

查找什么?覆盖了多少纸张?听起来donpal需要一个映射函数,该函数将在一张平面纸上获取二维坐标,并将其转换为同一张纸上的等效三维坐标如果纸被包裹在一个圆柱形物体上,那么它的长度是t。基本上,你可以从纸接触玻璃开始,并有一个函数,当纸在玻璃周围弯曲时,给出纸上的坐标。你可以很容易地得出这个函数,将纸中心的距离转换为沿弯曲方向的距离这是一个3D效果,对吧,所以我们在这里讨论的是为页面的4个点/角计算新的x,y,z值。实际上,这一部分并不难。我可以算出将一张纸推进深度的数学公式,但为什么要给表面一个弯曲的效果呢我在寻求外界的帮助。@Triynko,没错,你明白了。这就是我想弄明白的。@Triynko,我还是迷路了。有没有关于三角的想法。我不是3D人,所以这对我来说有点新鲜。