问题标签 [graphics2d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java2D:填充凸圆角多边形(QuadCurves)
如果我有这样的 QuadCurve(+
= 节点):
我用Java 2D填充它,结果是这样的:(x
=有色)
但我想给另一面上色:
这通过在曲线周围绘制一个矩形来成功,我想为另一侧着色,然后用背景颜色填充曲线。
但这不足以填充凸圆形(基于 QuadCurves)多边形。如果矩形的某些坐标(如我使用的技巧中所述)与多边形的其他部分重叠。这是两张图片(绿色区域是我的多边形):
替代文字 http://img204.imageshack.us/img204/7823/convexpolygon.png 替代文字 http://img708.imageshack.us/img708/3669/convexpolygon2.png
所以,问题很简单:“如何为曲线的形状构建着色?”
但我认为答案并不简单......
非常感谢任何建议。
提前致谢。
如果我没有得到答案,也许我会为这个问题悬赏
java - 这是不好的做法吗?多个 Graphics2D 对象
我创建了一个包含所有图形的 JPanel 画布;即JLabel。要使动画精灵工作,您必须覆盖扩展 JLabel 类的paintComponent。我已经以这种方式成功实现了动画精灵。
拥有一个 Graphics2D 画布然后在自己的 Graphics2D 中有多个“图像”是不好的做法吗?
java - Java - 填充自定义形状
我创建了一个自定义形状,本质上它是四个 Arc2D 对象的集合。
当这些弧线被绘制出来时,它们形成了一个可以被认为是四点圆形星形,有点像三叶草。一条弧线结束的地方,另一条弧线开始。它们在中心形成一个正方形。所以想象一下,取一个正方形,在每一边画半个圆圈。
我可以将此形状绘制到 Graphics2D 对象,但是当我填充它时,它只会填充弧线而不是中心正方形。填充这个内部方块是我的问题。
我已经实现了getPathIterator()
下面的方法。我也实现了这些contains()
方法。但它仍然只会填充弧线。
我试图添加一个Rectangle
. 填充形状时,矩形/正方形会被正确填充,但是它也会绘制矩形,这显然应该是预期的,但绝对不是预期的结果。
那么,有人对如何“填充”这样的形状有任何想法吗?
java - 使用 JUnit 测试图形生成
我正在使用 Java 的 Graphics2D 来生成图形的图形表示。我也在使用 ImageIO 来编写 PNG 文件。( ImageIO.write(image, "png", out);
)
我想知道我应该如何编写 JUnit 测试来测试生成的图形是否符合预期。我可以预先生成 PNG 文件,但是如果字体在不同的机器上有点不同怎么办?
java - 如何在 Java 中不耗尽内存的情况下编写图像?
(这个问题的完整代码)。
尽管我已将 jvm 属性设置为 3GB,但此代码会导致 Java 堆空间异常。这可能是问题吗?
无论如何不能用更少的内存来绘制图像吗?我正在使用 A4 尺寸的 BMP 进行打印,只有文本。大多数时候它只是黑白的,而有时我也需要使用蓝色、粉色和灰色。
java - 装饰 JFreeChart
我想在角落里用时间戳装饰我生成的所有 JFreeCharts。在生成图表后,JFreeChart 框架中有没有办法在图像上绘制?
编辑:请注意,这些图表是在后台线程中生成并通过 servlet 分发的,因此没有 GUI,我不能只在单独的组件上显示时间戳。
java - 使用 Java2D 绘制 3D 房子?
如何使用 Java2D 绘制一个简单的 3D 房子?我想画房子的侧壁,让它看起来像一个简单的 3D 绘图。
// House.java
//ShowHouse.java
java - TYPE_4BYTE_ABGR 到 TYPE_3BYTE_BGR 的转换
我有一个具有透明度的 TYPE_4BYTE_ABGR imageType 的 BufferedImage,我想将其转换为 TYPE_3BYTE_BGR BufferedImage。我试图在 TYPE_3BYTE_BGR 之一上绘制 TYPE_4BYTE_ABGR 图像,但它改变了颜色。
目的是将透明图像放在白色背景上,因为如果只是将 TYPE_4BYTE_AGBR 图像写入 .jpg,他会得到黑色 ob 透明区域。
java - 如何将一张图像的一部分复制到另一张图像?
我想将一个图像的一部分复制到另一个较小的图像中:换句话说,复制一个子矩形。
我有一个用于源的Graphics2D对象,我可以为目标制作一个对象,并且我知道targetGraphics2D.drawImage(Image img,....),但是如何从sourceGraphics2D获取该img?
答案(按 aioobe):源需要是Image而不是Graphics2D。
Image.subImage()是获取源相关部分的方法。