java-2d相关内容

复杂形状的碰撞检测

我想制作一个游戏,每个关卡都从图像加载.我想在 Photoshop 中绘制整个关卡,然后将其设置为背景并让玩家在上面走动.我想要另一个不可见的图像越过顶部,它在我想要碰撞的所有地方都是黑色的. 我不想使用瓷砖的原因,因为矩形碰撞等会更容易,因为会有复杂的角落,而不是所有的东西都是矩形. 这是个好主意吗,是否可以轻松实现?这会占用大量 CPU 资源还是有更好的方法来做到这一点? 关 ..
发布时间:2021-11-19 22:39:08 Java开发

Java Swing:将鼠标悬停在矩形上时,光标响应速度非常慢

下面是用户将鼠标光标移动到一堆矩形上的代码,并且光标应该在矩形上方时变为手形光标,并在不在给定矩形上方时恢复为默认的普通光标. 问题:该解决方案有效,但非常缓慢.它们有很多“剥猫皮"的方法,因此我们可以对问题进行多种变体建模,并且解决方案可以是各种类型的,但是不变的是,我们必须循环使用迭代器遍历每个矩形并使用 contains() 方法确定 JPanel 上的给定点是否确实在矩形内,并相应地 ..
发布时间:2021-11-18 00:09:09 Java开发

在 Java 中组合区域时舍入不准确?

我正在 Java 中使用 Areas. 我的测试程序绘制了三个随机三角形并将它们组合成一个或多个多边形.在 Areas 被 .add() 编在一起后,我使用 PathIterator 来追踪边缘. 然而,有时 Area 对象不会按照它们应该的方式组合......正如您在我发布的最后一张图片中看到的那样,会绘制额外的边缘. 我认为问题是由于Java的Area类中的舍入不准确引起的( ..
发布时间:2021-11-17 04:16:29 Java开发

我如何正确对齐此文本?

我今天写了这个极坐标时钟,除此之外我几乎完成了,我想将我的文本对齐类似于 this.有谁知道如何做到这一点?我试过使用 FontRenderContext 和字体指标,但我似乎无法让它工作.这是完整的源代码,您可以自行编译并查看. import java.applet.Applet;导入 java.awt.AWTEvent;导入 java.awt.Color;导入 java.awt.Font;导 ..
发布时间:2021-11-16 22:04:51 Java开发

如何在调整图像大小时调整字体大小?

可能重复: 如何编辑转换为图像的文本?或其他任何方式来实现/编辑文本 我想要实现的是...我在textpane中有一个文本,我将其转换为BufferedImage并通过使用鼠标拖动来调整图像大小.现在,如果要编辑文本,请单击该图像,该图像将隐藏该图像并显示来自文本窗格的文本. 我的问题是文本窗格中文本的大小没有调整大小(增加/减小),因为调整大小是在图像而不是文本上进行的.那么,当我 ..
发布时间:2021-02-10 18:42:58 Java开发

将图形绘图从android移植到标准Java

我有一个android应用程序,可将图像直接绘制到画布上. 它特别使用路径和贝塞尔曲线. 我现在需要将此端口移植到用标准Java编写的Windows应用程序中,并且很难找到要使用的正确图形库. 我需要在内存中创建带路径的位图. 该路径必须能够容纳线条,贝塞尔曲线,椭圆形和空心矩形. 然后,将生成的图像多次渗入输出图形中. 我看过Graphics2D,但是路径绘制不允许创建椭圆作为 ..
发布时间:2021-02-10 18:42:55 Java开发

java2d和scale

当我使用g2d.scale(2,2)或AffineTransform缩放[Rectangle]形状时,我无法检测到正确的形状,因为我的形状比例仍然与以前相同,只是形状的视图发生了变化. 我需要解决此问题的解决方案[变换后更改形状的大小]. 谢谢 解决方案 您可以使用逆变换,如此处所示,或明确进行缩放,如此处所示. ..
发布时间:2021-02-10 18:42:52 Java开发

在Line2D的末端绘制带有多边形的菱形

我正在尝试绘制菱形(用于合成UML关系).现在,我正在制作一个像这样的三角形: 但是我想做这样的事情: 然后用此代码绘制三角形: private void drawArrowHead(Graphics2D g2, Point tip, Point tail, Color color) { g2.setPaint(color); double ..
发布时间:2021-02-10 18:42:49 Java开发

在滚动窗格的左上方绘制箭头

我在JScrollPane中有一个JPanel.在我的程序中,JPanel显示地图图像,并显示车辆的当前位置.我的程序接收车辆的位置和当前方向.我需要在地图上显示出来. 我在显示车辆方向时遇到问题.我想在地图可见区域的左上方显示一个箭头,以显示方向.以下是我尝试过的代码.但是当我向下滚动时会抛出异常. Exception in thread "AWT-EventQueue-0" jav ..
发布时间:2021-02-10 18:42:46 Java开发

使用Java 2D的抗锯齿高度图边缘

我正在使用Java 2D渲染地形图.地形图看起来像这样: 您可以看到边缘呈锯齿状.我想平滑地渲染地形的边缘,但是使用RenderingHints启用抗锯齿功能不起作用,因为我一次将地形图渲染为一列. 这是渲染地形的代码: // terrainImageG2 renders to a BufferedImage, obtained via BufferedImage.createG ..
发布时间:2021-02-10 18:42:43 Java开发

在Java2D程序中定期调用repaint()的最佳方法是什么?

我希望定期在Java2D模拟器中调用repaint(). 什么是最好的方法?我应该启动另一个线程并有一个跟踪currentTimeMillis()的循环吗?还是有更好的方法? 解决方案 在Java中使用计时器功能( javax.swing.Timer ) ,这可能对您有用重新粉刷的有效方法 ..
发布时间:2021-02-10 18:42:40 Java开发

移动绘制的椭圆

因此,单击时我将Ellipse2D.Float添加到JPanel(和ArrayList).我想知道完成此操作后是否可以移动形状(例如,按住Shift键并单击).目前,它似乎是静态的,我无法将其拖动到任何地方. 此外,是否可以将两条圆与一条直线永久地连接在一起,从而将两条圆与一条直线连接起来;当圆移动时,线会更改为跟随圆. 我只是想看看这是否可行,我已经开始编码,但是找不到如何做这两件事 ..
发布时间:2021-02-10 18:42:37 Java开发

PixelGrabber vs getRGB中哪一个更快?

我试图通过捕获图像像素来实现图像上的 Hill Cipher 算法.事实证明,小的图像可以很好地加载. 但是对于较大的图像(8MP或12MP),加载速度很慢;因此写入图像的速度也很慢. 我正在使用bufferedImage.getRGB(x,y)抓取每个像素,使用算法对其进行修改,然后使用bufferedImage.setRGB(x,y,rgb)同时写入像素. 现在,我需要一些建 ..
发布时间:2021-02-10 18:42:31 Java开发

用Java2D绘制多个圆

我正在尝试使用Java2D进行一些简单的图形编程.我开始很容易,只是尝试在JFrame中显示几个圆圈.我成功显示了一个圆,但是添加第二个圆时,仅显示添加到JFrame的最后一个圆.我使用Circle类来定义我的圈子并覆盖用于显示它的paintComponent方法.对于我可能在做错的任何建议将不胜感激.下面提供了我的Circle和DancingCircles类的代码,以供参考. import ..
发布时间:2021-02-10 18:42:28 Java开发

如何在Java2D中旋转矩形

我想旋转一个方法中的矩形,但不了解如何操作,并尝试如下: private void setBoundaryRotate(Rectangle b, int radio) { AffineTransform transform = new AffineTransform(); transform.rotate(Math.toRadians(45), b.getX( ..
发布时间:2021-02-10 18:42:25 Java开发

如何绘制穿过三个点的曲线?

我试图创建一条通过Java中三个给定点的曲线(我正在通过扩展JPanel的类绘制曲线).我该怎么做? 解决方案 圆将穿过平面上的三个点.此页面说明了几何形状: http://www.mathopenref.com/const3pointcircle.html ..
发布时间:2021-02-10 18:42:19 Java开发