Here is another (hopefully better) attempt, but first tackle a simpler case as a demo of the workflow. p1 = Plot3D[HeavisidePi[1/2 (x^2 + y^2)], {x, -2, 2}, {y, -2, 2} , PlotStyle -> Darker@Cyan , ImageSize -> 300 , AxesLabel -> Automatic , Exclusions -> All , ExclusionsStyle -> HatchShading[.4, Darker@Cyan] , SphericalRegion -> True , PlotRangePadding -> Scaled[.05] ]; FourierTransform[ FunctionExpand@HeavisidePi[1/2 (x^2 + y^2)], {x, y}, {ω1, ω2}] // FunctionExpand $\frac{I_1\left(\sqrt{-\text{$\omega $1}^2-\text{$\omega $2}^2}\right)}{\sqrt{-\text{$\omega $1}^2-\text{$\omega $2}^2}}$ p2 = Plot3D[BesselI[1, Sqrt[-ω1^2 - ω2^2]]/ Sqrt[-ω1^2 - ω2^2] , {ω1, -10, 10} , {ω2, -10, 10} , PlotStyle -> ColorData["HTML", "Aquamarine"] , PlotRange -> {-0.2, 0.6} , ImageSize -> 300 , AxesLabel -> Automatic , PlotPoints -> 20 , MaxRecursion -> 2 , SphericalRegion -> True , PlotRangePadding -> Scaled[.05] ]; Grid[{{p1, p2}}] --- [![enter image description here][1]][1] --- **Comments on the more general case** Using a function with a disk of radius R and situated at an offset: f[x_, y_, c1_, c2_, R_] := FunctionExpand@HeavisidePi[1/(2 R) ((x - c1)^2 + (y - c2)^2)] --- While computing the Fourier transform, this evaluates instantly but with `c1=0` and `c2=0`. Note that the radius can be set differently. FourierTransform[ f[x, y, 0, 0, 1], {x, y}, {ω1, ω2}] // FunctionExpand A workaround (check!) can be to add an offset to `ω1` and `ω2` after the transform calculation in order to shift the center of the 3D sinc-like plot. As an example: FourierTransform[ Evaluate@f[x, y, 0, 0, 3], {x, y}, {ω1, ω2}] /. {ω1 -> ω1 - 1, ω2 -> ω2 - 1/2 } // FunctionExpand I cannot comment on its math correctness so you can check or devise another strategy to evaluate the Fourier transform. I am not aware of such a strategy at this point. Perhaps the transform will evaluate after several minutes more and I haven't waited for more than five minutes on my machine before quitting the calculation. [1]: https://i.sstatic.net/aZWsz.png