Qt如何画箭头的问题

rcswhuang 2017-05-18 07:19:30
其实也是Qt的例子中的部分 diagramscene中的部分
PI = 3.14

double angle = ::acos(line().dx() / line().length());
if(line().dy() >= 0)
angle = (PI*2) - angle;
QPointF arrowP1 = line().p1() + QPointF(sin(angle+PI/3)*arrowLength,cos(angle+PI/3)*arrowLength);
QPointF arrowP2 = line().p1() + QPointF(sin(angle+PI - PI/3)*arrowLength,cos(angle+PI-PI/3)*arrowLength);
arrowLength是箭头部分的长度。
这个画出来的箭头比较完美,但这个公式后半部分用数学知识如何来解释呢?画了半天没想明白。用自己想出来的 画出来不完美,一旦移动直线,箭头就错位了。

有没有大神可以讲解一下?
...全文
1097 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如楼上所说,先设计好图片,然后在程序中直接画图,这样就可以避开复杂的数学运算
Acuity. 2017-05-24
  • 打赏
  • 举报
回复
对,图片是最好的方式,设计好。
jklinux 2017-05-20
  • 打赏
  • 举报
回复
如果是我,就直接找一箭头的图,然后画图就好了

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧