Ty prawdopodobnie już czerpać the poprawny równanie, ale pozwalać iść przez ono jakkolwiek.
Ty chcieć sztywno transformacja który tłumaczyć (x1, y1) (x3, y3), i (x2, y1) (x4, y4).
My móc the sztywno transformacja jako przekład, obracanie. My zaczynać z przekład który ruszać się (x1, y1) (x3, y3). To być łatwy:
(a, B) ---> (a + x3 - x1, B + y3 - y1)
robić the sztuczka.
Teraz, my chcieć transformacja który wirować wokoło the punkt (x3, y3) tak, że the punkt oryginalnie przy (x2, y1), che kartografować (x2 + x3 - x1, y3), wirować (x4, y4).
Pozwalać the kąt ten obracanie. Przywoływać ten the kierunek wektor (x, y) móc ustalać the atan2 (y, x) funkcja (najwięcej matematyka biblioteka mieć atan2 che ustalać the kwadrant the wektor as well as swój arctan - używać the prosty atan (y/x) funkcja dla atan2).
W Ten Sposób the sumaryczny obracanie być właśnie the różnica między the dwa graniasty kierunek, dwa być
theta = atan2 (y4 - y3, x4 - x3) - atan2 (x2 - x1, (0))
(pamiętać że my potrzebować wektor który zaczynać przy the punkt (x3, y3), w ten sposób, potrzebować odejmować od, the punkt).
OK, teraz, my po prostu stosować obracanie operacja.
(c, D) -----> (c * cos (theta) - D * grzech (theta), c * grzech (theta) + D * cos (theta))
dokąd (c, D) = (a + x3 - x1, B + y3 - y1), od przedtem.
Jeżeli ty znajdować że ty można daleko daleko piksel blisko the krawędź twój wizerunek, ty cierpieć od postanowienie problem: the prawdziwy lokacja twój dwa punkt być naprawdę (x3, y3) i (x4, y4), ale nie być właśnie the zamknięty koordynować. Wizerunek wpływać the przekład, ponieważ the ten sam (sub-piksel) błąd właśnie dostawać rozkrzewiać przez cały the wizerunek. Ale dla the obracanie, mały błąd w the obracanie blisko (x4, y4) móc w wielki błąd daleki oddalony. Podstawowy, the błąd być x1 wokoło the postanowienie twój wizerunek dzielić abs (x2 - x1). Jeżeli x2 i x1 być zamknięty wpólnie, ty móc dlaczego ty można daleko daleko piksel.
Tam być naprawdę żadny dobry sposób dla być, być ścisły koordynować dla (x3, y3) i (x4, y4), lub dostawać mappings dla więcej niż dwa punkt, i robić najlepszy napad na the przekład i obracanie ty chcieć.
Mieć Nadzieję to pomagać!