From 8f316df4d3eb7d3fca037c3bc888a59711a8256d Mon Sep 17 00:00:00 2001 From: Javier Sancho Date: Fri, 9 Sep 2016 19:24:47 +0200 Subject: [PATCH] Some maths --- gacela/math.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 gacela/math.scm diff --git a/gacela/math.scm b/gacela/math.scm new file mode 100644 index 0000000..4c1c322 --- /dev/null +++ b/gacela/math.scm @@ -0,0 +1,35 @@ +;;; Gacela, a GNU Guile extension for fast games development +;;; Copyright (C) 2016 by Javier Sancho Fernandez +;;; +;;; This program is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + + +(define-module (gacela math) + #:export (pi + 2pi + pi/2 + clamp)) + +;;; Based on Sly code. Thank you so much!! + +(define pi 3.141592654) +(define 2pi (* pi 2)) +(define pi/2 (/ pi 2)) + +(define (clamp min max x) + "Restrict X to the range defined by MIN and MAX. Assumes that MIN is +actually less than MAX." + (cond ((< x min) min) + ((> x max) max) + (else x))) -- 2.39.2