После простановки координат для 15 стрелочек (я посчитал), случилась эврика (помидор на голову не падал).
Я понял что мне достаточно всего лишь 3 координаты, чтобы нарисовать стрелочку.
Вывел две таких формулы:
//стрелка вертикально (x, y1, y2):
v = [x,y1, x,y2, (x - 3),(y1 + 30), x,y1, (x + 3),(y1 + 30), (x - 3),(y2 - 30), x,y2, (x + 3),(y2 - 30)]
//стрелка горизонтально (x1, x2, y):
v = [x1,y, x2,y, (x1 + 30),(y - 3), x1,y, (x1 + 30),(y + 3), (x2 - 30),(y - 3), x2,y, (x2 + 30),(y + 3)]
Поэтому решил добавить к стрелкам такие параметры:
size: 'little', 'normal', 'big'
orientation: 'horizontal', 'vertical'
Ориентация - по какой формуле считать координаты. Поставлю на if (orientation == 'horizontal') {...}
Размер - это заменю из формулы значения 3 и 30 (ширина и длина самого указателя стрелки), чтобы на маленьких расстояниях можно было уменьшать, на больших - делать побольше.