Make a flag wave

05AB1E, 25 23 26 25 bytes

-2 thanks to Adnan

-1 thanks to Emigna

+3 thanks to Jonathan Allan (thanks for spending the time to catch that invalidity!)

øvyN>²Öi¦¨'\.ø}N²÷ú}).Bø»

Try it online!

This is 1-indexed instead of 0, +2 bytes if that isn't okay.

ø                                    # Transpose.
 vy                }                 # For each column...
   N>²Öi¦¨'\.ø}                      # Replace outside dashes with slants.
               N²÷                   # Current index / input #2.
                  ú                  # Prepend that many spaces to current column.
                    ).Bø             # Join, pad, transpose back.
                        »            # Print with newlines.

Emigna/Adnan/Anyone - There HAS to be a better solution to replace those slants, but I'm stumped.


Pyth, 35 bytes

j.ts.e+L*k;?qQtlb+PbjPteb*2\\bcC.zh

Try it online!


Python 2, 129 bytes

lambda f,n,j=''.join:map(j,zip(*[i/n*' '+'-\\'[i%n>n-2]+j(s[1:-1])+'-\\'[i%n>n-2]+len(f[0])/n*' 'for i,s in enumerate(zip(*f))]))

Try it online!