草庐IT

绘制多边形

全部标签

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

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

java - 在现有的 JPanels 上绘制 JLayeredPane

我正在开发一款国际象棋游戏。我想让板容器利用GridLayout来显示8x8的JPanel网格。(这将使诸如突出显示所选方block和有效移动等功能变得更加容易。)然后我想在该层上添加棋子,以便可以拖放它们。我最初通过在单独的方形JPanel中绘制来显示这些片段,但我认为稍后尝试拖放它们时会出现问题。从那以后,我一直在尝试使用JLayeredPane作为主容器,但遇到了几个问题。一个是,一旦我为JLayeredPane指定了GridLayout,无论我使用哪个Integer来指定要将JLabel或其他类型的图像添加到的图层,这些片段都会添加到网格中,从而设置它们的位置并扭曲了整个棋盘。

java - 绘制正弦和余弦函数

我目前在作业方面遇到了一些问题。这是练习:(Plotthesineandcosinefunctions)Writeaprogramthatplotsthesinefunctioninredandthecosinefunctioninblue.hint:TheUnicodeforPiis\u03c0.Todisplay-2Pi,useg.drawString("-2\u03c0",x,y).Foratrigonometricfunctionlikesin(x),xisinradians.Usethefollowinglooptoaddthepointstoapolygonpfor(int

java - 将相邻的矩形合并为一个多边形

我有一组矩形,它们具有相同的宽度和高度,并且总是相邻的。我知道所有顶点的位置,每个顶点只有4个。(因为是一个正方形)。这张图片可以解释这一点:如果有任何差距,算法将“填补”差距是可以的。我找了很多,没找到什么好东西..我需要一个简单的算法,它不必那么高效..假设我们从图像的第二个多边形示例中得到了7个矩形。如果我先将1与2合并,然后将我们的新多边形与3合并,这样就可以了,它不必那么快,因为最多会有50个矩形。 最佳答案 因为您的形状仅由矩形组成,而且它们总是相邻的,所以合并的算法比没有这些假设时要简单得多。从您的矩形中创建所有边的列

java - 在调用设置文本后,JLabel 在旧文本上绘制新文本

我有一个进度对话框窗口,其中包含3个JComponents:JLabel、JProgressBar、JButton,它们在不同线程的应用程序的不同部分用作默认对话框窗口。因此,当我尝试更改标签的值时,它不会清除其下方的背景,它只是在旧文本上绘制新文本。包装类不会覆盖任何方法,它只是将方法调用委托(delegate)给它包含的组件。代码如下:publicvoidsetNote(Stringnote){this.note=note;SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){label.setText(ProgressD

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 - 在 libgdx 中绘制旋转的 BitmapFont

我似乎不知道如何正确旋转位图字体。我想你修改了SpriteBatch的转换矩阵。但是,尝试旋转围绕某个点旋转文本,但我不知道如何相对于文本本身旋转它。 最佳答案 您可以在sprite中创建字形。这样,您就可以将文本作为sprite进行操作。示例代码:请注意,这将返回单个字形的Sprite。(例如,char'A'被转换为sprite。)/**Createsaspritefromaglyph.**@paramch*@returnSprite*/publicSpritegetGlyphSprite(charch){Glyphglyph=G

java - 如何在 Java 中绘制平滑的缓冲图像?

我们正在用Java制作一个简单的2D游戏。每次我们绘制图像时,它们都是锯齿状的,看起来很糟糕。我们可以对文本进行抗锯齿处理,但是我们的图像是非vector格式的,所以我们不能对它们应用抗锯齿处理。我们想要平滑我们的.JPG图像(它们是在Photoshop中以最高质量创建的):有没有办法以编程方式实现这一点?BufferedImagegoplaybut=ImageIO.read(getClass().getResourceAsStream("/gameover/goplaybut.jpg"));g.drawImage();Graphics2Dg2d=(Graphics2D)g;g2d.s

java - 将使用 AWT 和 Swing 绘制电影的 Java 应用程序移植到服务器端

我正在处理一些使用AWT和Swing功能将动画输出写入桌面的代码。它使用2D图形绘制并以字体呈现文本。此代码可以使用JavaMediaFramework将动画保存到电影文件中。我想将此代码移植到纯服务器端环境,以便使用WebUI。绘图代码可以在servlet容器内运行,也可以作为命令行程序在外部运行。(或者我可以选择不使用servlet容器,而是使用更新的方式从命令行运行JavaWeb服务器。)我可以在不启动服务器上的X窗口系统的情况下使用AWT和Swing绘图功能吗? 最佳答案 文章UsingHeadlessModeintheJa

java - 在 JPanel 上绘制 SVG 图像

我想在我的Java应用程序中的JPanel上绘制经过缩放、旋转、着色和带有alpha层的SVG图像。我怎样才能做到这一点?这些图像中可能有多个重叠。我真的不知道如何在Java中使用SVG图像所以请从头开始解释,不仅仅是渲染过程:)提前致谢! 最佳答案 您需要将SVG图像转换为JPanel可以显示的类型——我假设您已经知道如何使用BufferedImage来显示,例如一个PNG,并且您不需要编辑SVG,只需显示它即可。这里的关键是Java本身不支持SVG。你必须使用像batik这样的库加载图像并将其转换为可显示格式。我从http://