QT总结10-绘制箭头

在使用QT绘制时,有时候会需要用到箭头,这里写了关于如何计算箭头。

float x1 = begin.x();
float y1 = begin.y();
float x2 = end.x();
float y2 = end.y();

double angle = atan2(y2-y1,x2-x1);//计算线段的夹角
float l = 10;//箭头边的长度
float a = 0.5;//箭头与线段的夹角

float new_x1 = x2 - l * cos( angle - a);
float new_y1 = y2 - l * sin( angle - a);
float new_x2 = x2 - l * cos( angle + a);
float new_y2 = y2 - l * sin( angle + a);

绘制箭头需要三个顶点,将end和新计算出的两个点连起来就是一个箭头。

这里用一个图进行简单的描述,画的比较糙,凑活看。
在这里插入图片描述
A点是线段的终点(QT坐标系方向相反,倒着看就好),B,C是箭头的另外的两个端点。黄色的角代表线段与箭头的夹角,蓝色的角是线段的夹角。通过上面的计算公式可以得到箭头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值