本人最近做一个地图绘制软件(Map Maker),就是像MS Visio一样。 要求能够放置图标来表示建筑物,而且这些图标有可以用鼠标改变大小,方向和位置。所以我想采用平时作图软件常用的方法,就是在图标四周添加 “控制句柄” (如下图所示),来实现对图标的操作。现在,图标的大小,方向和位置的改变都可以用AffineTransform来实现了。代码如下:
at.setToTranslation(x, y);//x,y 为图标左上角的坐标值。所有图标都为矩形。
at.rotate(radian, xScale*width/2, yScale*height/2);
at.scale(xScale, yScale);
可是,问题是 放缩 操作是以左上角为基准点放缩的,所以导致了相片的中心点位置发生的偏移。
回到要问的问题,那就如下图,假设一个图标没有放缩前,右下角的“控制句柄”的中心点坐标是(X1,Y1)。现在,上图经过上述AffineTransform的转换后,如何计算这个点的坐标呢?(见下图)
在此,先谢过!!
at.setToTranslation(x, y);//x,y 为图标左上角的坐标值。所有图标都为矩形。
at.rotate(radian, xScale*width/2, yScale*height/2);
at.scale(xScale, yScale);
可是,问题是 放缩 操作是以左上角为基准点放缩的,所以导致了相片的中心点位置发生的偏移。
回到要问的问题,那就如下图,假设一个图标没有放缩前,右下角的“控制句柄”的中心点坐标是(X1,Y1)。现在,上图经过上述AffineTransform的转换后,如何计算这个点的坐标呢?(见下图)
在此,先谢过!!
解决方案 »
- 问个线程同步的题。
- help!!!!有一txt文件放在jar中,txt文件的内容: 078060*078058*078060*078058*078060*,请写出程序读取出78 、60、78、58……这样的数字。(10分)
- 这个build.xml怎么写?
- URLEncoder.encode(url,"GBK");编码后的问题..在线等...
- 问几个问题,希望大虾给于帮助!!
- 求救!!!!!!!!!!
- 请问怎么从数据库中读取图片,并用JLabel来显示呢??
- Javadoc的问题:请问怎样生成的doc的class用法(Use)?
- 计算机的端口号是自己随便给的还是系统分配的?
- java的虚函数是怎样定义的,现想将类A中的变量x定义为只能给子类B与自己类中可访问,而又不能给其他类中用实例A a = new A()的a访问,可
- 请高手指路:如何根据GUI自动生成Java Swing代码文件?
- 求助啊:已知圆的1/4弧的两端坐标(x1,y1),(x2,y2),以及圆的半径r.如何算出圆心
上面三个图片不知道为什么显示不出来,这里附上三个地址链接。以上问题困扰我很久了,试了很多办法也没法解决。只好请高手出手了,感激不尽!!