In SwiftUI, how to manipulate sampling rate of a gesture in time?

If increasing sampling rate isn't possible, then is the only option for "continuous" drawing repeatedly adding a bezier curve from n-2 to n-1, that takes into account n-3 and n?

Are there other (easy) options to interpolate between location n-2 and n-1 not only visually, but with knowing and storing all intermediate points? Think more bitmap, less vector.

Below my code and a current "uneven" result

struct ContentView: View {
    @State var points: [CGPoint] = []
    var body: some View {
        Canvas { context, size in
            for point in points{
                context.draw(Image(systemName: "circle"), at: point)
            }
        } .gesture(
            DragGesture().onChanged{ value in
                points += [value.location]
            }
        )
    }
}

In SwiftUI, how to manipulate sampling rate of a gesture in time?
 
 
Q