One slightly different way would be to get the angle from each imagepoint to the player and subtract from that the angle to the next imagepoint.
Or in the simple case of a square and the imagepoints are layed out in this order:
41
32
It simplifies to:
set a to angle(Target.ImagePointX(loopindex+1),Target.ImagePointY(loopindex+1),Sprite.X,Sprite.Y) -90*loopindex
Then if the following is true for any imagepoint you can create it.
(-sin(a)<0 & cos(a)>0) | (cos(a)<0 & -sin(a)>0)