jjzjj

graphics2d

全部标签

java - 使用 SWT Graphics 在另一个图像上绘制动态透明图像

我正在尝试在已就位图像的顶部绘制一个组合形状的透明mask。我已经通过本文中包含的对话代码提供了我正在尝试的技术示例。这是它生成的屏幕截图。示例1(左上)突出显示了我要解决的问题,我希望有2个圆圈或任何相交的形状/弧线,都以相同的alpha级别绘制在一起,即没有由绘制引起的复合不透明彼此的顶部。示例3(左下角)是我尝试通过创建一个带有实体形状的单独图像,然后使整个图像透明来解决这个问题的尝试,我认为使用这种技术会产生一个处理白色的图像作为透明色,因此圆的边缘与白色混合,这样当您在其上绘制时,会在形状周围产生“光晕”效果。示例2(左上角)通过将图像中的圆圈也绘制为透明来进一步突出显示此问

java - 是否有适用于 Java 的高效 2D ArrayList 类?

我知道可以用ArrayList>创建一个2DArrayList,但在添加和检索对象时,这很麻烦并且是真正的类型转换梦魇。是否有任何2DArrayList类可以更有效地执行此类操作?我正在从头开始编写一个真正的2DArrayList类,我想知道是否还有其他人以有效的方式完成过此类事情。 最佳答案 不,不幸的是没有2dArrayList类。您的替代选项是(如果Diamension的0/1/2是常数):MyType[][]myList=newMyType[n][m];或ArrayList[]myList=newArrayList[n];或

java - 从渲染 2D Java 到 Flash

有没有办法将2d图形渲染到flash。如果不是直接到Flash,有没有办法将2d图形渲染成Java中的某种视频格式?理想情况下,我不想对swing应用程序进行Action捕捉,我想使用Java库来渲染视频。图形可能包括一些简单的东西,一个在屏幕上移动的彩色矩形。做到这一点的关键技术是什么? 最佳答案 在回答similarearlierquestionXuggler被提到作为从图像序列编码视频的一种方式。我还没有在Java中看到任何东西可以将图形实际捕获为视频流。我刚刚找到了QuickTimeWriterWernerRandelsho

java - JFrame 是如何工作的?在内心深处,它是如何画东西的?

通常,当我创建一个类时,例如Customer,我会给它一些数据字段,即publicintIdNumber;和一些方法,即public字符串getName(){...}。但仅此而已。我无法超越并开始玩弄图形-我只能在类(class)允许的范围内操作和组织数据。我无法理解JFrame内部发生的事情。谁编写了JFrame类,他们是如何编写一个可以使框出现在屏幕上的类的?内部发生了什么导致这种情况发生?有什么办法可以模仿吗?同样的问题适用于所有基于图形的Java类。我真的很想知道它是如何工作的,因为每次我使用其中一个时都会困扰我。 最佳答案

java:如何从 Graphics 对象获取 'screen' 尺寸

我正在开发一个几何程序,我需要在其中绘制“无限”线。我的类(class)Line有一个方法publicvoiddraw(Graphics2Dg){//...calculatex1,y1,x2,y2here...g.draw(newLine2D.Double(x1,y1,x2,y2));}我的想法是选择足够大的坐标,使它们远离可见表面。但我不知道,这就是我的问题,我怎么知道可见表面角点的坐标?Graphic的方法getClip()听起来不错,但显然它只返回用户之前设置的自定义剪辑。显然,我需要的在文档中称为“设备剪辑”。在您建议使用较大的长度(例如10000)之前,我指的不是像素大小。我

Java BufferedImage 保存不需要的背景颜色

提前感谢您的帮助描述:该程序绘制、显示和保存图像。它的工作原理如下:对象本身扩展了Frame。在构造函数中,该对象创建一个BufferedImage,并调用一个在该图像上绘制的方法。然后,它将图像显示到框架上。最后,它将图像保存到一个文件中(我不关心它使用什么格式)。主程序创建对象,剩下的由它来完成。问题:保存的文件总是有彩色背景!这特别奇怪,因为显示的图像很好。如果我将“jpg”格式与ImageIO.write()一起使用,则背景会偏红。如果我使用“png”格式,则背景为深灰色。我在这上面花了一段时间,但我仍然不知道到底发生了什么!importjava.awt.Frame;impor

java - Path2D 上的鼠标指针检测

我构建了一个Path2D表示由直线组成的未闭合形状:我希望能够检测到何时单击了鼠标并且鼠标指针靠近路径(在几个像素内)。使用contains方法不起作用,因为该算法将未闭合的形状视为隐式闭合(即通过在起点和终点之间画一条直线)。有人知道实现此目的的另一种机制吗? 最佳答案 创建一个BasicStroke(宽度控制您的像素距离公差)不要用它绘制,只使用它的createStrokedShape方法从您的形状创建第二个形状。第二个形状描述了如果您使用BasicStroke绘制第一个形状时将填充的形状的轮廓。使用第二个形状的contains

java - 有效地绘制大量粒子

我写了一个粒子系统小程序;目前我正在创建并分别绘制每个粒子。(这里是代码)BufferedImagebackbuffer;Graphics2Dg2d;publicvoidinit(){backbuffer=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB);g2d=backbuffer.createGraphics();setSize(WIDTH,HEIGHT);//createstheparticlesfor(inti=0;i它的性能还不错,我可以用20,000个粒子获得大约40FPS(尽管我有一台不错的笔记本电脑)。但

java - 如何使用 Streams 将 2D int 数组转换为 2D String 数组?

我正在尝试使用以下代码将2Dint数组转换为2DString数组:Arrays.stream(intArray).map(a->Arrays.stream(a).map(i->Integer.toString(i)).toArray()).toArray(String[][]::new);但是我在执行Integer.toString(i)时遇到编译时错误cannotconvertfromStringtoint。我认为这可能是因为我正在收集String数组中的int数组的流式传输结果,但map没有创建新的集合? 最佳答案 Arrays

java - Java中数据和文本的旋转坐标平面

我需要:1.)移动原点并旋转坐标平面,使x值从新原点向右移动,y值从新原点向上移动(在下面的代码中,它需要位于内部蓝色矩形的左下角)。这将使我能够在下面的代码中绘制x、y坐标对处的点。2.)在数据图的y轴上绘制tic标记的旋转标签。下面的代码设置了这个问题。它有效,除了两个问题:1.)以左上角为原点,y值向下绘制数据点2.)屏幕上没有绘制y轴上标记的标签任何人都可以告诉我如何修复下面的代码,以便它修复这两个问题并执行上面第一段描述的内容吗?代码在下面两个java文件中:数据图形用户界面importjava.awt.*;importjava.util.ArrayList;importja