1 Star 0 Fork 0

LeoBei/demodemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
SInterpolatorView.cpp 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
huangjianxiong 提交于 2017-10-02 00:35 . 视频实现patheffect
#include "stdafx.h"
#include "SInterpolatorView.h"
namespace SOUI
{
SInterpolatorView::SInterpolatorView(void):m_nSpeed(5),m_iFrame(0),m_fTime(0.0f)
{
}
SInterpolatorView::~SInterpolatorView(void)
{
}
void SInterpolatorView::OnNextFrame()
{
if(m_interpolator && IsVisible(TRUE))
{
m_iFrame++;
if(m_iFrame%m_nSpeed==0)
{
m_fTime += 0.02f;
if(m_fTime>=1.0f)
{
m_fTime = 0.0f;
}
float fValue = m_interpolator->getInterpolation(m_fTime);
int nValue = m_nMinValue + (int)((m_nMaxValue - m_nMinValue)*fValue);
SetValue(nValue);
m_iFrame = 0;
}
}
}
void SInterpolatorView::SetInterpolator(IInterpolator *pInterpolator)
{
m_interpolator = pInterpolator;
m_iFrame = 0;
}
int SInterpolatorView::OnCreate(void*)
{
int nRet = __super::OnCreate(NULL);
if(nRet == 0)
{
GetContainer()->RegisterTimelineHandler(this);
}
return nRet;
}
void SInterpolatorView::OnDestroy()
{
GetContainer()->RegisterTimelineHandler(this);
__super::OnDestroy();
}
void SInterpolatorView::OnPaint(IRenderTarget * pRT)
{
CAutoRefPtr<IPath> path;
if(GETRENDERFACTORY->CreatePath(&path))
{
CRect rc = GetClientRect();
CAutoRefPtr<IPen> pen,oldPen;
pRT->CreatePen(PS_DASH,RGBA(255,0,0,255),3,&pen);
pRT->SelectObject(pen,(IRenderObj**)&oldPen);
path->moveTo(rc.left,rc.top);
path->quadTo((rc.right+rc.left)/2,rc.bottom + rc.Height(),rc.right,rc.top);
pRT->DrawPath(path);
pRT->SelectObject(oldPen);
}
__super::OnPaint(pRT);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/leeyoubay/demodemo.git
git@gitee.com:leeyoubay/demodemo.git
leeyoubay
demodemo
demodemo
master

搜索帮助