问题标签 [java-2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3318 浏览

java - 测量在应用程序/线程中花费的时间

我正在用 Java 编写一个模拟,其中对象在牛顿物理学下起作用。一个物体可能会被施加一个力,并且产生的速度会导致它在屏幕上移动。模拟的性质意味着对象以离散的步骤移动,具体取决于动画循环的当前迭代和上一次迭代之间经过的时间;例如

如果动画线程以某种方式延迟导致大量时间流逝(典型情况是在 Windows 下单击并按住最小化/最大化防止重绘),则会出现问题,这会导致对象以惊人的速度移动。我的问题:有没有办法确定在动画线程中花费的时间而不是挂钟时间,或者任何人都可以建议一种解决方法来避免这个问题?

到目前为止,我唯一的想法是限制deltaMillis某个上限。

0 投票
1 回答
598 浏览

java - 如何在 Java 中以高性能显示多个 SVG

我想要的是

我的目标是能够在 Java 中的单个绘图区域上显示大量 SVG 图像,每个图像都有自己的平移/旋转/缩放值。我正在寻找允许这样做的最简单的解决方案,甚至可以选择使用 OpenGL 来加快速度。

我试过的

我最初的幼稚方法是使用 SVGSalamander 直接在 JPanel 上绘图,但性能很差。

我四处逛逛,了解到我应该手动将每个 SVG 转换为使用 createCompatibleImage 创建的 BufferedImage,然后进行我想要的转换,然后使用双缓冲绘制它。我在这里遇到了一些麻烦,在继续之前,我尝试寻找框架来简化事情。

我看过的

我对可用的选项有点不知所措,这就是为什么我转向 SO 寻求帮助。我看过:

但无法决定什么最适合我开始工作,我希望这里有人对这些做类似事情有经验。

0 投票
2 回答
403 浏览

java - 获取对象位置 Java2D(不是角落)

如何在 Java 中获取 JLabel 位置而不是对象的左上角 x/y 位置?

0 投票
1 回答
925 浏览

java - Java2D 距离碰撞检测

我当前的设置只有在发生碰撞后才有用;显然必须有比这更好的东西吗?

如何进行抢先式碰撞检测?

0 投票
6 回答
7843 浏览

java - Java:获取 FontMetrics 实例的更友好的方法

有没有比获取 FontMetrics 实例更友好的方法

由于以下示例,我讨厌这种方式:

如果您想在游戏中创建一个菜单,并且您希望所有菜单项都位于屏幕中央,则您需要 fontmetrics。但是,大多数情况下,菜单项是可点击的。所以我创建了一个数组,Rectangles所有矩形都适合项目,所以当按下鼠标时,我可以简单地使用

但是要创建矩形,我还需要 FontMetrics 作为它们的坐标。所以这意味着我必须在菜单的绘制方法中构建所有矩形。

所以我想要一种获取 FontMetrics 的方法,这样我就可以在构造函数调用的方法中构造矩形。

0 投票
2 回答
799 浏览

java - 如何使用彩色图案剪切图像?

我正在开发一个按颜色剪切图像的小程序。

使用此示例图像最容易解释:

黑色带紫色斑点

我想用紫色的形式创建一个新的图像,没有黑框。

有没有人有任何想法?我正在使用 Java 2D,所以我认为我需要使用第一个图像的紫色区域创建一个对象“形状”。

0 投票
4 回答
2647 浏览

java - 改进绘图毕达哥拉斯树

我已经编写了绘制毕达哥拉斯树分形的程序。任何人都可以看到任何改进它的方法吗?现在是 89 LOC。

0 投票
2 回答
10817 浏览

java - Java2d:JPanel 设置背景颜色不起作用

我有如下所示的代码:

它工作正常,并以黑色背景显示面板。但是当我实现什么都不做的paint方法时,颜色变为默认颜色,即灰色。

我试图设置 graphics.setColor() 但它没有帮助。

0 投票
5 回答
4445 浏览

java - Java2d:平移轴

我正在使用 Java2d 开发应用程序。我注意到的奇怪的事情是,原点在左上角,正 x 向右,正 y 向下增加。

有没有办法将原点左下角移动?

谢谢你。

0 投票
1 回答
605 浏览

math - 在 SWT 中绘制一个给定 3 个点的弧

我正在使用 swt java 库,但我遇到了问题。

gc draw arc 方法采用以下参数 GC.drawArc(int x, int y, int width, int height, int startAngle, int endAngle);

但我希望能够使用 3 个参数绘制弧线:源点、目标点和控制点。

是否有任何公式可以在这些参数之间进行转换?

QuadCurve2D 类完全符合我的要求,但它是 AWT 而不是 swt ...我尝试在 swt 下使用 java2d,但速度很慢 ....

任何解决方案?

更新

我找到了解决方案:

使用 Arc2d Object 中的 createArcByCenter 方法,我可以给它 3 个参数,然后得到等效的 x 、 y 、 width 和 height ..将它们与 gc 对象一起使用

有没有更好的解决方案?