Вам явно надо копать в сторону каких-то геометрических библиотек, или библиотек работы с фигурами. В целом эта задача уже решена причём не один раз, как найти решение только вот вопрос )) Язык тут любой может быть в принципе но скорее какой-то из прикладных.