From bdd32ad40f4b7fa2a97e8971a6758b3e2b5e99af Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 17 May 2021 20:20:39 +0300 Subject: [PATCH] Add rotate(vector, angle) function --- libs/geom/include/psemek/geom/vector.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/geom/include/psemek/geom/vector.hpp b/libs/geom/include/psemek/geom/vector.hpp index aaf0b282..c86e33b0 100644 --- a/libs/geom/include/psemek/geom/vector.hpp +++ b/libs/geom/include/psemek/geom/vector.hpp @@ -320,6 +320,14 @@ namespace psemek::geom return std::acos(std::max(T{-1}, std::min(T{1}, dot(v0, v1)))); } + template + vector rotate(vector const & v, T angle) + { + auto const c = std::cos(angle); + auto const s = std::sin(angle); + return {v[0] * c - v[1] * s, v[0] * s + v[1] * c}; + } + template vector pointwise_mult(vector const & v0, vector const & v1) {