torsdag 29 maj 2014

Java Script för visualisering av träningsprogram

 Resultatet av mitt första egna javascriptprogram med användande av Array för input av träningsprogram




//Program for visualizing weight lifting schemes graphically
// make an array of the program on the form SETS, REPS, WEIGHT ratio of of 1 Rep Max

var trainingProgramArray = [5, 5, 70/100, 2, 3, 60/100, 1, 1, 100/100, 3, 5, 40/100, 6, 6, 95/100, 8, 8, 50/100, 5, 5, 100/100, 1, 2, 200/100, 10, 12, 30/100]; //fill in your workout in the array

var arrayLength=trainingProgramArray.length;//count the number of terms in the array
fill(255, 0, 0);//set a color for printouts

//text (arrayLength,20,20);//print out number of inputs in the workout array

var groupOfSets = arrayLength/3; //by arrayLength DIV 3 => turns into number of group of sets

//text(groupOfSets,20,20); //test print numbers of groups of sets read from array

//först definierar jag alla globala variabler, bla för att i efterhand kunna skala storleken på allt
var sizeUnit=8; //size unit, will be used for line thickness etc
var sizeScale=3;//uppskalning av sizeUnit för stapelbredd
var barGap=sizeUnit;//avstånd mellan staplar
var startPos=10;//absolut första stapeln, används för nollställning av x-koordinat
var barPos=startPos;//första stapelns plats i x-Led
var yPosition=100;//anger vilken rad vi är på
var yPos=yPosition;//första y-position är 100


// create #loops=total number of groups of sets
for (var i = 0; i < groupOfSets; i+=1) { 
    var sets = trainingProgramArray [(i*3)];//read how many sets there are in the group nr [i] of the workout

    //loop the number of sets in the first group of sets
    for (var j = 0; j < sets; j+=1) { //här dras en loop igång som snurrar antal sets i pågående setgrupp, tex 5 setloopar i första gruppen
    var reps=trainingProgramArray[i*3+1];//start by reading number of reps in the first setgroup which shold be equal to i*3+1, i.e. one position right of the current setgroup
    var weight=trainingProgramArray[i*3+2];//read weight for the rep in current setgroup    weight=weight*sizeUnit*sizeScale;
    var yPos=yPosition;//yPos "nollställs" till grafens bottenlinje inför varje ny stapel, obs att yPosition kan ha ökat för att börja på ny rad
        //now on to some drawing of the sets x reps
        for (var k = 0; k < reps; k+=1) { //loopar en gång för varje rep i curent set
            //text(weight,((k+1)*40),(120+(j+1)*30));//kontrollprinta att alla reps skrivs ut
           
            yPos -=sizeUnit;//y-ledspositionen minskas med storleksenheten för varje ny rep
            strokeWeight(sizeUnit);//hur tjocka rep:en ska vara
            stroke(barPos, yPos/1.5, weight*2); //Varierande färg på viktskivorna

            line (barPos,yPos,barPos+weight, yPos); //OBS ENDA ritinstruktionen i hela programmet
           
        } // slut på loopen för reppen i ett set

    barPos +=(weight+barGap+2);//öka befintliga stapelpositionen i x-led med bredden+stapelgap.
   
    //byt rad om når slutet på raden, dvs öka y med motsvarande 15 viktskivors tjocklek
    if (barPos>=(400-weight)) {
    barPos=startPos;
    yPosition+=15*sizeUnit;
   
    }//Om positionen i y-led bli för stor, tex >400, dvs om barPos>400-weight då ska barPos nollas igen och yPos ökas med 15*sizeUnit, dvs ge plats för max 15 reps per set
   
    }//slut på loopen för antal set
}//slut på loopen för antal grupper om likadana set

fill(25, 0, 0);//textfärg
text ("Visualizing workout programs; bar height=#reps, width=% of 1RM",20,20);

Inga kommentarer:

Skicka en kommentar

Träna effektivt; minimalt för maximala resultat

Det här är en träningsblogg (men även finans, teknologi, futurism, filosofi och life hacking). Jag lyfter skivstänger varannan dag, inte alltid utan alkohol fortfarande rusande genom ådrorna. Efteråt dricker jag en liter mjölk. Inga dyra tillskott som ändå inte fungerar.

Jag kör få och enkla övningar, alltid med fria vikter. Jag tror på att träna mindre än alla andra, men smart, och på att njuta av all mat jag tycker om. Cardio är begränsad till 3-4h hundpromenad om dagen samt 15 minuter på löpbandet varannan dag.

Basen i min träning är något som liknar 5x5 i knäböj, marklyft och bänkpress, men jag kompletterar med lite fler och lättare i t.ex. militärpress, dips, rodd och chin-ups.

Mina stats: 44 år, 90kg, 183cm, 140kg bänkpress, 180kg (och 5x170), 155kg knäböj.

Utnyttja "Resurserna" här intill för inspiration. Själva bloggen nedan är annars bara en träningsdagbok samt lite filosoferande om hur man blir en bättre människa.

MOTTO 1: Aldrig kötta - Work smarter, not harder
MOTTO 2: Alltid vila - Träna kort och effektivt 1%, vila 99%
MOTTO 3: Cardio valfritt - Det behövs inte för deff, men en del gillar det. Hoppa över cardio och PW om du tycker att det är tråkigt.

TOO WEIRD TO LIVE, TOO RARE TO DIE