i tried to get a picture like the one attached. Essentially, i need to shade on the surface of a cylinder. I figured out that it could be achieved by placing many small peaces next to each other, but unfortunately it takes alot of calculation time and i guess this is surely one of the worst methods.
I agree that "placing many small pieces next to each other" is the correct approach, but I guess that you should rather glue surface patches together instead of arcs. In other words: it might be feasible to use 2d pieces rather than 1d pieces.
On the other hand, shadings of this category are difficult to accomplish by means of on-board-methods of tikz.
The TikZ library PGFPlots offers interpolated shadings based on surface patch segments. To use it, you only need to find a suitable parameterization of a cylinder - like r(x,y) = (sin(x),cos(x),y).
I used that parameterized cylinder to get some starting point which might be of use for your application. Here is what I got so far:
I added two (almost identical) pictures - only the colormap differs. It relies on a PGFPlots axis environment which hides its axis. The key point here is a parameterized surface plot with interpolated shading.
It is done by means of the \addplot3 command which samples two coordinates x (defined by domain and samples) and y (defined by domain y and samples y). The following coordinate has three tuples, one for the X coord, one for Y, and one for Z. Each is encapsulated by curly braces in order to avoid scoping problems due to the opening/closing round braces. The shader=interp uses a linear triangle shading in this parameterization where the color is defined by some color mapping. The color map uses one scalar value (the Z coord by default) and maps that into the default color map. The second plot defines a custom color map which has some vague resemblence of your samples graphics.