UE4用蓝图画出数学柱状图(第一更)

UE4用蓝图画出数学柱状图(第一更)

利用ue4画出数学柱状图主要用的蓝图节点:
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
新建一个widget:
在这里插入图片描述
在UI蓝图里面直接用上面四个节点是不行的,需要重写一个UI的函数,所有的绘画都要在这个函数里完成,
在这里插入图片描述
这个引用在C++里写为了只读,且这个函数也不能被其他蓝图引用,所以大体逻辑主要写在这个里面。
在这里插入图片描述
这里我新建了三个自定义函数,分别用来画XY轴,柱状以及标注,因为是临时写的,所以封装不是特别好,整个逻辑的架构也需要仔细去完善,这里就只说怎么画了。
在这里插入图片描述
这三个函数要在OnPaint里调用,因为如果要使用开头四个节点必须传入一个参数,就是Context,而这个参数只能在OnPaint这个函数里调用,不可提升为变量。当然,方法多的是,这里就不多说了。

     还要特别注意的一点是要在OnPaint里调用这三个函数,要传入一个UI自身的引用,因为在OnPiant这个函数里面,调用函数的目标是这个函数,而这个函数是不能被蓝图调用的。

在这里插入图片描述
在这里插入图片描述
画XY轴
在这里插入图片描述
暴露出可以灵活设置的参数,这个写法很简单,就是一个原点,两个不同方向的点,调两次drawLine这个函数就可以了。

画柱状图
主要逻辑:

这里我写的初衷是可以随意添加要表示的项数,所以新建了一个结构体,保存一个要表示的项所需要的参数
在这里插入图片描述
然后在UI里新建变量,提升数组;
在这里插入图片描述
然后再函数里遍历这个数组,读出这个数组的所有项,读一个调一次DrawBox函数,有多少就调多少次,
在这里插入图片描述
根据数组遍历的个数来计算每个柱状的位置,用结构体数组里面的参数输入给DrawBox函数。

画标注
这里我只画了y轴的标注,x轴原理一样。
在这里插入图片描述
利用一个for循环,根据输入的轴长度以及标注单位算出循环次数,循环次数及标注文字的个数,用轴长度除以循环次数算出每个标识之间的距离,以及标注的文本,调用DrawText,设置位置,颜色,大小等参数,调用DrawText需要导入一个字体文件。(由于标注数字的位数不同,位置也有一点差异,这个就需要自己去解决,我为了快速解决,就直接调的位置)

要特别注意的是画这些图形的起始位置是一样的,这样才能保持完整统一
在这里插入图片描述

效果展示:
在这里插入图片描述
(未完待续)+_+*

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值