gpt4 book ai didi

java - 坐标转换困境,用户坐标到设备坐标?

转载 作者:行者123 更新时间:2023-11-29 07:18:33 27 4
gpt4 key购买 nike

我正在处理一项任务,其中包括诸如道路“长度”(以“毫米”为单位)之类的数据。根据规范,我的 JFrame 应该是 4 米 * 3 米(如何将其转换为设备坐标...?)。

现在,我至少知道这些数据是真实世界的数据,而不是设备的像素数据。然而,在找到一些来源后,您实际上可以通过 Graphics2D 类将这些数据转换为像素。

我找到这些信息的资源是,

Core Java 2, Volume II - Advanced Feature, Author - Cay S. Horstmann & Gary Cornell

但是,我在谷歌上搜索了实际的例子,但没有成功。

有谁知道我可以阅读更多相关信息的来源。如果您有任何示例表明有人实际做过类似的事情,那将提供更多信息。

Research so far : So far I know that we need to give a assumptions to Graphics2D class of number of pixels in meters. In Graphics2D there is method which helps you to set this assumption. Method is ,

g2D.scale(pixelsPerMeter, pixelsPerMeter);
//And than I can draw a line with meter or millimetre coordinates
g2D.draw(new Line2D.Double(coordinates in meter));

I tried above code but really hard to draw line where I actually want to.

理解的任何帮助都会非常有帮助。

谢谢

最佳答案

我发现创建一个更容易java.awt.geom.AffineTransform对象并自己将坐标从米转换为像素。在您的情况下,请使用 AffineTransform.getScaleInstance(sx, sy)

然后我调用 Graphics2D 函数来绘制我的线和多边形使用像素坐标。

这使得调试更容易:你可以看到之前的坐标值以及改造后。

Java 教程中的高级主题部分描述了如何使用 Graphics2D 进行转换,示例如下: http://download.oracle.com/javase/tutorial/2d/index.html

关于java - 坐标转换困境,用户坐标到设备坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com