Qt::绘制框架-曲率控制-贝塞尔-QGraphicsObject-curveTo

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

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

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


目录

曲率调节控制

一、曲率调节控制原理

二、曲率绑定调节实现

1.代码示例

2.示例效果

三、曲率单一调节实现

1.代码示例

2.示例效果

​​​​​​​​​​​​​​四、曲率调节软件测试视频

结束语


曲率调节控制

本篇介绍软件左侧工具栏→绘制工具→​​​​曲率调节控制​​​

位置节点有尖点和贝塞尔节点,其中贝塞尔节点的曲率可调节控制。设计的对应功能包括:曲率大小设置、尖点和贝塞尔节点转换等。


一、曲率调节控制原理

为了操作和区分出位置节点是否为贝塞尔节点,贝塞尔节点需同时绘制出曲率控制手柄,既可经由曲率控制手柄调控矢量曲线曲率,也可看清位置节点的曲率控制节点个数,效果如下所示。

上图中,通过蓝绿色区分线条/节点的不同属性,其中,位置节点为绿色方块,曲率节点为蓝色方块,矢量线段为绿线,曲率控制手柄为蓝线。可以看到,一个位置节点可以有多个曲率控制手柄(特殊的,尖点没有曲率控制手柄),由此,也延伸出对曲率调节控制的2种模式:

① 模式一:【绑定调节】对有且仅有2个曲率控制手柄的位置节点,将2个曲率控制手柄进行绑定控制,以起到平滑矢量曲线的作用;(由于绘图需求,此模式被广泛采用。)

② 模式二:【单独调节】对于任意曲率控制手柄,均可单独调节。

曲率调节模式类型通过在位置节点设置属性变量(bool类型)来实现,通常采用alt键取反操作来设置该变量取值。

二、曲率绑定调节实现

1.代码示例

.h文件变量申明:

QList<QGraphicsItem*> posItems, curveItem;

QPointF delta;

QList<qreal> orginR;

.h文件方法申明:

/*角度计算::返回值为弧度制*/

qreal angleCal(qreal x,qreal y);

curveItems[0]->moveBy(delta.x(),delta.y());
qreal deltaX = curveItems[0]->x() - posItems[0]->x();
qreal deltaY = curveItems[0]->y() - posItems[0]->y();
qreal R0New = qSqrt(deltaX*deltaX+deltaY*deltaY);
qreal angle = angleCal(deltaX,deltaY);
qreal R1New = R0New*orginR[1]/orginR[0];
curveItems[1]->setX(posItems[0]->x()-R1New*qCos(angle));
curveItems[1]->setY(posItems[0]->y()-R1New*qSin(angle));

2.示例效果

绑定调节

三、曲率单一调节实现

1.代码示例

.h文件变量申明:

QList<QGraphicsItem*>  curveItem;

QPointF delta;

curveItems[0]->moveBy(delta.x(),delta.y());

2.示例效果

单一调节

​​​​​​​


​​​​​​​​​​​​​​四、曲率调节软件测试视频

曲率控制调节实现


结束语

本文简要梳理了软件曲率调节控制的实现框架,内容均为原创。

作者文笔水平一般,请大家多多包涵和指正,十分欢迎进一步交流学习。

若需,请联系本人小红书(小红书号:YzLab96),谢谢​​​​​​​。

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机图形学:原理与实践》第21章-动画 动画在计算机图形学中起着重要的作用,它可以通过计算机生成逼真的运动图像来模拟现实世界中的动态效果。第21章详细介绍了动画的原理和实践。 动画的目标是通过序列帧的播放来创造出连续的运动感。本章介绍了两种常见的动画制作方法:关键帧动画和插值动画。 关键帧动画是通过在时间轴上选择关键帧来定义动画的开始和结束状态,然后计算机会自动填充中间帧。这种方法可以减少制作动画的工作量,但帧与帧之间的过渡可能不够平滑。 插值动画则通过在关键帧之间插入中间帧来创建流畅的动画效果。其中,线性插值是最简单的方法,通过计算两个关键帧之间的过渡来生成中间帧。其他的插值方法还包括贝塞尔线插值和样条插值等,它们能够更好地保持物体的形态和运动特性。 此外,本章还介绍了动画中的常见技术,如运动模糊和骨骼动画。运动模糊通过在连续帧之间模糊对象来模拟物体的运动轨迹,使动画更加真实。骨骼动画则是通过在物体上添加骨骼和关节来模拟物体的形变和动作,从而实现更加灵活和逼真的动画效果。 此外,本章还介绍了动画中使用的额外技术,如动画蒙皮和递归动画。动画蒙皮是将物体的外表表面贴上一个虚拟的模型,使其能够更好地跟随物体的运动。递归动画则是通过将一个物体分解成多个部分,然后对每个部分进行独立的动画处理,最终合成整个物体的动画。 总而言之,《计算机图形学:原理与实践》第21章详细介绍了动画的原理和实践,包括关键帧动画、插值动画、运动模糊、骨骼动画、动画蒙皮和递归动画等技术。通过学习本章内容,读者可以更好地理解和应用计算机图形学中的动画技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值