首先先简单的创建一个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的函数代码:
第一次发笔记,希望可以帮助和我一样的小萌新!
发出来实际上就是希望如果有错误的话,有大佬可以指出,我将感激不尽
发表评论