2017-04-08 32 views
0

我想用矢量创建正弦波(因为我使用的是box2d)。如何在处理中创建正弦波?

到目前为止,我有(在void draw()

Vec2 mov2 = new Vec2(sin(angle)*scalar,0); 

for (int j = 0; j <= 10; j++) { 
    bridge.particles.get(j).body.setLinearVelocity(mov2); 
} 

其中bridgeparticles链。然而,这使得所有的粒子同时来回移动,而我想像正弦波一样移动,以便每个粒子在前一个粒子之后稍微移动。

回答

1

您需要在循环中的每个粒子之间添加某种偏移量。

实施例:

for(int i=0; i < 360; i++){ 
     float x = 1 + i; 
     float y = (float)(Math.sin(Math.toRadians(i+currentOffset))); 
     bridge.particles.get(j).setTransform(x, y, 0); 
} 
currentOffset+=1;