绘制云气泡
来源:互联网 发布:js 输入数字和小数点 编辑:程序博客网 时间:2024/04/30 06:47
/*
绘制云气泡
Canvas 绘制画板
Rect 绘制范围,绘制完毕后返回客户区域
Size 气泡大小
bDraw 是否绘制,false只是计算客户区域大小
成功返回0,失败返回-1
*/
int DrawCloud(TCanvas* Canvas, TRect& Rect, TColor Color, int Size, bool bDraw)
{
vector<int> szbuf;
size_t index;
Rect.left += Size;
Rect.top += Size;
Rect.right -=Size;
Rect.bottom -=Size;
if(Rect.right<Rect.Left)return -1;
if(Rect.bottom<Rect.Top)return -1;
if(!bDraw)return 0;
int px = Rect.left;
int py = Rect.top;
randomize();
index = 0;
Canvas->Brush->Color = Color;
Canvas->Pen->Color = Color;
for(; px < Rect.right; )
{
if(index==szbuf.size())szbuf.push_back(Size/4+random(Size/4*3));
int n = Rect.right-px;
if(szbuf[index] < n)
{
Canvas->Ellipse(px-szbuf[index], py-szbuf[index],
px+szbuf[index], py+szbuf[index]);
px += szbuf[index];
++index;
}
else
{
Canvas->Ellipse(px-n, py-n, px+n, py+n);
px += n;
}
}
for(; py < Rect.bottom; )
{
if(index==szbuf.size())szbuf.push_back(Size/4+random(Size/4*3));
int n = Rect.bottom-py;
if(szbuf[index] < n)
{
Canvas->Ellipse(px-szbuf[index], py-szbuf[index],
px+szbuf[index], py+szbuf[index]);
py += szbuf[index];
++index;
}
else
{
Canvas->Ellipse(px-n, py-n, px+n, py+n);
py += n;
}
}
for(; px > Rect.left; )
{
if(index==szbuf.size())szbuf.push_back(Size/4+random(Size/4*3));
int n = -Rect.left + px;
if(szbuf[index] < n)
{
Canvas->Ellipse(px-szbuf[index], py-szbuf[index],
px+szbuf[index], py+szbuf[index]);
px -= szbuf[index];
++index;
}
else
{
Canvas->Ellipse(px-n, py-n, px+n, py+n);
px -= n;
}
}
for(; py > Rect.top; )
{
if(index==szbuf.size())szbuf.push_back(Size/4+random(Size/4*3));
int n = -Rect.top+py;
if(szbuf[index] < n)
{
Canvas->Ellipse(px-szbuf[index], py-szbuf[index],
px+szbuf[index], py+szbuf[index]);
py -= szbuf[index];
++index;
}
else
{
Canvas->Ellipse(px-n, py-n, px+n, py+n);
py -= n;
}
}
Canvas->FillRect(Rect);
return 0;
}
- 绘制云气泡
- 从奶茶恋看刘强东马云气质之不同
- 绘制
- 绘制一棵树
- 绘制直方图
- 绘制平行线
- 绘制曲线
- 绘制边框
- 绘制图形
- 位图绘制
- 绘制文字
- 绘制图像
- 曲线绘制
- 绘制流水线
- 位图绘制
- 绘制条形码
- 绘制圆
- 体绘制
- 互聯網產品設計主題詞表
- QTP-SystemUtil的使用
- 【转载】android核心模块和相关技术简介
- 用户sa登录失败,该用户与可信sql server连接无关联
- 本周实训总结和体会
- 绘制云气泡
- asp中关于从utf8页面到gb2312页面出现乱码得解决
- 一个ASP站内搜索的实例源代码
- ERP自主開發,沒有專家,唯一有希望的是你自己
- 用友自动化测试面试提问
- 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法
- 使用itext生成PDF文档入门
- 多线程断点续传实例
- NET企业级架构解决方案:业务层