为什么要做点的插补,因为直接拿这些被找到的红色的点做发射源,这些点运动速度太快,会导致烟雾都是一小截一小截的,烟雾有明显的断开,这个问题可以在DOP里解决,提高解算步幅就行,但是这样会带来非常大的计算量,所以还是在进行DOP模拟之前就给点进行插补
求点在上一秒的位置,就是当前的位置减去速度,如果求点在上一帧的位置,就是当前的位置减去速度的二十四分之一,这样生成的点只是出现在上一帧的位置,还要再乘一个0.1到1之间的值,这样才能形成一个正确的点插补
int adaptive_points = int(fit(length(v@v), 0, chf("max_v_len"), 0, max_point));设置一个这样的变量是根据点的速度来生成点,这样的话运动的快的点生成的点数就多,运动的慢的点生成的点数就少
整数与整数相除,得到的还是一个整数,所以需要强制其中一个数为浮点才会得到正确的零到一的结果
addpoint函数的作用是添加点,第一空填要要添加点的对象,第二空如果填位置信息,表示添加的点的位置放在哪里,如果填一个整数信息,比如ptnum,表示根据提供的点序号的点,完全添加一个一模一样的点,这个点具备原来的点的所有属性,如果原来的点有组新点也会在组里