源码分享 GDIPlus绘制旋转七彩动画

实现方法:
使用GDIPlus,FillPie方法,把各个色块当饼形图画出。
void CRotateAnimation::DrawPie(HDC hDC)
{
Gdiplus::Graphics* pGraphics=new Gdiplus::Graphics(hDC);
pGraphics->SetSmoothingMode(SmoothingModeHighQuality);
Gdiplus::Color clr(150,0,0,0);
Gdiplus::SolidBrush* pBrush=new Gdiplus::SolidBrush(clr);
//--------------------------------------------------------
//计算外圈、内圈位置
Gdiplus::Rect rcOut(m_Rect);
Gdiplus::Rect rcIn(rcOut);
rcIn.Inflate(-m_ItemSize,-m_ItemSize);
//--------------------------------------------------------
//先画出外圈小方块
float fStartAngle = -90;//起始绘制角度
float fSweepAngle = 360 / m_AnimationCount;//每小块的角度
for(int i=0;i<m_AnimationCount;i++)
{
clr.SetFromCOLORREF(m_pAnimationArray[i].clrOut);
pBrush->SetColor(clr);
pGraphics->FillPie(pBrush,rcOut, fStartAngle, fSweepAngle - m_MarginAngle);
fStartAngle = fStartAngle + fSweepAngle;
}
//--------------------------------------------------------
//画出内圈小方块;
fStartAngle = -90;
for(int i=0;i<m_AnimationCount;i++)
{
clr.SetFromCOLORREF(m_pAnimationArray[i].clrIn);
pBrush->SetColor(clr);
pGraphics->FillPie(pBrush,rcIn, fStartAngle, fSweepAngle - m_MarginAngle);
fStartAngle = fStartAngle + fSweepAngle;
}
//--------------------------------------------------------
//画出中间圆心,用控件底色填充
rcIn.Inflate(-m_ItemSize,-m_ItemSize);
clr.SetFromCOLORREF(m_ColorBack);
pBrush->SetColor(clr);
pGraphics->FillEllipse(pBrush,rcIn);
//--------------------------------------------------------
delete pBrush;
delete pGraphics;
}源码下载
http://blog.csdn.net/cometnet/article/details/53363596
...全文
相关推荐
FTP多连接自动上传工具
FTP多连接自动上传工具
P1851 好朋友.mp4
P1851 好朋友.mp4
自由学习记录(229)1
自由学习记录(229)1
人工智能基于神经网络的前向传播与反向传播算法:多层感知机在手写数字识别中的应用
内容概要:本文系统讲解了人工神经网络的核心原理与实现方法,从生物神经元启发出发,详细推导前向传播、损失函数、反向传播与梯度下降四大关键机制,并基于NumPy从零实现一个多层感知机(MLP),在MNIST手写数字数据集上完成分类任务。文中涵盖激活函数(如ReLU、Sigmoid)、交叉熵损失、Softmax输出、Adam优化器等核心技术点,提供完整可运行代码,并对比SGD与Adam的训练表现,帮助读者深入理解神经网络的工作流程和调优策略。; 适合人群:具备Python和线性代数基础,对深度学习感兴趣的学生、工程师或科研人员,尤其适合希望从底层掌握神经网络原理的学习者。; 使用场景及目标:①理解神经网络的基本构成单元及其数学原理;②掌握前向传播与反向传播的实现细节;③学会用NumPy构建可训练模型;④比较不同优化器的收敛特性并进行模型调优。; 阅读建议:建议边阅读边运行代码,重点关注每一层的输入输出形状、梯度传递过程以及参数更新逻辑,结合文末常见问题表进行调试与实验,加深对训练动态的理解。
chromedriver-win64-159.0.8132.0(Canary).zip
chromedriver-win64-159.0.8132.0(Canary).zip


界面
