... a logarithmic spiral projected onto a sphere, ie, the spiral is the cutter.
Eddie,
I hope I understand your question correctly. My approach is to start with the wanted shadow. So I begin by constructing the respective region:
logSpiral[t_] := {Sin[t], Cos[t]} Exp[.1 t];
thickn = .02;
img = AlphaChannel[ppl = ParametricPlot[logSpiral[t], {t, -10 Pi, 0},
PlotStyle -> {Black, Thickness[thickn]}, Axes -> False,
PlotRangePadding -> thickn .75]];
plRange = PlotRange /. AbsoluteOptions[ppl, PlotRange];
spiralRegion = RegionResize[DiscretizeRegion[ImageMesh[img]], plRange];
shadowRegion = DiscretizeRegion @ RegionDifference[DiscretizeRegion@Disk[], spiralRegion]
Now a spherical function can simple be plotted onto that region:
Plot3D[Sqrt[1 - x^2 - +y^2], {x, y} \[Element] shadowRegion,
PlotPoints -> 100, ImageSize -> Large, Boxed -> False, Axes -> False,
BoxRatios -> Automatic,
PlotTheme -> "ThickSurface"]
Notice the option PlotTheme -> "ThickSurface"
witch makes it suitable for 3D printing.
Well, at first glance this looks good, but in fact it does not really work the way you probably want. The problem is that now the sphere is cut perpendicular to the surface - and not along the z-axis. I tried with RegionProduce
and RegionDilation
and ShellRegion
, etc., but I could not get a better result.
Nevertheless I hope this is helpful.