草庐IT

Graphics2D

全部标签

java - 为什么 java.awt.Graphics.drawLine 异常慢?

我正在尝试实现以下“网格”布局。该类正在扩展java.awt.Canvas,并在paint函数中绘制这些形状(或线条)。为什么Canvas?检查here,最初尝试做类似的事情。更新MCVE获取上述“布局”的代码:importjava.awt.BasicStroke;importjava.awt.BorderLayout;importjava.awt.Canvas;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.ev

java - 3D 空间 (x,y,z) 中点的透视投影 : determine the 2D screen coordinates (x, y)

我想确定3D空间(x,y,z)中点的2D屏幕坐标(x,y)。我希望投影的点是由GPS坐标和海拔高度表示的真实世界点。例如:点(纬度:49.291882,经度:-123.131676,高度:14m)相机位置和高度也可以确定为x,y,z点。我还有相机的航向(罗盘度数)、倾斜度(高于/低于地平线)和滚动(围绕z轴)。我没有3D编程的经验,因此,我阅读了透视投影的主题,了解到它需要矩阵、变换等知识——所有这些目前让我完全困惑。有人告诉我,OpenGL可用于构建真实世界点的3D模型、设置相机方向并检索3D点的2D坐标。但是,我不确定使用OpenGL是否是解决此问题的最佳方案,即使是我也不知道如何

java - 在 Android 4.1 之前,方法 android.graphics.PorterDuffColorFilter --- 会错误地覆盖包

我正在使用导航draweractivityandroidstudio和FirebaseAuthentication。当我要运行这个应用程序时,我得到了这个错误。W/art:BeforeAndroid4.1,methodandroid.graphics.PorterDuffColorFilterandroid.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter,android.content.res.ColorStateList,and

java - Rectangle 和 Rectangle2D 的区别

目前,我使用Rectangle和Rectangle2D(Rectangle2D.Double)互换。我想知道在选择正确的数据类型时我应该考虑什么?除了Rectangle(Rectangle2D的子类)有更多的API函数外,我没有看到任何明显的区别。谢谢。 最佳答案 矩形使用int坐标。Rectangle2D是一个抽象类,它不关心您使用的是int、double还是float坐标。如果您需要double和float的更高精度,则必须使用Rectangle2D。Rectangle2D是基类,因此如果您正在编写以抽象方式对矩形形状进行操作的

java - 旋转 Java Graphics2D 矩形?

我到处找,就是找不到答案。如何在java中旋转矩形?这是我的一些代码:packagenet.chrypthic.Space;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassSpaceextendsJPanelimplementsActionListener{Timertime;publicSpace(){setVisible(true);setFocusable(true);addMouseMotionListener(newML());addMouseListener(newML());ad

Java 2D 游戏图形

下学期我们有一个关于团队制作Java应用程序的模块。该模块的要求是制作游戏。圣诞节假期我一直在练习,但我想不出绘制图形的最佳方法。我正在使用JavaGraphics2D对象在屏幕上绘制形状,并且每秒调用repaint()30次,但这闪烁得非常厉害。有没有更好的方法在Java中绘制高性能二维图形? 最佳答案 你想要做的是创建一个带有BufferStrategy的Canvas组件并渲染它,下面的代码应该向你展示它是如何工作的,我已经从我自己编写的引擎中提取了代码here.性能完全取决于你想画的东西,我的游戏主要使用图像。在480x480

java - Java 中的 Graphics.drawImage() 在某些计算机上非常慢,但在其他计算机上却快得多

我遇到了一个奇怪的问题,主要是在Java中Graphics.drawImage()在某些计算机上非常慢,而在其他计算机上则更快。这也与计算机的能力无关,一些较弱的计算机运行良好,而一些较强的计算机似乎在调用drawImage时出现阻塞。它可能与宽度和高度有关,也可能无关,我定义了非常非常大的宽度和高度(大约5000x2500)。我认为这不是问题,除非就像我说的那样它在某些计算机上以实时速度运行而在其他计算机上运行速度较慢并且似乎与计算机的相对功率无关。两台计算机的Java版本相同,都使用Vista。一个有一个1.83ghzCore2Duo和1gbRAM和板载显卡(运行一切正常),另一个

java - Graphics2D : Drawing black on white?

我确定这是一个非常愚蠢的问题,但我找不到答案,我没有使用Java2DAPI的经验。我正在尝试创建一个图像并将其写入GIF或PNG,我希望它在白色背景上使用黑色钢笔。如果我不设置任何颜色,我会得到黑底白字。如果我使用setPaint()(用于后续绘制操作),我会用该颜色重新绘制整个Canvas。以下示例将整个内容呈现为黑色。该示例是在Scala中编写的,但您明白了。欢迎使用Java回答!valbi=newBufferedImage(200,400,BufferedImage.TYPE_BYTE_BINARY)valg=bi.createGraphicsg.setBackground(Co

java - 如何在 Java 中使用 Graphics2D 旋转文本?

我想使用Graphics2D在JPanel上旋转文本..我的代码是这样的:doublepaso=d.width/numeroBarras;doublealto=datos[i].valor;FontfBarras=newFont("Serif",Font.PLAIN,15);g2.setFont(fBarras);Rectangle2Dbarra=newRectangle2D.Double(x,d.height-alto,paso,alto);//g2.fill(barra);x+=paso;g2.draw(barra);g2.rotate(-Math.PI/2);g2.setColo

java - 将 Graphics2D 转换为图像或 BufferedImage

我这里有个小问题。我有一个小程序,用户可以在其中“绘制”。为此,我使用了java.awt.Graphics2D。但是,我该怎么做才能将用户绘制的图像保存为JPEG图像,或者至少将其转换为BufferedImage或其他东西?我不知道该怎么做。谢谢。 最佳答案 让他们通过Graphics2D对象直接在BufferedImage中绘制,您可以通过getGraphics()获得该对象。然后使用ImageIO.write(...)将图像输出到您想要的任何文件类型(这是受支持的)。ImageIOAPI应该可以帮助您:ImageIOAPI.您会