mirror of
https://github.com/flutter/samples.git
synced 2025-11-09 14:28:51 +00:00
Add flutter_web samples (#75)
This commit is contained in:
committed by
Andrew Brogdon
parent
42f2dce01b
commit
3fe927cb29
48
web/github_dataviz/lib/mathutils.dart
Normal file
48
web/github_dataviz/lib/mathutils.dart
Normal file
@@ -0,0 +1,48 @@
|
||||
abstract class Interpolator {
|
||||
double get(double x);
|
||||
}
|
||||
|
||||
class EarlyInterpolator implements Interpolator {
|
||||
double amount;
|
||||
|
||||
EarlyInterpolator(this.amount);
|
||||
|
||||
@override
|
||||
double get(double x) {
|
||||
if (x >= amount) {
|
||||
return 1;
|
||||
} else {
|
||||
return MathUtils.map(x, 0, amount, 0, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Point2D {
|
||||
double x, y;
|
||||
|
||||
Point2D(this.x, this.y);
|
||||
}
|
||||
|
||||
class MathUtils {
|
||||
static double map(double x, double a, double b, double u, double v) {
|
||||
double p = (x - a) / (b - a);
|
||||
return u + p * (v - u);
|
||||
}
|
||||
|
||||
static double clampedMap(double x, double a, double b, double u, double v) {
|
||||
if (x <= a) {
|
||||
return u;
|
||||
} else if (x >= b) {
|
||||
return v;
|
||||
} else {
|
||||
double p = (x - a) / (b - a);
|
||||
return u + p * (v - u);
|
||||
}
|
||||
}
|
||||
|
||||
static double clamp(double x, double a, double b) {
|
||||
if (x < a) return a;
|
||||
if (x > b) return b;
|
||||
return x;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user