Tag: 2d

将“路径”从2Darrays网格存储到列表中

在我用JLabel制作的2D网格作为单元格时,我让单元格的邻居形成一个“路径”,然后在该路径之后绘制一个多边形,其中单元格的中心为点。 我使用一个分层窗格(JPanel)将两个面板一个放在另一个上面以便能够绘制多边形和一个GridBagLayout以允许将两个组件一个放在另一个上面。 一切都按预期工作。 问题是,每当我点击一个空单元格时,前一条路径就会被清除,同时也会清除多边形。 但是不清除单元格内容。 现在,我希望将已绘制的路径/多边形保存在列表中,以便可以再次重新绘制它们。 我希望有一个类似“历史”的东西,它将包含所有找到的路径。 有关如何实现这一点的任何想法? 在路径之后绘制的多边形由位于该路径中包含的单元格中心的点(JLabel)形成: Point[] polygon = new Point[path.size()]; //calculate points to construct lines along the path for(int[] address : path) { //get cell location (row / col) int row = address[0]; int col = address[1]; //get label in that location JLabel label = grid[row][col]; //add center of label as […]

libGDX坐标系

我正在尝试在libGDX中正确配置我的Camera和Sprite ,以便在2D坐标系中正确显示左下角的原点。 我像这样设置我的Camera : cameraWidth = Gdx.graphics.getWidth(); cameraHeight = Gdx.graphics.getHeight(); camera = new OrthographicCamera(1, cameraHeight/cameraWidth); 我设置我的Sprite是这样的: sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2); sprite.setScale(scale); sprite.setPosition(startX,startY); 我的问题是sprite.setSize(x,y) 。 如果我将所有精灵设置为(1, texture aspect ratio)的大小,那么所有内容都以正确的显示比例(不是拉伸或拉伸)绘制,但没有任何东西绘制在正确的位置。 例如,如果我在(0,0)处绘制一些东西,它将以其左下角从屏幕左侧绘制并向上绘制多个像素。 我已经注意到通过改变比率我可以在不同的地方绘制东西 – 即如果我将其设置为(1, display aspect ratio)事情看起来非常接近于在正确的地方绘制 – 他们只是从他们的中心画出,而不是他们的左下角,正如LibGDX指定的那样。 唯一的问题是图像都显得微笑或拉伸,这是不好的。 这似乎是一个简单的问题,我只是想知道如何设置它,所以我可以有一个合理的坐标系统,在正确的位置和正确的纵横比绘制东西。 谢谢。

绘制点网格

我是图形编程的新手。 我正在尝试创建一个允许您绘制有向图的程序。 首先,我设法绘制了一组矩形(代表节点),并通过覆盖Java中的paint方法来实现平移和缩放function。 这一切似乎都运行得相当好,而没有太多的节点。 我的问题是在尝试绘制点网格时。 我首先使用了一小段测试代码,使用两个嵌套的for循环覆盖了一个点网格: int iPanX = (int) panX; int iPanY = (int) panY; int a = this.figure.getWidth() – iPanX; int b = this.figure.getHeight() – (int) iPanY; for (int i = -iPanX; i < a; i += 10) { for (int j = -iPanY; j < b; j += 10) { g.drawLine(i, j, […]

Java – 2Darrays检查对角线编号板

目前我正在开发一个在8×8 2Darrays板中生成随机0和1的程序。 我要做的是检查对角线上的所有数字是否相同(从角落开始,而不仅仅是任何对角线) 例: int[][] array = { {0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 1, 0, 1, 0, 1, 0}, {0, 0, 0, 0, 1, 1, 1, 0}, {0, 0, 0, 0, 1, 1, 1, 0}, {0, 0, 1, 1, 0, 1, 1, 0}, {0, 0, 1, 0, 0, 0, 1, […]

2D Java游戏。 在平铺图像上方移动精灵

– > 简介,你可以跳过这部分 我很高兴能够最终在这个平台上发帖,因为我自己通过这个社区获得了如此多的知识; 只是通过阅读。 所以我想说“大家好,谢谢! 实际内容(序幕): 虽然我在我的公司开发Objective-C,但我对JAVA开发完全感兴趣。 我对语法很满意但是在使用awt / swing / Graphics2D时遇到了一些重大问题。 这个概念: 具有800 * 600帧的JAVA应用程序。 在此框架上,您可以看到尺寸为50px²的16 * 12个瓷砖(即gras.jpg或tree.jpg)。 在这个框架上方,一个.png“玩家”正在移动。 该字段使用2维int数组[16] [12]生成,其中0表示“gras”,1表示“tree”。 – >这实际上是“有效”。 第一次尝试: 将(frame.add(…))16 * 12 JLabel与imageIcon“gras”或“tree”一起添加到JLayeredPane 添加(frame.add(…))类“entityLayer”以5ms更新为paint(Graphics g) { g.drawImage(imageIcon.getImage()); } 如果我添加带有图块的字段或实体图层,则此版本“有效”。 在每种情况下,entityLayer都会用灰色背景覆盖该字段,或者该字段下的“播放器”不可见; 第二次尝试: 在entityLayer绘制(Graphics g)方法中制作所有绘图。 但这不是我的意图。 我希望场地被绘制一次,而“球员”就像半透明背景一样,在场地上方绘制。 题: 我怎样才能让自己真正拥有两个独立的层次,这两个层次同样独立,而另一个层层重叠? 在某种程度上我的尝试是错误的,接近99%。 谢谢你马上。

Java 2D Imageresize忽略双三次/双线性插值渲染提示(OS X + linux)

我正在尝试使用Image Voodoo插件在JRuby / Rails应用程序中为上传的图像创建缩略图 – 问题是resize的缩略图看起来像……屁股。 生成缩略图的代码似乎绝对正确地将插值渲染提示设置为“bicubic”,但是它并没有在我们的开发环境(OS X)或生产Web服务器(Linux)上表现出来。 。 我已经提取出代码来生成缩略图,将其重写为直接的Java应用程序(即从main()方法开始),插值呈现提示明确设置为“bicubic”,并且已经复制了(缺少)双三次和双线性resize。 正如在OS X和Linux上所预期的那样,拇指按钮是丑陋且像素化的,但在Windows上,它使用双三次插值很好地调整了图像的大小。 是否有任何JVM环境设置和/或其他库我缺少使其工作? 对于这个,我正在做很多撞墙的事。

转换成心脏2d android

对不起,但我的数学和物理太弱,所以我尝试了很多次,但每次我失败,我需要你的帮助来完成我的应用程序PLZ转换这个圆圈的心脏 import android.graphics.Bitmap; public class Circle { float origRadius,deltaRadius,radius,origX,deltaX,x,origY,deltaY,y; int color,alpha,steps,currentStep; Bitmap bitmap; public Circle(float xCenter, float yCenter, float radius, int color, int steps) { this.x = xCenter; this.origX = xCenter; this.deltaX = (float) (40.0 * Math.random() – 20.0); this.y = yCenter; this.origY = yCenter; this.deltaY = (float) (40.0 * Math.random() – 20.0); this.origRadius = […]

绘制方程到笛卡尔平面

我试图将两个变量方程绘制成笛卡尔平面。 这是我的问题,在下面的代码中,如果我注释掉一个for循环并让另一个运行,图形的图形(x的负面或正面)是正确的,但如果我同时运行两个循环它们似乎改变每个其他和图表出错了。 我已经尝试了for循环的每个组合,向前循环,向后循环,似乎没有解决它。 我注释掉这些循环在类“公共类DrawingComponent扩展JComponent”末尾的位置,其中显示“//如果每个循环独立运行,则这两个循环工作正常” public class GraphingCalc extends JFrame { private static final int FRAME_WIDTH = 450; private static final int FRAME_HEIGHT = 400; private static final double INITIAL_BALANCE = 1000; private JLabel rateLabel; private JTextField rateField; public JButton button ; private JLabel resultLabel; private JPanel basePanel; private JPanel topPanel; // will contain rateLabel, rateField, […]

使用Swing,我想画几点

…在图像中并对其[xy]坐标进行一些计算。 我的第一个想法是使用图像作为JPanel的背景,然后注册点,但我不确定是否有办法在JPanel上标记这些。 还有我不熟悉的绘图库,但我不确定我是否可以将它们与Swing结合起来。 你能说出我可以使用的包/类来完成任务吗? 已经提供的代码的参考也是受欢迎的。 谢谢!

获取GeneralPath的有序顶点

如何获取GeneralPath对象的顶点? 看起来这应该是可能的,因为路径是由点(lineTo,curveTo等)构成的。 我正在尝试创建一个double [] []点数据(x / y坐标数组)。