I'm trying to make a traditional Asian roof, and it's corners should be upturned (as showing in the reference image). I made arrays of cylinders. Then I tried using proportional editing with falloff. Also tried using lattice modifier. They all have a problem, that is, they all change the shape of each roof tile at the corners real bad. The cylinders at corners no longer look like cylinder they're all heavily stretched and not symmetrical. Even the smoothing gets ruined. But in real life each roof tile is of the same shape and symmetrical. They form the curved roof by rotating instead of stretching their shapes. So how to make curved roof in a more precise way please?