1. 程式人生 > >Qt QPainter中關於坐標的註意事項

Qt QPainter中關於坐標的註意事項

pan 上進 translate 關於 qpainter win 都是 tro str

一、QPainter需要註意的是有一個物理坐標,視口坐標,虛擬坐標。如果在都不設定的情況下,三者是一致的,大小一樣。其中物理坐標為硬件設備所有,無法進行設置,setViewport(int x, int y, int w, int h)可以設置視口坐標,(x,y)表示視口坐標的起始坐標點,w、h表示視口坐標窗口的寬和高。setWindow可以設置虛擬坐標的其實坐標點和窗口大小,該函數的解釋詳見第三大點第一小點。

二、註意三個坐標系的關系,視口坐標系

三、setWindow和translate函數:

  a.QPainter類中的setWindow(int x, int y,int w, int h)函數是用來設置當前物理窗口映射後的虛擬窗口大小,最後的繪制會在該虛擬窗口的大小上進行。參數x、y表示虛擬窗口起始點的坐標,w、h表示映射後虛擬窗口的大小。

  b.translate(int x, int y)函數表示將setWindow函數設置的虛擬窗口的坐標原點(及(0,0)坐標點)移動到參數(x,y)表示的坐標;

  c.這兩個函數無論調用順序如何,translate函數都是在setWindow函數設置的虛擬窗口坐標上進行原點的移動。

Qt QPainter中關於坐標的註意事項