From c7a9c2f78feaf632e04f1b60686d35da5f1b1f04 Mon Sep 17 00:00:00 2001 From: mikeb Date: Tue, 27 Jul 2021 16:28:15 +0000 Subject: [PATCH] math_graphics.h angepasst; lerp angepasst; git-svn-id: svn://ammerhai.com/home/mike/pokemon_repo@21 24008968-59e6-ed4c-a10b-0b2c954b24ab --- bin/pokemon.exe | Bin 236544 -> 236544 bytes bin/pokemon.pdb | Bin 2072576 -> 2072576 bytes src/main.cpp | 18 ------------------ src/math_graphics.h | 44 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 34 insertions(+), 28 deletions(-) diff --git a/bin/pokemon.exe b/bin/pokemon.exe index 405539aefd8bb8b03cfc430397c0fc14da170031..5e71e2b327175c6bb65ecd7fd25ad8712e27e618 100644 GIT binary patch delta 7199 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 S8VL{U5f0^j!@FMpBKE)9f~Ir; delta 37188 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 diff --git a/src/main.cpp b/src/main.cpp index e989a26..588f43a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -257,24 +257,6 @@ void change_map_size(char direction, int amount) { free(old_map); } -float ilerp(float a, float b, float v) { - return (v - a) / (b - a); -} - -V2 ilerp(V2 a, V2 b, V2 v) { - return (v - a) / (b - a); -} - -float remap(float in_a, float in_b, float out_a, float out_b, float v) { - float t = ilerp(in_a, in_b, v); - return lerp(out_a, t, out_b); -} - -V2 remap(V2 in_a, V2 in_b, V2 out_a, V2 out_b, V2 v) { - V2 t = ilerp(in_a, in_b, v); - return lerp(out_a, t, out_b); -} - //Userinputs, Steuerung, FensterÄnderungen -> WindowProc LRESULT WindowMsgs(HWND Window, UINT Message, WPARAM wParam, LPARAM lParam) { LRESULT Result = 0; diff --git a/src/math_graphics.h b/src/math_graphics.h index db3082c..3852d71 100644 --- a/src/math_graphics.h +++ b/src/math_graphics.h @@ -70,10 +70,19 @@ constexpr inline T min(T a, T b) { return a < b ? a : b; } -constexpr float lerp(float a, float t, float b) { +constexpr float lerp(float a, float b, float t) { return (1.0f - t) * a + t * b; } +float ilerp(float a, float b, float v) { + return (v - a) / (b - a); +} + +float remap(float in_a, float in_b, float out_a, float out_b, float v) { + float t = ilerp(in_a, in_b, v); + return lerp(out_a, out_b, t); +} + //----------------------------------------------- //Vektorberechnung 2-dim @@ -103,7 +112,6 @@ union V2 { } }; - //Negation von 2-dim Vektor inline V2 operator -(V2 a) { return { @@ -154,12 +162,13 @@ inline V2 operator *(V2 a, float b) { }; } +//Skalarmultiplikation -> mit V2 Pointer inline V2 &operator *= (V2 &a, float b) { a = a * b; return a; } -//Division mit nem Skalar Oo -> Skalar geteilt durch Vektor +//Division mit einem Skalar Oo -> Skalar geteilt durch Vektor inline V2 operator /(float a, V2 b) { return { a / b.x, @@ -167,7 +176,7 @@ inline V2 operator /(float a, V2 b) { }; } -//Division mit nem Skalar Oo -> Vektor geteilt durch Skalar +//Division mit einem Skalar Oo -> Vektor geteilt durch Skalar inline V2 operator /(V2 a, float b) { return { a.x / b, @@ -175,6 +184,7 @@ inline V2 operator /(V2 a, float b) { }; } +//Division mit einem Skalar -> 2 Vektoren inline V2 operator /(V2 a, V2 b) { return { a.x / b.x, @@ -182,12 +192,12 @@ inline V2 operator /(V2 a, V2 b) { }; } -inline V2& operator /= (V2& a, float b) { +//Division mit einem Skalar -> mit V2 Pointer +inline V2 &operator /= (V2 &a, float b) { a = a / b; return a; } - //Skalarprodukt inline float dot(V2 a, V2 b) { return a.x * b.x + a.y * b.y; @@ -237,6 +247,7 @@ inline V2 clamp01(V2 a) { }; } +//Vektor mit den kleinsten Werten 2er Vektoren inline V2 min(V2 a, V2 b) { return { min(a.x, b.x), @@ -244,6 +255,7 @@ inline V2 min(V2 a, V2 b) { }; } +//Vektor mit den groessten Werten 2er Vektoren inline V2 max(V2 a, V2 b) { return { max(a.x, b.x), @@ -251,21 +263,34 @@ inline V2 max(V2 a, V2 b) { }; } +//kleinster Vektor Wert inline float min(V2 a) { return min(a.x, a.y); } +//groesster Vektor Wert inline float max(V2 a) { return max(a.x, a.y); } -inline V2 lerp(V2 a, V2 t, V2 b) { +//Lerp mit 2 Vektoren +inline V2 lerp(V2 a, V2 b, V2 t) { return V2{ - lerp(a.x, t.x, b.x), - lerp(a.y, t.y, b.y), + lerp(a.x, b.x, t.x), + lerp(a.y, b.y, t.y), }; } +// +V2 ilerp(V2 a, V2 b, V2 v) { + return (v - a) / (b - a); +} + +// +V2 remap(V2 in_a, V2 in_b, V2 out_a, V2 out_b, V2 v) { + V2 t = ilerp(in_a, in_b, v); + return lerp(out_a, out_b, t); +} //----------------------------------------------- //Vektorberechnung 3-dim @@ -321,7 +346,6 @@ inline V3 operator -(V3 a) { }; } - //Addition 2er 2-dim Vektoren inline V3 operator +(V3 a, V3 b) { return {