二维矢量动画智能制作软件开发合集
个人开发二维矢量动画智能制作软件界面如下:
目录
一、栅格捕捉原理
在软件视图工具栏中,设置了栅格捕捉及栅格设置功能。
启用栅格即在绘制界面最底层绘制栅格(可理解为现实生活中的网格纸),该功能可以协助画家更直观的感受图形大小,若启用栅格捕捉功能,则能够自动吸附至栅格节点上,避免了画家手动确认的不精确性。
本软件在提供了2种栅格,分别是:1)矩形栅格;2)环形栅格。
捕捉实现原理就是在QGraphicsScene的所有QGraphicsSceneMouseEvent中对mouseEvent的scenePos属性进行重新计算赋值。
二、栅格捕捉代码实现
.h文件变量申明:
int gridType; //栅格类型 0::矩形1::环形
QPointF Scene::snap2GridPos(QPointF p)
{
QPointF pos = mapFromScene(p);
if(gridType == 0)
{
pos.setX((int)(pos.x()/gridSpace)*gridSpace);
pos.setY((int)(pos.y()/gridSpace)*gridSpace);
}
else
{
QLineF l1(QPointF(0,0),QPointF(1,0));
QLineF l2(QPointF(0,0),pos);
int len = (int)(l2.length()/gridSpace)*gridSpace;
int ang = (int)(l2.angleTo(l1)/5)*5;
pos.setX(len*qCos(ang*M_PI/180));
pos.setY(len*qSin(ang*M_PI/180));
}
return mapToScene(pos);
}
三、栅格捕捉软件测试视频
捕捉栅格测试
结束语
本文简要梳理了软件【栅格捕捉】的实现框架,内容均为原创。
作者文笔水平一般,请大家多多包涵和指正,十分欢迎进一步交流学习。
若需,请联系本人小红书(小红书号:YzLab96),谢谢。
链接: 软件开发及测试所有视频合集见小红书