Problem sam isti imao sa javom, ali sam to rijesio tako sto sam kreirao dvije kopije Graphics2D objekta, i kod jednog sam obrnuo y osu, tako sto sam skalirao matricu (AffineTransform) sa (1,-1), jos je pomjerio na dole za visinu prozora.
Drugi Graphics2D objekt kod koga nije bila izokrenuta y osa sam koristio za iscrtavanje tekstova. E sad, prije ispisa teksta, morao sam uzeti neku koordinatu, pomnoziti je sa matricom prvog Graphics2D objekta, da bi dobio tacnu lokaciju, u onda na toj lokaciji iscrtavati tekst. Iscrtavanje grafickih oblika je bilo jednostavno, samo pozivanje funkcije draw.
Medjutim, kada bi htio da pomjeram objekte u takvoj sceni, prvo sam koordinate misa morao da pomnozim sa inverznom matricom prvog Graphics2D objekta, da bi dobio tacnu koordinatu na modelu.
Ovaj nacin mi je nekako "prljav". I lose su performanse.
Onda sam poceo da gledam sta QT ima da ponudi. Moram da priznam da je framework zaista fantasticno uradjen i da je bas jednostavan za koristenje. Medjutim, QT isto koristi sistem, gdje je tacka 0,0 u gornjem lijevom uglu, i pozitivni smjer ose y je na dole. Mjenjanje smjera ose y u samom GraphicsScene cinilo mi se kao prevelik posao i cinio mi se upitan, pa sam poceo da pisem sam svoj widget.
Medjutim, princip koji sam koristio u javi ovde nije funkcionisano. Dva QPainter-a izgleda da djele zajednicku matricu za transformacije, tako da promjena matrice u jednom painteru utice na drugi, i tekst se iscrtava naopako. Jedini nacin koji bi mogao da implementiram svoj widget je da za svaki graficki oblik vrsim obrtanje smeja y ose, a kad dodje tekst na red, onda da vracam osu y u normalu. Bojim se da bi ovo moglo isto biti sporo.
Za sad mi se jedino opengl vrti u glavi kao elegantno rjesenje. Neka druga ideja?
...