Я бы делал "в лоб" - при включении инициализация, нахождение текущего (на данный сеанс работы) N - аналитически по тригонометрии (должно решаться тривиально), в железе - по таблично заданной функции. А далее просто - b является при известном N функцией от a, аналитически она выразится через какую-то тригонометрию, эту функцию в виде таблицы закладываете хоть в ведущего хоть в ведомого (у кого ресурсов больше), вычисляете b. Если нужна точность - интерполируете эту таблично заданную функцию до нужной степени точности на этапе расчета b. Повторюсь что сам расчет можно вести хоть в ведущем, хоть в ведомом, хоть половину там и там.
Для случая прямой уравнение связи параметров такое: ctg(a) + ctg(

= M/N, где M - расстояние между орудиями (5-й класс средней школы). При стартовой привязке по нескольким парам углов вычисляете поточнее ваше значение M/N для данной конфигурации, запоминаете его и все. Расчет угла ведомого: считаете (по таблице с интерполяцией) котангенс угла ведущего, вычитаете его из имеющегося параметра M/N и берете арккотангенс результата (по таблице с интерполяцией).
Для других случаев просто будут другие уравнения связи параметров. И можно рисовать любые фигуры, которые луч ведущего пересекает только один раз при любом своем угле.