Changeset 9373 for 2017


Ignore:
Timestamp:
2017-08-02 21:35:53 (22 months ago)
Author:
mianhayr
Message:

pyörii ja squeezaa täysin oikein/smoothisti/elegantisti
fuck yes

Location:
2017/30/MikkoH/Sq
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/30/MikkoH/Sq/Sq/Sq/Sq.cs

    r9372 r9373  
    77    //List<Vector> crc; 
    88    //double rad = 50, radc = 0.01, pts = 150, minrad = 1, maxrad = 200; 
     9    double glmin = 0.5, glmax = 5; 
    910 
    1011    List<Square> sqs = new List<Square>(); 
     
    4445        for (int i = 0; i < sqs.Count; i++) 
    4546        { 
    46             sqs[i].magc = (sqs[i].maxmag-sqs[i].mag)/(Math.Sign(sqs[i].magc)*30); // calculate magnitude change 
    47             if (sqs[i].magc < -3) sqs[i].magc = -3; if (sqs[i].magc > 3) sqs[i].magc = 3; 
    48             sqs[i].mag += sqs[i].magc; // reduce current magnitude, todo: clean 
     47            sqs[i].mag += sqs[i].magc = (glmin+(sqs[i].maxmag - sqs[i].mag) / // scales change to [glmin,glmax] 
     48                (sqs[i].maxmag)*(glmax-glmin)) * Math.Sign(sqs[i].magc);      // and reduces current magnitude 
     49 
    4950            for (int j = 0; j < sqs[i].Count; j++) 
    5051                c.DrawLine(sqs[i][j % sqs[i].Count] * sqs[i].mag, 
    5152                           sqs[i][(j + sqs[i].Count / 4) % sqs[i].Count] * sqs[i].mag); 
    52                 //sq[i] = /*sq[i] * sq.mag;*/Vector.FromLengthAndAngle(sq[i].Magnitude * sq.mag, sq[i].Angle); 
    53                 //sq[i] += new Vector(1, 1); 
    5453 
    5554            if (sqs[i].mag < sqs[i].minmag) 
    5655            { 
    5756                if (sqs[i].n == 0) Exit(); // minimum number of pts reached 
    58                 sqs[i].magc = -sqs[i].magc;   // reverse squeeze 
     57                sqs[i].magc = -sqs[i].magc; // reverse squeeze 
    5958                sqs.Add(new Square(sqs[i].minmag, sqs[i].maxmag, sqs[i].n-1)); 
    6059                sqs.Remove(sqs[i]); 
    6160            } 
    62             else if (sqs[i].mag > sqs[i].maxmag-5) // todo: replace offset const 
     61            else if (sqs[i].mag > sqs[i].maxmag) 
    6362                sqs[i].magc = -sqs[i].magc; // reverse squeeze 
     63 
     64            Rotate(sqs[i]); 
    6465        } 
    65  
    66  
    67         // checks if squeeze direction should be reversed 
    68         // merging this into the above loop will fuck everything up 
    69         // also tries to create new squares 
    70         //for (int i = 0; i < sqs.Count; i++) 
    71              
    7266 
    7367        //c.BrushColor = Color.Blue; 
     
    8276        //} 
    8377 
    84         foreach (Square sq in sqs) Rotate(sq); //Rotate(crc, true); 
     78        //foreach (Square sq in sqs) //Rotate(crc, true); 
    8579 
    8680        base.Paint(c); 
     
    9084class Square : List<Vector> 
    9185{ 
    92     public double n, mag, minmag , maxmag, magc = 3, lim; 
     86    public double n, mag, minmag , maxmag, magc, lim; 
    9387 
    9488    // min and max magnitude, d = number of pts/side 
    9589    public Square(double min, double max, double d) 
    9690    { 
    97         n = d; mag = minmag = min; maxmag = max; lim = 2/(d+1); 
     91        n = d; mag = minmag = magc = min; maxmag = max; lim = 2/(d+1); 
    9892        for (double i = -1; i < 1; i += lim) Add(new Vector(-1, i)); 
    9993        for (double i = -1; i < 1; i += lim) Add(new Vector(i, 1)); 
Note: See TracChangeset for help on using the changeset viewer.