当前位置: 代码网 > it编程>编程语言>C/C++ > UEC++:UKismetMathLibrary::RandomPointInBoundingBox盒体内取随机坐标的方法

UEC++:UKismetMathLibrary::RandomPointInBoundingBox盒体内取随机坐标的方法

2024年08月02日 C/C++ 我要评论
学习笔记:UEC++_UKismetMathLibrary::RandomPointInBoundingBox盒体内取随机坐标的方法_盒体内取随机坐标的方法,空间内随机生成物体的时候可以用到

首先先简单的创建一个uboxcomponent盒体:

.h文件内容:

 .cpp文件内容:

 创建一个函数用来返回盒体范围内的随机坐标:

实际上就这么简单就结束了,为了加深自己对这个的印象还是叨叨下这几个函数的实现吧,实际上算法也很简单,就是xyz在盒体范围内取随机值组合在一起,就是随机坐标咯

——————————————————————分割线——————————————————————

-用来获取随机点的函数:

randompointinboundingbox(fvector origin,fvector boxextent):
-将盒子的原点origin(其实就是盒子中心点的坐标)和边界坐标boxextent(其实就相当于盒子的“半径”即盒子顶点的坐标)进行加减得到的是盒子的最小坐标和最大坐标(即对角线两点的坐标)
有一点我还是唠叨一下,看了半天才知道origin和boxextent代表什么位置,画了一下:

-以下是fmath下的函数,专门用来返回盒体内随机坐标的函数:

randpointinbox(const fbox& box):
-通过fbox函数的处理,得到各个坐标的最大值和最小值,将xyz轴的最大值和最小值传入frandrange函数(在范围内随机取值的函数)进行取随机数

 

 注:fbox:实际上是将读取到的两个坐标的xyz进行比较,然后将小的盒体坐标作为min,大的盒体坐标作为max

-以下是在两个数的范围内生成随机数值的函数:

frandrnge:即在各个轴的最小值和最大值区间坐标值乘以一个0到1的随机数:

        inmin + (inmax - inmin)* frand()
        在最小坐标的基础上加上一个imin到imax的随机长度的值

 frand:随机数生成数字0到1的函数代码:

 第一次发笔记,希望可以帮助和我一样的小萌新!

发出来实际上就是希望如果有错误的话,有大佬可以指出,我将感激不尽

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com