怎样绘制的图像像素图,而是通过旋转一定角度,像批量绘制时我能做什么? 没有一个具有角度作为参数,例如批绘图方法有像素图方法。
Answer 1:
好吧,这里是我设法让(实际上是借用,从这里调整:代码旋转位图像素 ):
public Pixmap rotatePixmap (Pixmap src, float angle){
final int width = src.getWidth();
final int height = src.getHeight();
Pixmap rotated = new Pixmap(width, height, src.getFormat());
final double radians = Math.toRadians(angle), cos = Math.cos(radians), sin = Math.sin(radians);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
final int
centerx = width/2, centery = height / 2,
m = x - centerx,
n = y - centery,
j = ((int) (m * cos + n * sin)) + centerx,
k = ((int) (n * cos - m * sin)) + centery;
if (j >= 0 && j < width && k >= 0 && k < height){
rotated.drawPixel(x, y, src.getPixel(j, k));
}
}
}
return rotated;
}
创建并返回旋转像素图进行传递源点阵图的。 它绕中心,它实际上是相当快的,在PC和我的HTC感觉。
而且不要忘记处置像素图的使用后,你会得到。
这将是很好有这个这将是更优化的系统解决方案,具有旋转点坐标,但这种做这项工作对我来说,希望能对别人有帮助的。
Answer 2:
你的代码有逆转k个和j。 AS-是,0度的角度应该引起同样的事情,但事实并非如此。 它旋转90度。 因此,一个行应该是
rotated.drawPixel(x, y, src.getPixel(j, k));
代替
rotated.drawPixel(x, y, src.getPixel(k, j));
否则,就像一个冠军。
文章来源: How to draw rotated image on pixmap (LibGDX)