草庐IT

java - 如何在 - Graphics2D 中使像素完美的 Line2D

你好,我有JPanel,上面有一些Line2D对象。问题是当我画这条线时,它并没有像我希望的那样出现。线条不流畅,很难用文字解释,所以我贴了一张图片,缩放区域,如何让它们看起来更光滑而不是皱巴巴的。谢谢 最佳答案 问题很可能是您没有在图形上下文中打开抗锯齿功能。在绘制之前尝试以下行:graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);(当然,graphics是您的Graphics2D实例)。稍后当您发

java - 什么是 Java2D 处理器线程?

我创建了一个使用Hibernate的示例Java应用程序,当我执行线程转储时,我观察到名为Java2DDisposer的奇怪线程。有人能告诉我那个线程的功能吗? 最佳答案 AWT系统中的某些实体需要完成才能释放资源。最突出的示例是java.awt.Windows,它需要在窗口被垃圾回收后释放其native资源。可以使用终结器来做到这一点,但可以为您提供更详细控制的解决方案是将幻像引用与引用队列一起使用。该解决方案需要一个在引用队列上等待的专用线程。该线程是“Java2D处理器”线程,它是在您初始化AWT系统时创建的。

java - Graphics 和 Graphics2D 之间的区别?

Graphics和Graphics2D有什么区别?Graphics2D是否是Graphics的扩展?publicvoidpaintComponent(Graphicsg){super.paintComponent(g);g.drawRect(25,25,20,20);//useGraphicstopaintrectangleGraphics2Dg2=(Graphics2D)g;g2.drawRect(0,0,20,20);//useGraphics2Dtopaintrectangle} 最佳答案 Graphics本身是一个抽象类,因

java - 使用 Java 的简单 2D 图形的最佳 API

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。我不确定使用Java的简单2d图形的最佳API是什么。我知道java.awt.Graphics2D是标准,但它被替换了吗?Swing是用于JavaGUI应用程序的新API,但对于我想要的东西来说它似乎有点沉重。我真正想要的是像CSDLlibrary这样的东西.

java - 为什么 Java 2D 原点在左上角?

我不是在提示,只是想知道。为什么Java使用绘图表面的左上角作为原点?我假设更自然的是选择左下角作为原点,并随着它们向上和向右增加轴(类似于Quartz)。 最佳答案 自古以来,计算机图形就起源于左上角,其中包括QuickDraw。使用左下角(如在数学中)是PostScript/PDF的东西。由于Quartz基于PDF,因此它使用其坐标,但这在图形库中主要是一个独特的决定。 关于java-为什么Java2D原点在左上角?,我们在StackOverflow上找到一个类似的问题:

java - 如何使用 Java2D 创建硬件加速图像?

我正在尝试创建一个快速图像生成器来执行大量二维转换和形状渲染,因此我正在尝试使用BufferedImage,然后获取Graphics2D对象来执行我的所有绘图。我现在主要关心的是制作速度非常快,所以我正在创建一个像这样的BufferedImage:GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();GraphicsConfigurationgc=ge.getDefaultScreenDevice().getDefaultConfiguration();BufferedImagebImage=gc

java - 判断 Path2D 是否自相交

我需要确定Path2D是否与自身相交。现在,我通过简单地从路径中提取一组线,并查找这些线是否相交来实现。但是它有O(n^2)的复杂度,所以它很慢。有更快的方法吗? 最佳答案 您可以使用扫描线算法更快地完成此操作:http://en.wikipedia.org/wiki/Sweep_line_algorithm伪代码:Eachlinehasastartpointandanendpoint.Saythat`start_x`最坏的情况仍然是O(N^2),但平均情况是O(NlogN) 关于jav

java - 用于 2d 游戏引擎的 Graphics2D 包装器

我正在尝试编写一个2d游戏引擎,并且正在尝试实现一个视口(viewport)系统,这样当我在某个视口(viewport)中绘图时,游戏坐标将转换为屏幕坐标,而无需手动执行转变。我想要做的是创建一个添加setViewport方法的Graphics2D包装器。我认为有两种选择:创建一个类,该类具有Graphics2D的实例,并具有与Graphics2D相同的所有方法以及setViewport并且只需调用Graphics2D实例上的相应方法。子类Graphics2D并添加一个setViewport方法,然后从Graphics2D转换到这个新类我尝试了#2,因为#1看起来很不切实际,但遇到了C

java - 如何将 Java 2D Shape 对象序列化为 XML?

Shape接口(interface)由Java2D对象实现(Arc2D,Area,CubicCurve2D,Ellipse2D、GeneralPath等)。一些具体对象被标记为Serializable,可以使用对象序列化来存储和恢复,但其他如Area没有实现接口(interface)并抛出错误。但由于我们不断被警告这种天真的序列化在Java实现或版本中不一定是稳定的,所以我更愿意使用某种形式的序列化。这导致我们使用XMLEncoder和XMLDecoder从XML存储/恢复,但它能够处理更少的Java2DShape对象。两者的部分结果如下所示。我们从6个形状开始,并尝试通过对象序列化和

Box2D似乎随机创建特定的身体和固定装置

我创建了一个类似于不是俄罗斯方块2将libgdx与box2d一起使用。它可以成功地从世界上删除切片,这显然涉及复制几个身体并破坏/创建固定装置。但是,似乎是随机的,将出现具有2x2固定装置的身体。使用与周围对象相关的信息,将其范围缩小到以下功能:BodyduplicateBody(Bodyoriginal){BodyDefd=newBodyDef();d.position.set(original.getPosition());d.angle=original.getAngle();d.linearVelocity.set(original.getLinearVelocity());d.ang