Not too hard to code this right?
C (gcc), 97 82 81 80 bytes
Golfed 15 bytes after learning that abs is a builtin in C, an additional byte thanks to Rogem for pointing out that the declarations of my variables can be moved to the function, and another byte thanks to ceilingcat for suggesting x=31;--x+31 instead of x=-31;++x&lt;31.

f(x,y){for(y=21;--y;puts(&quot;&quot;))for(x=31;--x+31;)printf(abs(10-abs(x))-y?&quot;|&quot;:&quot;~&quot;);}

Try it online!
This outputs with a trailing newline. The function f does the outputting.
Explanation
The output can be stated as a graph.
~|||||||||||||||||||||||||||||+|||||||||||||||||||||||||||||~
|~||||||||||||||||||||||||||||+||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||+|||||||||||||||||||||||||||~||
|||~||||||||||||||||||||||||||+||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||+|||||||||||||||||||||||||~||||
|||||~||||||||||||||||||||||||+||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||+|||||||||||||||||||||||~||||||
|||||||~||||||||||||||||||||||+||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||+|||||||||||||||||||||~||||||||
|||||||||~||||||||||||||||||||+||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||+|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~+~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|+|~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~||+||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||+|||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~||||+||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||+|||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~||||||+||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||+|||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(The +s are only shown for explanation purposes and represent the axes.)
The equation of this graph is \$y=\text{abs}(10-\text{abs}(x))\$ as can be seen here in this link to a Desmos graph.
abs(10 - abs(x))
abs(           )            Reflect whatever is beneath the x-axis to above the x-axis
    10 - abs(x)             This forms the central triangle-like structure

In function f, we have two for-loops that iterate through every coordinate in this graph. y goes from 20 to 1 and x goes from -30 to 30.
For every x, we check if abs(10-abs(x)) equals y by doing abs(10-abs(x))-y in a ternary. If they are equal, this yields 0, a falsey value in C, otherwise it will evaluate to some positive value. Then in the ternary abs(10-abs(x))-y?&quot;|&quot;:&quot;~&quot;, we printf accordingly.
And after each line, we output a newline using puts(&quot;&quot;), and that is how the function outputs with a trailing newline.