swiftUI animation And ID attribute

struct ContentIDView: View {

@State var testID = UUID()
@State var b = 0

var body: some View {
    VStack {
        Image("video_pic_diy_000")
            .resizable()
            .scaledToFit()
            .contentTransition(.interpolate)
            .id(testID)
            .offset(x:CGFloat(b>0 ? 100*b:0))
            .animation(.easeInOut(duration: 0.01).delay(0.2), value: b)
            .onAppear(perform: {
                print("\(testID)")
            })
        
        Text("\(testID)")
        
        Spacer()
        Button("Move") {
            withAnimation(Animation.easeInOut(duration: 0.2)) {
 
                b = b+1
                testID = UUID()
            }
        }
    }
}

} In the above code, there is an image and a button, and each time the button is clicked, the image moves 100* the distance of the number of clicks in the x direction from 0, but now each time it moves 100 from where the last move stopped instead of 0. What causes this? In addition, I set the id for Image. When the id changes every time the button is clicked, shouldn't the initial state be restored? Since it is the initial state, why didn't it move from 0?

swiftUI animation And ID attribute
 
 
Q