How to move the Gauge Indicator with Animation

I wanted to make a Gauge View to display the angle Moved below is the image

and the needle give the angle according to the input is given ,but I need to change the direction of the needle with some animation as of now its just moving like a glitch

below is my code


import SwiftUI

struct RudderView: View {

    @State var ArrowValue: CGFloat = -100

    let AngleTimer = Timer.publish(every: 0.1, on: .main, in: .common).autoconnect()

    var body: some View {
        NavigationView {

            ZStack{

                    Circle()

                        .stroke(.gray.opacity(0.1),lineWidth: 25)

                    Circle()

                        .trim(from: 0,to: 0.75)

                        .stroke(Gradient(colors: [.red,.white,.green]), style: StrokeStyle(lineWidth: 25,lineCap: .round,lineJoin: .round))

                        .rotationEffect(Angle(degrees: -225))

             

                    ZStack {

                        RoundedRectangle(cornerRadius: 20)

                            .foregroundColor(.white)

                            .frame(width: 25, height: 150)

                    }

                    .offset(x:0, y: -50)

                    .rotationEffect(Angle(degrees: ArrowValue))

                    .onReceive(AngleTimer) { _ in

                        withAnimation {

                                

                            }

                        }

                    }

                    Text("40")

                        .font(.largeTitle)

                        .fontWeight(.thin)

                        .foregroundColor(.white)

                        .offset(x:100, y:170)

                    Text("-40")

                        .font(.largeTitle)

                        .fontWeight(.thin)

                        .foregroundColor(.white)

                        .offset(x:-100, y:170)

            }

            .padding()

        }

        

            }

            }







struct RudderView_Previews: PreviewProvider {

    static var previews: some View {

        RudderView()

            .preferredColorScheme(.dark)

    }]w

}

can anyone say what to type in the animation bracket to move my needle smoothly according to the changes of input for arrow

How to move the Gauge Indicator with Animation
 
 
Q