小编fa1*_*hly的帖子

使用AffineTransform旋转图像

我上课了Airplane.在这个类里面我有变量img这是一个BufferedImage类型.更有甚至,我有WorldMap一个覆盖功能的类paintComponent(Graphics g):

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    g2d.drawImage(mapa, 0, 0, getWidth(), getHeight(), null); 
    drawAirplanes(g2d);
}
Run Code Online (Sandbox Code Playgroud)

功能drawAirplanes()如下:

private void drawAirplane(Graphics2D g){
    for(Samolot i: s){
        i.rotateAirplane();
        g.drawImage(i.getImg(),i.getX(),i.getY(),(int)i.getDim().getWidth(),(int)i.getDim().getHeight(),  null);
    }
}
Run Code Online (Sandbox Code Playgroud)

它只需要1)旋转飞机(飞机物体内的BufferedImage)2)画他.

我的Airplane.rotateAirplane()函数如下所示:

 public void rotateSamolot() {
   AffineTransform tx = new AffineTransform();

   tx.translate(10,10); //10, 10 is height and width of img divide by 2
   tx.rotate(Math.PI / 2);
   tx.translate(-10,-10); 

   AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);

   BufferedImage …
Run Code Online (Sandbox Code Playgroud)

java swing image-rotation affinetransform graphics2d

7
推荐指数
1
解决办法
2万
查看次数

其他进程中的PID错误

看看这段代码

int main(int argc, char **argv) 
{
int pid[3];
int i,tmp;
pid[0]=getpid();


if((tmp=fork()) == 0) 
{
    pid[2]=getpid();
    printf("3. PIDY %d %d %d\n", pid[0], pid[1], pid[2]);
}
else
{
    pid[2]=tmp;
    if((tmp=fork()) == 0)
    {
        pid[1]=getpid();
        printf("2. PIDY %d %d %d\n", pid[0], pid[1], pid[2]);
    }
    else
    {
        pid[1]=tmp;         
        printf("1. PIDY %d %d %d\n", pid[0], pid[1], pid[2]);
    }
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

在输出我得到这样的smth:

1. PIDY 101 102 103
2. PIDY 101 102 103
3. PIDY 101 0 103
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我在第三个过程中得到pid [1] = 0?知道怎么解决吗?

c fork pid process

3
推荐指数
1
解决办法
411
查看次数

标签 统计

affinetransform ×1

c ×1

fork ×1

graphics2d ×1

image-rotation ×1

java ×1

pid ×1

process ×1

swing ×1