Quantcast
Channel: Android Mode - Processing 2.x and 3.x Forum
Viewing all articles
Browse latest Browse all 941

selecting vertices and moving them

$
0
0

Hello forumers,

I am looking for tips and hints on "the best way" to approach something. I want to either import, or create, geometry (initially a cylinder), isolate half of it, and move the vertices around, then export it again as an .obj or .stl. I realise there are libraries that will do this but I need this to work on Android and the libraries (as far as I know) don't. I made these images in 3DMax to explain what I mean.

cylinder cylinder-2

I have adapted this method for creating a cylinder from an example in the book: Processing 2: Creative Coding Hotshot...

float[][] vertx;
float[][] verty;

void setup() {
  size(800, 600, P3D);

  vertx = new float[36][36];//36 triangle strips, 36 vertices
  verty = new float[36][36];
}

void draw() {
  hint( ENABLE_DEPTH_TEST );
  pushMatrix();
  background(125);
  fill(255);
  strokeWeight(0.5);

  translate( width/2, height/2, 200);
  rotateX(radians(-45));
  scale( 1 );

  translate(0, -50, 0);

  initPoints();

  beginShape(TRIANGLE_STRIP );
  for ( int h = 1; h < 36; h++) {
    for ( int a = 0; a<37; a++ ) {
      int aa = a % 36;
     // normal( vertx[h][aa], 0, verty[h][aa]);
      vertex( vertx[h][aa], h*5.0, verty[h][aa] );
      //normal( vertx[h-1][aa], 0, verty[h-1][aa]);
      vertex( vertx[h-1][aa], (h-1)*5.0, verty[h-1][aa] );
    }
  }
  endShape();

  beginShape(TRIANGLE_FAN); //bottom
  int h = 35;
  vertex( 0, h*5, 0 );
  for ( int a = 0; a<37; a++ ) {
    int aa = a % 36;
    vertex( vertx[h][aa], h*5, verty[h][aa] );
  }
  endShape();

  popMatrix();
  hint(DISABLE_DEPTH_TEST);
}

float getR( float a, float h ) {
  float r = 50;
  return r;
}

void initPoints() {
  for ( int h = 0; h < 36; h++) {
    for ( int a = 0; a<36; a++) {
      float r = getR( a*10.0, h*5.0 ); //a = 10 (360/36)
      vertx[h][a] = cos( radians( a*10.0 )) * r;
      verty[h][a] = sin( radians( a*10.0 )) * r;
    }
  }
}

...and I am assuming it is possible to isolate/grab certain vertices from the array?

Any other approaches, or any advice on how to develop this? Is the import > transform method even possible?


Viewing all articles
Browse latest Browse all 941

Trending Articles