From 8151e2cde5d855b410431764bff9c0e01b93efa9 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Wed, 7 Jan 2015 14:38:45 +0100 Subject: Initial commit. --- .gitignore | 6 ++++ Makefile | 4 +++ geom.hpp | 61 ++++++++++++++++++++++++++++++++++++++ lamiraux-sekhavat-laumond-tro.pdf | Bin 0 -> 455145 bytes main.cpp | 10 +++++++ 5 files changed, 81 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 geom.hpp create mode 100644 lamiraux-sekhavat-laumond-tro.pdf create mode 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bbe7d3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.o +*~ +*.swp + +pathfind + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d1b0544 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +BIN=pathfind + +$(BIN): *.cpp *.hpp + g++ -o $@ *.cpp -lm diff --git a/geom.hpp b/geom.hpp new file mode 100644 index 0000000..056a36e --- /dev/null +++ b/geom.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include + +struct vec { + double x, y; + + vec(double xx, double yy) : x(xx), y(yy) {} + + double norm() const { + return sqrt(x*x + y*y); + } + + double angle() const { + double xx = x / norm(); + double a = acos(x); + return (y > 0 ? a : -a); + } + + vec operator+ (const vec& o) const { + return vec(x + o.x, y + o.y); + } +}; + +struct line { + // Line defined by ax + by + c = 0 + double a, b, c; + + line(double aa, double bb, double cc) : a(aa), b(bb), c(cc) {} + + double dist(double x, double y) const { + // TODO + return 1; + } + + double angle() const { + return vec(-b, a).angle(); + } + +}; + +struct circle { + vec c; + double r; + + circle(double x, double y, double rr) : c(x, y), r(rr) {} + circle(vec cc, double rr) : c(cc), r(rr) {} +}; + +struct circpoint { + circle c; + double theta; + + circpoint(circle cc, double th) : c(cc), theta(th) {} + + vec pos() const { + return c.c + vec(c.r * cos(theta), c.r * sin(theta)); + } +}; + +/* vim: set ts=4 sw=4 tw=0 noet :*/ diff --git a/lamiraux-sekhavat-laumond-tro.pdf b/lamiraux-sekhavat-laumond-tro.pdf new file mode 100644 index 0000000..9aa9ac7 Binary files /dev/null and b/lamiraux-sekhavat-laumond-tro.pdf differ diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..b5a4386 --- /dev/null +++ b/main.cpp @@ -0,0 +1,10 @@ +#include + +#include "geom.hpp" + +int main() { + printf("%.10f\n", M_PI); + return 0; +} + +/* vim: set ts=4 sw=4 tw=0 noet :*/ -- cgit v1.2.3