java - 如何在加工中产生正弦波?

标签 java box2d

我想使用 vector 创建正弦波(因为我使用的是 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);
}

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

最佳答案

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

示例:

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;

关于java - 如何在加工中产生正弦波?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43300125/

相关文章:

Box2d:为什么不是凹形?

ios - 在box2d中制动对象中的所有关节

java - 从字符串中删除重复项

java - ColdFusion 未捕获 NoClassDefFoundError

javascript - HP Fortify 扫描问题 :Password Management: Password in HTML Form

java - box2d 中的旋转关节

java - Box2d 直升机物理

java - Nimbus:找不到符号:最新版本中的 getAllClaims 方法

java - 如何在两个不同的类中使用同一个计数器

html - Box2dweb,移动 Canvas ?