Dilation of line or object


#1

Let say we have a line or a shape I need to dilate that shape. Do we have any way to do this in processing?

for example, I have this code:

void setup(){
  size(500,500);
  background(20);
}
float theta=0;

void draw(){
  stroke(255,0,0);
  pushMatrix();
  translate(width/2,height/2);
  rotate(theta);
  line(-100,-100,100,100);
  popMatrix();
theta=theta+0.1;
}

and when I rotate it create circle. but I need to dilate the line while rotate, so for example I want to control length of the line based of the angle of rotation.

another way, can we dilate this line that eventually create a square? or a star?


#2

i understand you want variation of line length while rotating:

void setup(){
  size(500,500);
  background(20);
}
float theta=0;
float amp=15.0, swings=5.0, longhalf = 100.0, thisline=0.0;

void draw(){
  stroke(255,0,0);
  pushMatrix();
  translate(width/2,height/2);
  rotate(theta);
  thisline=longhalf+amp*sin(theta*swings);
  line(-thisline,-thisline,thisline,thisline);
  popMatrix();

  theta=theta+0.1;
}

#3

Thanks. your reply is very helpful. but one question. Because of trig function the shape created is round. is possible to rotate a line to create shape that is not round… for example when you rotate a line you get square, or shape like in the pic.


I believe dilation help a lot to create any shape like that. thanks for your answer its already useful.