Base wave:
y₀ = A₀ sin(2π f₀ x + φ)
Slope:
y₀′ = 2π f₀ A₀ cos(2π f₀ x + φ)
Normal vector:
N = (-y₀′, 1) / √(1 + y₀′²)
Arc length:
s(x) ≈ Σ √((Δx)² + (Δy₀)²)
Cosine ripple on the normal:
m = A₁ cos(2π f₁ s + ωt + ψ)
Final curve:
x₁ = x - m y₀′ / √(1+y₀′²),
y₁ = y₀ + m / √(1+y₀′²) + k