gpt4 book ai didi

c++ - 将粒子排列成矩形

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:31 24 4
gpt4 key购买 nike

我有一个粒子模拟程序,我目前正在使用它生成矩形中的随机粒子位置。这目前有效,但它不是最佳解决方案,通常粒子重叠并且矩形中有小孔。我将如何初始化矩形形状的粒子?

我当前的循环:

for(auto i=0; i<MAXPARTICLES; i++){
int particleIndex = FindUnusedParticle(); //grab the index to give a particle life
ParticlesContainer[particleIndex].life = 100.0f; //Long particle life

//generate random positions for particles in the shape of a box with random patterns
ParticlesContainer[particleIndex].pos = glm::vec3((rand()%50)/5.0,(rand()%50)/5.0,-50.0);

// Very bad way to generate a random color
ParticlesContainer[particleIndex].r = 255;
ParticlesContainer[particleIndex].g = 0;
ParticlesContainer[particleIndex].b = 0;
ParticlesContainer[particleIndex].a = 255;

ParticlesContainer[particleIndex].size = .2f;

}

最佳答案

这是一个比仅在两个维度上分别使用均匀分布更复杂的问题。如果您的“均匀度”是两个最接近的粒子之间的距离,那么恰好有两种方法可以实现:等边三角形和正方形(好吧,如果算上六边形,则为三个)。唯一随机的事情是一颗种子的位置和它的“方向”。

引用图片:

enter image description here

不过,这会给您带来非常规则的网格状外观。您可以尝试对以这种方式分布的粒子应用随机、微小的变化,看看它会如何工作。

关于c++ - 将粒子排列成矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com