代码之家  ›  专栏  ›  技术社区  ›  Alberto Zavala

从二维到三维图形

  •  0
  • Alberto Zavala  · 技术社区  · 6 年前

    我试着做一个3D绘图,我得到的只是2D绘图,正如你在我下面的代码中所看到的,我试着用3D绘制线,有深度,但我找不到一种方法,不使用方框或已经不移动的3D图形。 以下是我目前的代码:

    import peasy.*;    
    static final int Lin =100;
    
    //Loop Vintage
    float t;
    int x,y,z,a,b,c;
    
    //Camera 3D
    PeasyCam cam;
    
    void setup ()
    {
      background(20);
      size(800,600, P3D);
      //Distance of Camera
      cam = new PeasyCam(this, 1000);
    }
    
    void draw()
    {
      background(0);
      stroke(255);
      strokeWeight(1);
    
       //Loop Vintage
      Floop();  
    }
    
    void Floop()
    { pushMatrix();
      translate(CENTER,CENTER,CENTER);
      rotate(0);
      for(x=0;x<Lin; x++)
        line(x1(t+x),y1(t+x),x2(t+x),y2(t+x)); 
      popMatrix();
      t++;
    }
    
    //Loop Vintage
    float x1(float t)
    {
      return sin(t/10) * 100 + sin(t/5) * 20;
    }
    float y1(float t)
    {
      return cos(t/10) * 100;
    }
    float x2(float t)
    {
      return sin(t/10) * 200 + sin(t) * 2;
    }
    float y2(float t)
    {
      return cos(t/20) * 200 + sin(t/12) * 20;
    }
    

    正如您所看到的,您需要peasyCam才能看到任何改进。这段代码画了一个“单叶双曲面”状的图形,虽然不是那么完美,但却是我发现的最接近的几何形状。我正在尝试在3D中绘制(或重新绘制线条),如果您有任何想法可以帮助我,将不胜感激, 谢谢

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jordan Green    6 年前

    我想我知道你的问题是什么了,你想画一个夸张的画面,但想在3D中完成。

    尝试切换 line 对于 triangle (需要2个额外参数),或 sphere (需要半径。

    希望这能起到作用。