我寫了一個gui,用戶在(640x480)窗口中繪製某些東西。它將繪製成一組存儲在Vector數組中的點。 現在,我該如何將這些點集轉換爲原點(窗口的左上角0,0)或將它放在指定的位置?我想要的窗口的寬度和高度也是640x480。變換+縮放一組點
解決之後,您如何將這組新點縮放到我想要的尺寸?
更新1
我解決了問題的規模,而不是定位問題。繪圖不在我說的地方。下面的代碼我到目前爲止。
float scaleX = (float)width/boundingPoints.width;
float scaleY = (float)height/boundingPoints.height;
for(int i = 0; i < cg_points.size()-1; i++){
Point p1 = cg_points.get(i);
Point p2 = cg_points.get(i+1);
g.drawLine((int)(p1.x*scaleX) + pos.x, (int)(p1.y*scaleY) + pos.y, (int)(p2.x*scaleX) + pos.x, (int)(p2.y*scaleY) + pos.y);
}
我想讓繪圖從pos [x,y]開始。目前問題是什麼?它確實遵循pos.x和pos.y的規定,但是它離開了,而不是從pos [x,y]開始。
這裏是問題
的屏幕截圖正如你可以從圖片中看到,該框是明星應該是。縮放是正確的,正如你所看到的,而不是pos。這是因爲圖中的點可能起始於(0,0)不是。
有什麼建議嗎?
謝謝!
那麼這是一個什麼樣的程序? Java的? JavaScript的?請解釋兩個標籤的需求。 –
這兩個標籤的需求是因爲這是爲Java和JavaScript。 –
對不起,但我還是不明白。你能解釋一下並給出一些細節 - 你如何將它用於Java和JavaScript? –