⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animrect.cpp

📁 爱可视605看PDF程式源代码, 基于APDF
💻 CPP
字号:
#include "animrect.h"#include <assert.h>#include <stdio.h>AnimRect::AnimRect()	: m_frames(1)	, m_actframe(1) {}void AnimRect::set(const QRect &a, const QRect &b, int frames) {	m_a= a;	m_b= b;	m_frames= frames;	m_actframe= 0;			assert(m_frames > 0);}QRect AnimRect::currentFrame() const {	return calcFrame(m_actframe);}QRect AnimRect::nextFrame() {	if(!framesLeft()) {		return m_b;	} else {		return calcFrame(m_actframe++);	}}QRect AnimRect::lastFrame() const {	return m_b;}QRect AnimRect::nextHull() const {	if(m_actframe <= 0) {		return m_a;//	} else if(!framesLeft()) {//		return m_b;	} else {		return calcFrame(m_actframe - 1) | calcFrame(m_actframe);	}}QRect AnimRect::calcFrame(int frame) const {//printf("a AnimRect::calcFrame(%i) of %i\n", frame, m_frames);	if(frame >= m_frames || m_frames == 1) return m_b;	int x1, y1, w1, h1;	int x2, y2, w2, h2;	m_a.rect(&x1, &y1, &w1, &h1);	m_b.rect(&x2, &y2, &w2, &h2);	int a= m_frames - frame - 1;	int b= frame;	int x= (a* x1 + b* x2)/ (m_frames - 1);	int y= (a* y1 + b* y2)/ (m_frames - 1);	int w= (a* w1 + b* w2)/ (m_frames - 1);	int h= (a* h1 + b* h2)/ (m_frames - 1);//printf("b AnimRect::calcFrame %i\n", QRect(x, y, w, h) == m_a);	return QRect(x, y, w, h);}bool AnimRect::framesLeft() const {	return m_actframe < m_frames;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -