0

这是一个家庭作业。工作 19 5/16 是作业 http://sites.stuycs.org/home/courses/ml2x/dyrland-weaver/work

我在程序处理中运行它,它不需要主要方法。

Blob 是给我们的。我们必须自己制作 BlobRunner。关于为什么我的代码没有做它应该做的任何建议将不胜感激。第一个文件 BlobRunner

int popSize = 4;
int wobble = 2;
int numSides = 4;
float rad = 100;
int radInt = (int) rad;
float a = sqrt(popSize);
int rootPop = (int) a;
Blob[][] blobs = new Blob[popSize/rootPop][rootPop];
/*=====================================
  The trickiest part of setup is to make 
  the screen an appropriate size for the
  grid of blobs. The grid should be just
  big enough to contain all of the blobs.
  ====================================*/
void setup() {
    size ((popSize/rootPop)*(2*(radInt+3)), rootPop*(2*(radInt+3)));
    populate();
}

/*=====================================
  The main purpose of draw is to go through 
  the array of blobs and display each.
  ====================================*/
void draw() {
    int createdSoFar = 0;
    for (int i = 0; i<rootPop; i++){
    for (int j = 0; j<popSize/rootPop; j++){
        if (createdSoFar < popSize){
        blobs[j][i].display();
        }
        createdSoFar++;
    }
    }
}

/*=====================================
  Populate the array of blobs.
  You can use any values for radius, number of sides
  and wobble factor that you'd like, but you must
  use x and y coordinates that ensure the blobs
  are drawn in a grid without overlaping each other.

  Your code should work for any reasonable value
  of population (i.e. something that would fit on a
  normal monitor).
  ====================================*/
void populate() {
    for (int i = 0; i < rootPop; i++){
    float y = 1;
    for (int j = 0; j < (popSize/rootPop); j++){
        float x = 1;
        blobs[j][i] = new Blob (x*(rad+3), y*(rad+3), numSides, radInt, wobble, wobble); 
        x=x+2;}
    y=y+2;}
}

第二个文件块

/*=====================================
  A Blob object is a regular polygon variant that
  can have various features.
  Instance Variables:
  numSides: number of sides
  rad: distance from the center of the polygon
  to any vertext
  x: x coordinate of the center
  y: y coordinate of the center
  xFactor: "wobble" foctor in the x direction
  yFactor: "wobble" factor in the y direction
  ====================================*/

class Blob {

    int numSides;
    int rad;
    float x;
    float y;
    int xFactor;
    int yFactor;

    Blob(float cx, float cy, int sides, int r, int xf, int yf ) {

    x = cx;
    y = cy;
    numSides = sides;
    rad = r;
    xFactor = xf;
    yFactor = yf;
    }

    void display() {

    float nx;
    float ny;
    int rx, ry;

    float sy;

    strokeWeight(1);
    beginShape();
    for( float t = 0; t <= 1; t+=( 1.0/numSides ) ) {

        /*
          "wobble" effect is created by adding a random number to each
          x and y coordinate. The larger the x and y factors, the higher
          the possible wobble value could be
        */
        rx = (int)random(xFactor);
        ry = (int)random(yFactor);

        nx = rad * cos( 2 * PI * t ) + x + rx;
        ny = rad * sin( 2 * PI * t ) + y + ry;

        vertex(nx, ny);
    }      
    endShape();
    }
}
4

1 回答 1

2

您的代码运行,因此它正在做您要求它做的事情,仅此而已。

我让我的猫检查一下,她就是,“这家伙在循环的每一次循环中都在重新初始化他的变量,他永远不会那样得到一个 blob 网格。告诉他先从 float y = 1; float x = 1;外面populate()移动两个循环的边界for并从那里开始调试。”

然后她翻到她身边,我拍了拍她。

于 2012-05-21T17:23:01.000 回答