Mam kwadrat wyrównany na ekranie i chciałbym powiększyć dowolny prostokąt w tym kwadracie, ale nie dostaję matematyki dobrze.Próba przybliżenia prostego prostokąta w kwadracie wyrównanym do kwadratu
Wydaje mi się, że mam już przetłumaczone tłumaczenie, ale nie skalowanie. Zasadniczo mój kod jest następujący:
//
// render once zoomed in
glPushMatrix();
glTranslatef(offX, offY, 0);
glScalef(?wtf?, ?wtf?, 1.0f);
RenderQuad();
glPopMatrix();
//
// render PIP display
glPushMatrix();
glTranslatef(0.7f, 0.7f, 0);
glScalef(0.175f, 0.175f, 1.0f);
RenderQuad();
glPopMatrix();
Ktoś ma jakieś wskazówki? Użytkownik wybiera obszar prostokątu, a następnie te wartości są przekazywane do mojego obiektu renderującego jako [x, y, w, h], gdzie wartości te są procentami szerokości i wysokości okna roboczego.
Używam glOrtho (0, 1, 0, 1, 0, 1). Próbowałem zmienić to na glOrtho (0, 0,5, 0, 0,5, 0, 1), aby symulować powiększanie dolnego lewego prawego prostokąta, ale właśnie dostałem czarny ekran śmierci. – moswald
@mos: Trochę zagubiłem się, jak to się mogło stać, chyba że zmieniłbyś również coś innego (lub, oczywiście, nie narysowałeś niczego w tym kwadrancie). Prawdopodobnie nazywasz to po 'glMatrixMode (GL_Projection); glLoadIdentity(); '? –
Ack! Przepraszam, kiedy zrobiłem mój test, skomentowałem mój obecny kod. ... W tym wezwanie do RenderQuad. Przywrócenie tej części sprawiło, że zadziałało. – moswald