/*
    author: @fabiantheblind
    This script creates a graphicline in circles
    based on this processing sketch by PhiLho
    http://forum.processing.org/topic/how-can-i-draw-this#25080000000995029
    the size of the page
    */

var my_string = "Freitag 12.10. ab 11:00 R 5.304 & 5.316 Greetings from FHP, Klischéegeschichten, Typolog, Modulation von Sprache in Typografie und Typografie und Automation.";

var ph= 150;
var pw= 150;

    // we need a doc
  // use pw and phas size
  var doc = app.documents.add({
              documentPreferences:{
                  pageHeight:ph,
                  pageWidth:pw
              }
      }); 
  
  // the page is already there
  var page = doc.pages.item(0);
  // get the center of the page
  var cx = pw / 2;
  var cy = ph / 2;
  // define the initial radius
  var init_rad = 0.9 *(pw / 2);
  var radius = init_rad;
  //this is the amplitude fpr the disturb
  var  amplitude = radius / 1;
 
  // create a graphicLine
  var gl = page.graphicLines.add(); 
  var radians_angle; // this will hold the angle in radians
  var rounds = 60; // how many rounds
    
//~   we need to count the pathpoints.
//~   the first an second always exist in  a grapic line
  var count = 0;
  var degree_step  = 4;
  
  // loop thru the data.anchors
  
  for(var degrees = 0; degrees < 360 *rounds; degrees+= (360/degree_step)){
      
      // calculate the degree to radians
      radians_angle = ((degrees/360)%360) * 2 * Math.PI;
    // get the point
      var point = gl.paths[0].pathPoints[count];
     // set the disturb to 0 if you want striaght lines
    // calc the position on the circle
    var x1 = cx + (radius  ) * Math.cos(radians_angle);
    var y1 = cy + (radius  ) * Math.sin(radians_angle);
    radius-= 0.3;
      /**
       * a graphicLine always has 2 pathpoints
       * so we need to add points only from the third index
       * 
       */
      if(count < 2){

          point.anchor = [x1,y1];

        if(count%4 == 0 ) point.rightDirection = [x1, y1+radius];
        if(count%4 == 1 ) point.rightDirection = [x1 - radius,y1];
        if(count%4 == 2 ) point.rightDirection = [x1 , y1 - radius];
        if(count%4 == 3 ) point.rightDirection = [x1 + radius ,y1 ];

      }else{
          point = gl.paths[0].pathPoints.add();
          point.anchor =  [x1,y1];
        if(count%4 == 0 ) point.rightDirection = [x1, y1+radius];
        if(count%4 == 1 ) point.rightDirection = [x1 - radius,y1];
        if(count%4 == 2 ) point.rightDirection = [x1 , y1 - radius];
        if(count%4 == 3 ) point.rightDirection = [x1 + radius ,y1 ];
       }
        
        // now make the circle smaller by every round
        //if(degrees%360 == 0)radius-= ((init_rad)/rounds );
        count++;
      }

// for (var i = 0; i < 10; i++){
//     my_string+= (my_string);  
// }

gl.textPaths.add({contents:TextFrameContents.PLACEHOLDER_TEXT});
var par = gl.textPaths.item(0).paragraphs.item(0);
par.pointSize = 5;
gl.strokeWeight = 0;