水波实现算法

eatmyball 2009-09-22 05:02:52
图形学做课设~有个水体波纹·有个函数看不懂··来请教各位大大
希望有帮忙的·不胜感激
void CWaterRoutine::HeightBlob(int x, int y, int radius, int height, int page)
{
int rquad;
int cx, cy, cyq;
int left, top, right, bottom;

int *newptr;
int *oldptr;

// Set up the pointers
if(page == 0)
{
newptr = &m_iHeightField1[0];
oldptr = &m_iHeightField2[0];
}
else
{
newptr = &m_iHeightField2[0];
oldptr = &m_iHeightField1[0];
}

rquad = radius * radius;

// Make a randomly-placed blob...
if(x<0) x = 1+radius+ rand()%(m_iWidth-2*radius-1);
if(y<0) y = 1+radius+ rand()%(m_iHeight-2*radius-1);

left=-radius; right = radius;
top=-radius; bottom = radius;

// Perform edge clipping...
if(x - radius < 1) left -= (x-radius-1);
if(y - radius < 1) top -= (y-radius-1);
if(x + radius > m_iWidth-1) right -= (x+radius-m_iWidth+1);
if(y + radius > m_iHeight-1) bottom-= (y+radius-m_iHeight+1);


for(cy = top; cy < bottom; cy++)
{
cyq = cy*cy;
for(cx = left; cx < right; cx++)
{
if(cx*cx + cyq < rquad)
newptr[m_iWidth*(cy+y) + (cx+x)] += height;
}
}

}

...全文
90 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eatmyball 2009-09-24
  • 打赏
  • 举报
回复
哎 ~~~沉了沉了~~没人看了
eatmyball 2009-09-23
  • 打赏
  • 举报
回复
为什么总是没人回复呢··
大家都很忙?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧