WT 1.1.8+1 TrainingPlan
This commit is contained in:
+58
-1
@@ -1,5 +1,4 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:aitrainer_app/util/app_language.dart';
|
||||
import 'package:aitrainer_app/model/cache.dart';
|
||||
import 'package:aitrainer_app/model/exercise_type.dart';
|
||||
@@ -144,4 +143,62 @@ mixin Common {
|
||||
value = value.replaceAll(RegExp(r'[^0-9.]'), "");
|
||||
return value;
|
||||
}
|
||||
|
||||
static double calculate1RM(double weight, double repeat) {
|
||||
if (weight == 0 || repeat == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
double rmWendler = weight * repeat * 0.0333 + weight;
|
||||
double rmOconner = weight * (1 + repeat / 40);
|
||||
//print("Weight: $weight repeat: $repeat, $rmWendler, Oconner: $rmOconner");
|
||||
double average = (rmWendler + rmOconner) / 2;
|
||||
|
||||
return average;
|
||||
}
|
||||
|
||||
static double get1RMPercent(int repeats) {
|
||||
double percent = 1;
|
||||
|
||||
if (repeats >= 35) {
|
||||
percent = 0.50;
|
||||
} else if (repeats > 12) {
|
||||
percent = (100 - 2 * repeats) / 100;
|
||||
} else {
|
||||
percent = (100.0 - 2 * repeats) / 100;
|
||||
}
|
||||
//print("1RM Percent: $percent repeats: $repeats");
|
||||
return percent;
|
||||
}
|
||||
|
||||
static double roundWeight(double weight) {
|
||||
double rounded = weight.round().toDouble();
|
||||
|
||||
if (weight > 35) {
|
||||
final double remainder = weight % 5;
|
||||
if (remainder < 1.25) {
|
||||
rounded = ((weight / 5).floor() * 5).toDouble();
|
||||
} else if (remainder > 1.25 && remainder <= 2.5) {
|
||||
rounded = (weight / 5).floor() * 5 + 2.5;
|
||||
} else if (remainder > 2.5 && remainder < 3.75) {
|
||||
rounded = (weight / 5).floor() * 5 + 2.5;
|
||||
} else {
|
||||
rounded = (((weight / 5).ceil() * 5) + 5).toDouble();
|
||||
}
|
||||
}
|
||||
|
||||
return rounded;
|
||||
}
|
||||
|
||||
static int calculateQuantityByChangedWeight(double initialRM, double weight, double repeat) {
|
||||
final double rmWendler = weight * repeat * 0.0333 + weight;
|
||||
final double rmOconner = weight * (1 + repeat / 40);
|
||||
//print("Weight: $weight oneRepQuantity: $repeat, $rmWendler, Oconner: $rmOconner");
|
||||
|
||||
final double repeatWendler = (rmWendler - weight) / 0.0333 / weight;
|
||||
final double repeatOconner = (rmOconner / weight - 1) * 40;
|
||||
final newRepeat = ((repeatOconner + repeatWendler) / 2).ceil();
|
||||
//print("Initial 1RM: $initialRM Weight: $weight repeatWendler: $repeatWendler repeat Oconner: $repeatOconner. NEW REPEAT: $newRepeat");
|
||||
return newRepeat;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user