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