我有一個2d組的粒子,我想設置它的角速度,讓粒子繞組的中心旋轉。設置角速度爲2d粒子羣
我發現這種方法得到組的角速度,我試過反轉邏輯來實際設置角組速度。
在我的嘗試中,我通過以同樣的方式獲得組質量,組中心和組線速度,使大部分邏輯完好無損。但是,似乎我的大多數試驗和錯誤都不能達到預期的結果。
如果您有任何關於如何解決從獲取角速度到設置它的邏輯反轉的知識,我很樂意聽到您要說的話。
getParticleGroupAngularVelocity()
{
particleCount = 30;
particleMass = 1.5;
particleGroupMass = 0;
particleGroupInertia = 0;
particleGroupAngularVelocity = 0;
particleGroupCenter = vector(0, 0);
particleGroupLinearVelocity = vector(0, 0);
for (i = 0; i < particleCount; i++)
{
particleGroupMass += particleMass;
particleGroupCenter += particleMass * particles[i].position;
particleGroupLinearVelocity += particleMass * particles[i].velocity;
}
if (particleGroupMass > 0)
{
particleGroupCenter *= 1/particleGroupMass;
particleGroupLinearVelocity *= 1/particleGroupMass;
}
for (i = 0; i < particleCount; i++)
{
pos = particles[i].position - particleGroupCenter;
vel = particles[i].velocity - particleGroupLinearVelocity;
particleGroupInertia += particleMass * (pos.x * pos.x + pos.y * pos.y);
particleGroupAngularVelocity += particleMass * (pos.x * vel.y - pos.y * vel.x);
}
if (particleGroupInertia > 0)
{
particleGroupAngularVelocity *= 1/particleGroupInertia;
}
return particleGroupAngularVelocity;
}
你有一組粒子,你想改變一些或所有粒子的速度,以便給這個組所需的「組角速度「(我使用鬆散的術語,與此代碼相同),同時保持」組線速度「相同,是嗎?你有其他條件嗎?我問,因爲有很多方法可以做到這一點。 – Beta
我希望能夠在保持組線速度的同時改變所有粒子的速度。因此,如果這組粒子在x軸和/或y軸上以恆定速度運動,我希望能夠使這組粒子圍繞它們的中心旋轉,而不會影響它們的其他運動。 – Claudia
至於其他條件,我真的不能想到其他條件。但是,我可能也缺乏對這個問題的一些見解。 – Claudia