Masz 100% racje we wszystkim co piszesz, niestety :/ Mam świadomość, że nie umiem dobrze programować, bo w sumie nie mam dużego zawodowego doświadczenia w programowaniu a na studiach informatycznych nikogo nie nauczą programować (pokazują tylko możliwości i mniej więcej mówią czym można je osiągnąć a nie w jaki dokładnie sposób). To już zależy od człowieka czy chce się tym zajmować i czy ma jakiekolwiek pojęcie. Pewnie powiesz że ja pojęcia nie mam biorąc się za taki projekt - może i masz racje, nie neguje tego bo sam widzę ile podczas każdego kolejnego projektu się uczę i nie brak mi zapału bo chcę kiedyś powiedzieć, że umiem programować. Teraz tego nie mówię (powołuje się czasami na jakieś projekty, które wykonywałem, ale jak dobrze się przyjrzeć to żaden z nich nie zasługuje na miano projektu z prawdziwego zdarzenia - raczej małe programiki), z resztą dlatego udzielam się na tym forum aby postawione sobie cele realizować z waszą pomocą i nabierać przy tym doświadczenia, od ludzi, którzy niejednokrotnie mają już kilkuletnie doświadczenie, a jak wiadomo należy uczyć się od najlepszych :). Co do Qt, do samego środowiska w sumie nic nie mam, jednak wkurza mnie czasami rozrzucenie typowej klasy na kilka plików, może to kwestia przyzwyczajenia albo nastawienia. Nie miałem wcześniej do czynienia z Qt i pewnie po zakończeniu tego projektu nie będę miał z nim do czynienia długo o ile wcale.
Co do nieszczęsnego projektu i konkretnego wytłumaczenia o co mi chodzi i co chce zrobić.
Wyświetlam dwa obiekty pixmapItem - jeden na drugim z pewnym poziomem przezroczystości (tak aby można było dostrzec różnice), zaznaczam po 2 punkty (markery) na każdym z obrazów, współrzędne tych punktów ładuje do wspomnianej tablicy wspP po to aby obraz na pierwszym planie odpowiednio przemieścić i obrócić tak aby markery z pixmapItem1 i pixmapItem2 się pokryły. Pierwszą część tak jakby zrobiłem tzn. obraz przemieściłem w pionie i poziomie według pierwszej pary markerów (pierwszy marker na obrazie nr 1 i pierwszy marker na obrazie nr 2)
QGraphicsPixmapItem *pixmapItem2 = scenaWynikowa->addPixmap(mapaPikseli2);
pixmapItem2->setGraphicsEffect(poziomPrzezroczystosci);
pixmapItem2->moveBy(refX1, 0);
pixmapItem2->moveBy(0, refY1);
teraz za pomocą drugiej pary markerów chcę obiekt pixmapItem2 obrócić w taki sposób aby druga para markerów się pokryła. Obraz pixmapItem2 muszę jednak obrócić względem pierwszej pary markerów, tzn. tych które pozycjonują obraz w pionie i w poziomie. Mam współrzędne drugiej pary markerów aczkolwiek metoda rotate() wywoływana na rzecz obiektu typu QTransform przyjmuje jako argument kąt a nie współrzędną x i y. Ot cały problem.
double pi = 3.14;
double a = pi/180 * 1.0;
double sina = sin(a);
double cosa = cos(a);
QTransform transformacjaPixmapItem2(1, 0, 0, 1, refX1, refY1);
QTransform obracaniePixmapItem2(cosa, sina, -sina, cosa, 0, 0);
QTransform skalowaniePixmapItem2(1.0, 0, 0, 1.0, -refX2, -refY2);
QTransform obrotPixmapItem2 = transformacjaPixmapItem2 * obracaniePixmapItem2 * skalowaniePixmapItem2;
pixmapItem2->setTransform(obrotPixmapItem2);
pixmapItem2->update();
Taki kod działa jedynie dla stałej wartości kąta (tutaj 1 stopień), ja jednak nie znam tej wartości, mam dwie współrzędne które mają się zrównać.
Przygotowałem schemat aby to lepiej zobrazować (chodzi mi o przejście między kropkiem 2 a 3 - w tej chwili krok 2 jest wykonywany):
(plik także w załączniku do tego posta, gdyby były problemy z otwarciem)
Myślę że jest to już teraz zrozumiałe.
Co do odmierzania odległości, to kombinuje w tej chwili z rysowaniem prostych myszką za pomocą QPainter i metody draw, a jak już mi to zadziała to myślę że z długością lini w pikselach - konwersja na minimetry nie będzie jakaś skomplikowana. Za dużo kombinowałem wcześniej przez co wydawało mi się że jest to nie do zrobienia, czego owocem był ten topic a jak to mówią proste rozwiązania są najlepsze. No chyba że macie jakieś inne pomysły? Chętnie się z nimi zapoznam.