二维图案映射到球体:
应用软件:VS2010;如有侵权,请联系小编;
基本原理:对球细化,我们将球等分成n块,尽量足够多,然后每一块可以看成是一个高度相同的圆柱。对图案细化,将二维图案等分成足够多的n条,与n块圆柱一一对应,这样我们可以将球体纹理映射看作成圆柱的侧表面纹理映射,所用映射函数是相同的。
细化后,设二维图案上一点P(x,y),对应在圆柱侧表面的三维坐标P1(x1,y1,z1),A是参数,调节图案的映射位置,r是圆柱半径。转换关系如下:
x1=r*cos(x/r+A);
y1=r*sin(x/r+A);
z1=A*y;
映射效果如下:
工程在MFC框架下完成。
二维图案分数维算法实现:
void CTestView::ReadSpherePoint()
{
for (int i = 0; i < 12; i++)
{
k0 = 1;
for (j = 0; j< i; ++j)
k0 = k0 * 2;
step = 4096 / (2 * k0);
for (j = 1; j <= k0; j++)
{
m = 2 * j*step;
n = 2 * (j - 1)*step;
l = (2 * j - 1)*step;