Policzenie współrzednych w teksturze gdy wyswietlimy ją na ekranie

0

Jak policzyć jaki punkt tekstury został kliknięty myszką jak tekstura została kilkukrotnie przesunięta powiększona i obrócona ?
Czyli jest to odwrotne przekształcenie w stosunku do wszelkiego rodzaju operacji

//
procedure TRenderDX.UstawWorldWievProjection(p_width, p_height: integer);
var
M1,M2: TD3DXMatrix;
begin
a_width := p_width; // szerokosc okna
a_height := p_height;//wysokosc okna

D3DXMatrixOrthoOffCenterLH( M1, 0,p_width,p_height,0,-200,200 ); //poka_m(M1);

D3DXMatrixIdentity(M2);

g_pd3dDevice.SetTransform(D3DTS_PROJECTION, M1);
g_pd3dDevice.SetTransform(D3DTS_VIEW, M2);
g_pd3dDevice.SetTransform(D3DTS_WORLD, M2);
end;

Mam teksturę 128x128px

Jezeli narysuję ja na ekranie w rozmiarze oryginalnym to policzenie współrzędnych tekstury nie jest problemem.
Trochę bardziej sie to robi skomplikowane jak zastosuje kilka przekształceń

D3DXMatrixScaling(t2,a_zoom,a_zoom,0);
D3DXMatrixMultiply(mp, t3, mp);
D3DXMatrixTranslation(t3,X,Y);
D3DXMatrixMultiply(mp, t2, mp);

Na pewno to jest proste tylko brak mi punktu zaczepienia

0

Rzczeywiście jets to proste, wystarczy policzyć macierz odwrotną , miałem jednak problem w innym miejscu i mi nie wychodziło. Po namierzeniu wszystko ruszyło

1 użytkowników online, w tym zalogowanych: 0, gości: 1