水波实现算法
图形学做课设~有个水体波纹·有个函数看不懂··来请教各位大大
希望有帮忙的·不胜感激
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;
}
}
}
希望有帮忙的·不胜感激
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;
}
}
}
...全文
相关推荐
优化的水波纹算法,含实现原理说明
该文章整理了水波纹基于嵌入式系统的优化算法,是的漂亮的水波纹可以在嵌入式系统上流畅的运行
水波算法改进与C#实现项目实战
精英”指的是当前迭代中适应度最优的个体。在水波算法中,保留精英解有助于防止在后续迭代中丢失当前最优解。选择机制:每次迭代结束后,将当前最优解加入“精英池”。精英池大小固定,采用“替换最差”策略更新。
基于水波优化算法的图像匹配MATLAB实现与实战
图像匹配作为计算机视觉领域的核心任务之一,其目标是在不同时间、视角或传感器条件下获取的两幅或多幅图像之间建立像素级或特征级的空间对应关系。这一过程本质上是一个高维非线性优化问题,涉及复杂的几何变换建模与相似性度量设计。随着遥感技术、医学成像系统和智能驾驶等应用的快速发展,对图像配准精度、鲁棒性和实时性的要求日益提高。传统基于梯度下降或穷举搜索的方法在面对大位移、非刚性形变或多模态数据时往往表现不佳,难以满足实际工程需求。
水波算法--改进的水波算法
水波算法,采用传统的水波算法,然后添加自己的算法,大博文
WWO.zip_WWO_WWO算法_matlab_水波优化_水波算法
水波优化算法。一个比较简单的最基础的水波优化算法


图形处理/算法
