Skip to main content
2 of 3
edited tags
YCor
  • 63.9k
  • 5
  • 187
  • 286

Rule to determine rotationally invariant orders of the points of arbitrary 2d splines

I would like to find a rule to determine the order of the points of arbitrary 2d splines, which should be invariant with respect to rotation (as far as possible).

Examples of arbitrary splines

To illustrate the problem, let us imagine a stick figure.

Stick Figure

No matter how the arms are positioned and no matter how the stick figure is rotated, we can always decide which hand is the left hand and which hand is the right hand. If we now add the rule that the left hand should always be labeled 1 and the right hand should always be labeled 2, then we have a consistent ordering which is not altered by rotation of the stick figure.

Unfortunately, unlike our stick figure, splines do not have a head, which greatly helps us decide on the order of the hands in case of the stick figure. Therefore, we have to come up with our own reference points.

So the question partly boils down to: What are suitable reference points?

One point that comes to mind, is the middle point of the spline, i.e. the point that cuts the spline in two equally long pieces (comparable to the point of the stick figure that connects the arms).

However, the second point (the head) is more difficult. Any point that would not be rotated along with the spline during a rotation is not suitable. One possibility would be the center of the bounding box of the spline.

I think that this setup would allow a rotationally invariant ordering of the points. However, especially for straight splines, the two reference points are very close to each other, which would make the order of the points very susceptible to slight changes of the curvature of the spline. I.e. the order would be flipped if we bent a straight spline slightly in one direction or the other.

So ultimately the question is: Could there be a better second reference point than the center of the bounding box?

Remark: I am not sure, whether this is the right community for this question or if this question even has a valid answer. Also, I am not sure, which tags to use. Therefore, any advice on more suitable communities and/or tags are very welcome.

Nos
  • 103
  • 3