Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何镜像/旋转a";fillArc";绘画_Java_Graphics - Fatal编程技术网

Java 如何镜像/旋转a";fillArc";绘画

Java 如何镜像/旋转a";fillArc";绘画,java,graphics,Java,Graphics,所以,我的情况是,我画了很多同心圆,为了提高效率,我只想画圆的1/8,然后镜像/旋转剩下的部分。说清楚点,假设我有以下代码: for(int i = 0; i < end; i++) { posX = calcX(i); posY = calcY(i); length = calcLength(i); g2.fillArc(posX, posY, length, length, 0, 45); } // mirror/rotate 7 times... f

所以,我的情况是,我画了很多同心圆,为了提高效率,我只想画圆的1/8,然后镜像/旋转剩下的部分。说清楚点,假设我有以下代码:

for(int i = 0; i < end; i++) {
    posX = calcX(i);
    posY = calcY(i);
    length = calcLength(i);
    g2.fillArc(posX, posY, length, length, 0, 45);
}
// mirror/rotate 7 times...
for(int i=0;i
这可能吗?我知道你可以拍一张照片,但这看起来要复杂得多

提前感谢您的帮助

编辑:g2是一个Graphics2D对象

编辑2:那么,假设我有以下片段。有没有办法将整张幻灯片(用“fillArc”绘制)复制7次并画一个完整的圆圈:


编辑3:修复代码以匹配我所说的内容

我认为g2是一个图形2D对象? 然后你可以用

g2.setTransformation();
并使用仿射变换旋转图像。虽然它应该更有效地使用

g2.drawOval(...);

为了画圆

谢谢你的回复。让我意识到我完全错了!这实际上有点棘手,也许是不可能的。我做了一些编辑,没有什么是不可能的。可能是棘手的、低效的或困难的,但决不是不可能的;)是否要创建具有透明度的位图,绘制切片,将切片旋转并粘贴到目标位图中七次,同时考虑透明度以创建一个完整的圆?你认为这比画圆圈更有效吗?如果它真的比圆形绘制算法更有效,那么它将以这种方式实现(因此您不需要手动执行)。不是。另外,你不能使用抗锯齿,否则你会在每个接缝处得到非常难看的伪影。我的想法是,如果我画1/8,我可以把它放在其他7个地方。如果有足够多的圆圈,比如说100个左右,我会开始看到好处吗?啊,我担心会发生这种情况。如果你复制几个昂贵的单步建造的整个圆圈,也许会。切片和旋转-甚至不可能有性能增益。另外,你知道,过早的优化。。。