如何检查对角线离窗口的时间?处理

时间:2015-02-27 05:43:12

标签: if-statement processing lines diagonal

我无法弄清楚一旦它离开屏幕我怎么能让线重复。我尝试了很多if语句,但没有运气。截至目前,我只是遇到了这条线,但不是我提到的另一部分。有人可以帮助我。

对不起,这是一个更简单的版本。

float[] speeds = new float[1];
float[] diaxPos = new float[1];
float[] diayPos = new float[1];
float[] dia2xPos = new float[1];
float[] dia2yPos = new float[1];


void setup() {
  size(300, 300);
  diaxPos[0] = 0;
  diayPos[0] = 0;
  dia2xPos[0] = 0;
  dia2yPos[0] = 0;
  speeds[0] = 2;
 }

void draw() {
  background(0);
  stroke(255);


diayPos[0] += speeds[0];
  dia2xPos[0] += speeds[0];



 (diaxPos[0], diayPos[0], dia2xPos[0], dia2yPos[0]);
      }

1 个答案:

答案 0 :(得分:0)

只需检查线条是否已脱离屏幕。在您的情况下,当X或Y值大于600时会发生这种情况。获取一些网格纸并绘制一些示例以找出模式。

float[] speeds = new float[1];
float[] diaxPos = new float[1];
float[] diayPos = new float[1];
float[] dia2xPos = new float[1];
float[] dia2yPos = new float[1];

void setup() {
  size(300, 300);
  diaxPos[0] = 0;
  diayPos[0] = 0;
  dia2xPos[0] = 0;
  dia2yPos[0] = 0;
  speeds[0] = 2;
}

void draw() {
  background(0);
  stroke(255);

  diayPos[0] += speeds[0];
  dia2xPos[0] += speeds[0];

  if (diayPos[0] > 600) {
    diayPos[0] = 0;
    dia2xPos[0] = 0;
  }

  line(diaxPos[0], diayPos[0], dia2xPos[0], dia2yPos[0]);
}