Стрелка конца не пропущена, как таковая. Это скрыто за многоугольником.
добавить
polygon {
fill: rgba(100,100,100,0.5)
}
см. Здесь
на ваш css, и вы увидите, что происходит.
Что касается исправления, я не слишком уверен, где вы ошиблись, но это было бы с тем, как вы рассчитали, где пересекаются край фигуры и линии.
[РЕДАКТИРОВАТЬ]: судя по тому, как стрелка движется вокруг ромба. (он перемещается вокруг центра в форме ромба), он выглядит как фигура ромба, которую вы рисуете, и фигура, о которой думает код, и, следовательно, обнаружение пересечения с ней, не совпадает с точки зрения масштаба и положения