我写了一个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? –