# Basics

Before we jump into intersecting stuff, it is essential to have basic knowledge of Computational Geometry. Computational Geometry is based on mathematical representation of geometries for solving real life problems. Basic requirements for learning Computational Geometry are understanding of following subjects

#### Coordinate Systems:

Every entity in Computational Geometry is specified by it’s relative position in space. It essential to have understanding about Origin and three axes X,Y,Z which define 3D space. Also, there are two types of coordinate systems World Coordinate System (WCS) and Local Coordinate System (LCS)

#### Basic Geometry:

Geometry includes basic knowledge and principles about geometrical entities like Points, Lines, Vectors, Arcs/Circles, Polygons etc. We will go through each of these in upcoming posts. Each geometry has it’s its own principles which guides algorithms.

#### Trigonometry:

Some algorithms demand understanding about basic trigonometry. This mainly includes angles between lines, vectors, planes. Sine, Cosine and Tangent functions are most used trigonometric functions.

#### Vector Algebra:

Vector algebra is different than merely knowing the vector. Vector algebra is algebraic applications of vector mathematics. It is basically needed in algorithms which require projections and sense of orientation.  We will come across cross product and dot product while implementing some of the algorithms.

#### Basic Coding/Software Development:

When we say Computational Geometry, half of it has to do with Computation. In modern times computation is done using computer programming. So, some basic coding skills are required for implementation of algorithms. There will be extensive use of Data Structures, Loops, search algorithms etc. In my posts I will be using python as basic language. Please visit my site to learn more about setting up machine for Python development.