I am trying to slice a cylinder, and plot as a region, so I can apply a colour funtion like so:

```
RegionPlot3D({(x - 1)^2 + y^2 < 1 && x <= z},
{x, 0, 2}, {y, -1, 1}, {z, 0, 2},
ColorFunction -> (LABColor(1 - #3/2, #1 - 1, #2) &),
ColorFunctionScaling -> False, Mesh -> None, Boxed -> False,
Axes -> False, PlotPoints -> 100)
```

However, I cant seem to rotate the colour function or the cylinder region. I looked here but can’t seem to apply it to this problem.

Ideally, I’d like to slice it with the plane as the variable, rather than altering the colour function or the cylinder, like so

I was wondering if I should use `Boole`

or `RegionIntersection`

, but haven’t had any luck so far.

Vertical cross sections should look something like this

which I created with a different methd:

```
labcross(n_, div_, div1_, div2_) :=
Flatten /@
Thread(Join({Transpose(Reverse(Reverse /@ #)),
Reverse(Table(LABColor(u, #, #2) & @@ {0, 0},
{u, 1/div1, 1, 1/div1})),
Reverse(Transpose(#2))}) & @@
Table(Table(Table(LABColor(u, #, #2) & @@
N@(v RotationMatrix(2 Pi x/div) . {1, 0}),
{u, 1/div1, 1, 1/div1}), {v, 1/div2, 1, 1/div2}),
{x, {n, div/2 + n}}));
With({n = 3}, Grid(Partition(
ArrayPlot(labcross(#, 2 n, 50, 25), Frame -> False,
ImageSize -> 300) & /@ Range@n, 3)))
```