Qt::工程框架-栅格捕捉-snapToGrid

二维矢量动画智能制作软件开发合集

链接:软件开发技术分享及记录合集

个人开发二维矢量动画智能制作软件界面如下:

目录

栅格捕捉

一、栅格捕捉原理

二、栅格捕捉代码实现

三、栅格捕捉软件测试视频

结束语


一、栅格捕捉原理

在软件视图工具栏中,设置了栅格捕捉及栅格设置功能。

启用栅格即在绘制界面最底层绘制栅格(可理解为现实生活中的网格纸),该功能可以协助画家更直观的感受图形大小,若启用栅格捕捉功能,则能够自动吸附至栅格节点上,避免了画家手动确认的不精确性。

本软件在提供了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),谢谢。

链接:  软件开发及测试所有视频合集见小红书​​​​​​​

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值