java - 我的牛顿 Gradle 代码不起作用。我该如何解决?

标签 java processing

PVector start1;
PVector end1;
PVector start2;
PVector end2;
float e = 0; //angle
float l = 350; //length
float add = 0.05;//add(to angle)
float e2 = 0;//other angle
float add2 = 0; //add to second angle

void setup() { //setup the canvas

    size(1600, 1000);
    smooth();
    strokeWeight(10);
    start1=new PVector(950,300);
    end1=new PVector();
    start2=new PVector(650,300);
    end2=new PVector();
}

void draw() {
    background(0);

    stroke(57,255,20);
    fill(57,255,20);
    ellipse(850,650,100,100);
    ellipse(750,650,100,100);
    line(750,300,750,600);
    line(850,300,850,600);

    end1.x=start1.x+l*sin(e);
    end1.y=start1.y+l*cos(e);
    end2.x=start2.x+l*sin(e2);
    end2.y=start2.y+l*cos(e2);

    ellipse(end1.x,end1.y,100,100);
    ellipse(end2.x,end2.y,100,100);
    line(start1.x,start1.y,end1.x,end1.y);
    line(start2.x,start2.y,end2.x,end2.y);

    e+=add;
    e2-=add2;
    if(e<0){
        add=0;
        add2=0.05;
    }

    if(e>1){
        add*=-1;
    }
    if(e2<-1){
    }
}

我知道问题出在最后几行,但我不知道如何解决这个问题。问题是每次e2变为负数,特别是小于 -1 ,代码现在显示 add2必须乘以 -1走另一条路。但是,一旦它大于 -1,代码也会告诉它,当 e 小于 0(确实如此)时,add2=0.05 。所以发生的事情是它在 >-1 之间波动。和<-1 。我该如何解决这个问题? 附:这个解释只是我认为问题所在,但它可能完全不同。

最佳答案

添加积分状态变量actPendle,它指示移动的摆锤。 addadd2 必须初始化为 0.05:

int actPendle = 1;
float add = 0.05;//add(to angle)
float add2 = 0.05; //add to second angle
float e = 0; //angle
float e2 = 0;//other angle

如果actPendle == 1,则移动第一个摆。如果它完成了移动,则切换到另一个钟摆。对第二个摆进行同样的操作:

void draw() {

    // [...]

    if (actPendle == 1) {

        e += add;
        if(e > 1){
            add *= -1;
        } else if (e < 0) {
            add *= -1;
            actPendle = 2;
        }
    }

    if (actPendle == 2) {

        e2 -= add2;
        if(e2 < -1){
            add2 *= -1;
        } else if (e2 > 0) {
            add2 *= -1;
            actPendle = 1;
        }
    }
}

关于java - 我的牛顿 Gradle 代码不起作用。我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59549997/

相关文章:

java - 如何使用 onTouch 事件更新绘制到 Canvas 上的 Android 位图的位置?

java - 如何使用单独的比较器类对数组列表进行排序

java - 继承困惑 - 在构造函数中打印时值为 "this"

animation - 检测直线与多边形的交点数量

java - 如何在处理2中读取oni文件?

使用 PGraphics 制作 PImage 的处理

java - 处理中的类中是否可以有另一个循环?

java - Tomcat 请求日志记录 - 如何?

javascript - Javascript 中的 A*(使用 p5.js)不起作用

Java:将箭头放置在 Jung2 Network 中边缘的中心