image-in-browser
Version:
Package for encoding / decoding images, transforming images, applying filters, drawing primitives on images on the client side (no need for server Node.js)
36 lines • 1.1 kB
JavaScript
import { MathUtils } from './math-utils.js';
export class Rational {
get numerator() {
return this._numerator;
}
get denominator() {
return this._denominator;
}
get toInt() {
return this.denominator !== 0
? Math.trunc(this.numerator / this.denominator)
: 0;
}
get toDouble() {
return this.denominator !== 0 ? this.numerator / this.denominator : 0;
}
constructor(numerator, denominator) {
this._numerator = numerator;
this._denominator = denominator;
}
simplify() {
const d = MathUtils.gcd(this.numerator, this.denominator);
if (d !== 0) {
this._numerator = Math.trunc(this.numerator / d);
this._denominator = Math.trunc(this.denominator / d);
}
}
equals(other) {
return (this._numerator === other._numerator &&
this._denominator === other._denominator);
}
toString() {
return `${this.constructor.name} (${this._numerator}/${this._denominator})`;
}
}
//# sourceMappingURL=rational.js.map