Tag: 图形

setPolyToPoly未应用

任何人都可以帮我解决我遇到的图形问题。 这段代码根本不应用setPolyToPoly ..它执行Camera旋转,但不执行polyToPoly转换..我不明白为什么.. final Camera camera = mCamera; final Matrix matrix = t.getMatrix(); camera.save(); camera.translate(x, y, z); camera.getMatrix(matrix); camera.restore(); matrix.setPolyToPoly(sourceArr, 0, destArr, 0, sourceArr.length >> 1); matrix.preTranslate(-0, -height); matrix.postTranslate(0, height);

使用Graphics的JPanel自定义绘图

我有一个自定义JPanel,有时在我的程序中,我需要调用一个方法,将屏幕画成黑色,就是这样。 public void clearScreen() { Graphics g = getGraphics(); g.setColor(Color.black); g.fillRect(0,0,getWidth(),getHeight()); } 当我启动程序时,我称之为此方法。 但是,我发现它有时会起作用,有时则不然。 这很奇怪。 我还发现,当它不起作用时,图形对象不为null,宽度和高度也正确定义(来自getWidth()和getHeight())。 为什么这有时会起作用,有时候不起作用? 在程序的某个时刻在我的JPanel上制作自定义绘图的正确方法是什么? 我正在使用getGraphics()是否正确? 我的JPanel(在某些时候)有JComponents,但后来我删除了那些JComponents并做了一些自定义图形绘制。 为什么这有时只会起作用?

Java Swing以饼图forms显示进度

我想以饼形格式展示进展。 有人可以帮忙吗? 我有要显示的数据,但是如何以这种格式显示它。 我们下载文件时谷歌浏览器中显示的进度。

Java Advanced Imaging API中的Fast Perspective转换

为了我的程序的需要,我创建了一个设备来扭曲图像并将其放在地图上(我的程序是基于地图的程序)。 我编写了自己的机制,使用放置在图像上的三个点放置和扭曲图像,放置在地图上的三个点,然后我只是创建一个AffineTransform,将第一个三角形转换为第二个,实际上将图像准确放置在我想要的位置并进行转换以适合用户的需求。 问题是,使用AffineTransforms,您只能执行最基本的转换。 您可以翻译,旋转,缩放和倾斜图像。 这对于大多数情况来说已经足够了,但我最近想要实现类似于Photoshop的自由变换的4点变换。 我做了一些研究,发现了JAI的Perspective变换,在WarpPerspective的帮助下,我可以实现我想要的。 我最初有一个问题,即变换图像的结果背景是透明的,但我也找到了解决方案。 这是我的代码: package com.hampton.utils; import java.awt.Dimension; import java.awt.RenderingHints; import java.awt.Transparency; import java.awt.color.ColorSpace; import java.awt.image.ColorModel; import java.awt.image.DataBuffer; import java.awt.image.SampleModel; import java.awt.image.renderable.ParameterBlock; import javax.media.jai.ImageLayout; import javax.media.jai.Interpolation; import javax.media.jai.JAI; import javax.media.jai.PerspectiveTransform; import javax.media.jai.PlanarImage; import javax.media.jai.RasterFactory; import javax.media.jai.RenderedOp; import javax.media.jai.WarpPerspective; import javax.media.jai.operator.CompositeDescriptor; /** * @author Savvas Dalkitsis */ public class PerspectiveTransformation { public […]

JfreeChart:水平滚动XYBarChart – (图表翻译和导航)

我正在尝试水平滚动我的XYBarChart,我正在关注其中一个JfreeChart的演示“TranslateDemo1.java”,其中您可以在这里找到源代码: http://code.google.com/p/cori-chenxx/source/browse/aliper/trunk/aliper-core/src/test/java/com/alibaba/aliper/TranslateDemo1.java?spec=svn148&r=148 源代码适用于“TimeSeriesChart”。 然而,我尝试使用“XYBarChart”,当我滑动BAR时行为不一样。 为了清楚起见,我用以下源代码替换了#157行: JFreeChart chart1= ChartFactory.createXYBarChart( “Title”, null, true, “Ylabel”, xyDatasetTranslating, PlotOrientation.VERTICAL, true, true, false); 有谁知道应用程序以这种方式表现的原因? 以及如何解决它。 谢谢,

Android可旋转ImageView

我正在尝试创建一个可旋转的ImageView,我将指定特定的角度和枢轴点,并看到它围绕该枢轴点旋转。 我试过这样的事情: Matrix matrix = new Matrix(); matrix.postRotate(45, imageView.getWidth(), imageView.getHeight()); imageView.setScaleType(ScaleType.MATRIX); imageView.setImageMatrix(matrix); 但是postRotate方法的参数(第二个和第三个 – 枢轴点)完全没有变化。 即使它们是0,0,它也是一样的。 所以我想创建一个ImageView,它在初始化时会旋转一定的角度。 在这个例子中45度。 我试过设置界限和工作人员..没有帮助。 我怎么做? :/

为什么这个图像在Java缩小后看起来如此糟糕?

这是原始图像: http : //rank.my/public/images/uploaded/orig-4193395691714613396.png 在这里,它缩小到300×225: http://sofzh.miximages.com/java/norm-4193395691714613396.png 在这里,它缩小到150×112: http://sofzh.miximages.com/java/small-4193395691714613396.png 正如你所看到的,300×225看起来非常糟糕,150×112看起来很糟糕。 这是我用来缩小图像的代码: private static BufferedImage createResizedCopy(final BufferedImage source, final int destWidth, final int destHeight) { final BufferedImage resized = new BufferedImage(destWidth, destHeight, source.getType()); final Graphics2D bg = resized.createGraphics(); bg.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); bg.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); bg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); final float sx = (float) destWidth / source.getWidth(); final float sy = (float) […]

在JPanel中绘制文本

我正在寻找如何在JPanel中绘制文本的最基本的描述。 我知道有十亿个教程,但没有一个与我点击,我有一些具体问题可以帮助其他困惑的人。 作为一个设置(测试应用程序),我有一个单独的类,它有一个JLabel,一个JTextField,一个JButton和一个JPanel。 应用程序从外部文件读取整数,并在按下JButton时在面板中显示它们的平均值。 我已经整理了所有底层编程(也就是说,按钮响应并将平均值打印到命令行)但我似乎无法理清如何将平均值打印到面板。 我想我最大的问题是如何将paint()或paintComponet()方法与其余代码结合在一起。 应该是它自己的class级吗? JPanel应该是它自己的类吗? 看起来这就是大多数教程告诉我的内容,我只是不确定第一步是什么。 代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class Main extends JFrame implements ActionListener { private int[] intArray = new int[10000]; private int numOfInts = 0; private int avg = 0; protected JButton avgBtn; protected JTextField indexEntry; protected JLabel instructions; protected JPanel resultsPanel; public […]

为什么Java 2D原点位于左上角?

我不是在抱怨,只是想知道。 为什么Java使用绘图表面的左上角作为原点? 我认为更自然的是选择左下角作为原点并随着它们向上和向右增加轴(类似于Quartz)。

我应该用什么来显示游戏图形?

我有一个游戏系统,但我不知道应该用它来显示它。 我正在制作一个垂直射击游戏,我已经为所有控制敌人和玩家的类编写了方法,但我不知道如何有效地展示游戏。 我在想Canvas,它会重新绘制每一帧,但这真的是最有效的方法吗? 重要细节: 理想帧率:25fps 这是一场2D游戏 屏幕上任何时候都有25到100个对象,所有这些对象都在移动 显示的所有对象都是图像,均为PNG格式 窗口是640px×480px 现在所有的图像都被加载为BufferedImage,虽然我可以很容易地改变它 我需要一个坐标平面。 如果不完全重构我的代码,这是唯一无法改变的基本部分。 最重要的是我设置所有内容的方式,所有对象的每一帧都在我设计的坐标平面中移动和交互(处理碰撞检测和移动,没有图形组件),然后一切都应该被绘制到屏幕上,只需要去通过ArrayLists跟踪所有移动的对象并逐个绘制它们。