Identifying similarities is not an easy task, but here are a few ideas you can play with. Suppose you want to convert triangle A (almost) to triangle B
- Scale: scale triangle A by region (B) / region (A)
- Transformation: Transform triangle A with a vector that allows you to match centroids as a triangle.
- Rotation: Use the optimization method to select a value in the range
[0, 360)
for rotation that matches your personal similarity criteria.
Perhaps the hardest part of the rotation. A simple but effective idea would be to climb the hill , starting with three points and taking the best. Three points is the amount of rotation required to place one of the points A at each of the points B.
The similarity criterion itself is also not easy. One thing that comes to mind is the amount of overlapping surface after the transformation. Calculating this is not easy, or at least cumbersome.
source share