我正在处理包含“毫米”中道路“长度”等数据的任务。并根据规范我的JFrame应该是4米×3米(如何将其转换为设备坐标...?)。坐标转换困境,用户坐标到设备坐标?
现在,我知道至少这个数据是真实世界的数据而不是设备的像素数据。但是,在找到几个源之后,您可以通过Graphics2D类将这些数据实际转换为像素。
资源,我发现这些信息是,
核心的Java 2,第二卷 - 高级特性,作者 - 卡·S·霍斯特曼&加里·康奈尔
不过,我GOOGLE了实际的例子没有运气。
有没有人知道任何来源,我可以阅读更多关于此。如果你有任何例子说明某人实际上做了这样的事情,那将会提供更多信息。
迄今为止的研究:到目前为止,我知道我们需要对以米为单位的Graphics2D类像素数进行假设。在Graphics2D中有一种方法可以帮助你设定这个假设。方法是,
g2D.scale(pixelsPerMeter, pixelsPerMeter);
//And than I can draw a line with meter or millimetre coordinates
g2D.draw(new Line2D.Double(coordinates in meter));
我想上面的代码,但真的很难画线,我真的想。
任何理解的帮助将是非常有帮助的。
感谢
我喜欢这种方法,但可能需要[inverse transform](http://stackoverflow.com/questions/2244157/reverse-java-graphics2d-scaled-and-rotated-coordinates/2244285#2244285)。 – trashgod
这是接受你的回答TrashGod的好历史,但我这次喜欢西蒙的方法。感谢您的帮助,但是我会更多地了解getNormalizingTransform(),看起来很有趣。 – doNotCheckMyBlog