Yin and yang: Difference between revisions

Content added Content deleted
Line 100: Line 100:
=={{header|Python}}==
=={{header|Python}}==
For positive integer n > 0, the following generates an ASCII representation of the Yin yang symbol.
For positive integer n > 0, the following generates an ASCII representation of the Yin yang symbol.
{{works with|Python|3.x}}
<lang python>def yinyang(n=3):
<lang python>import math
def yinyang(n=3):
radii = [i * n for i in (1, 3, 6)]
radii = [i * n for i in (1, 3, 6)]
ranges = [list(range(-r, r+1)) for r in radii]
ranges = [list(range(-r, r+1)) for r in radii]
Line 106: Line 108:
for rnge in ranges]
for rnge in ranges]
circles = [[ (x,y) for x,y in sqrpoints
circles = [[ (x,y) for x,y in sqrpoints
if (x*x + y*y)**0.5 <= radius ]
if math.hypot(x,y) <= radius ]
for sqrpoints, radius in zip(squares, radii)]
for sqrpoints, radius in zip(squares, radii)]
m = {(x,y):' ' for x,y in squares[-1]}
m = {(x,y):' ' for x,y in squares[-1]}
Line 119: Line 121:
m[(x,y+3*n)] = '·'
m[(x,y+3*n)] = '·'
m[(x,y-3*n)] = '*'
m[(x,y-3*n)] = '*'
return '\n'.join(''.join(m[(x,y)] for x in ranges[-1].__reversed__()) for y in ranges[-1])</lang>
return '\n'.join(''.join(m[(x,y)] for x in reversed(ranges[-1])) for y in ranges[-1])</lang>


;Sample generated symbols for <code>n = 2</code> and <code>n = 3</code>:
;Sample generated symbols for <code>n = 2</code> and <code>n = 3</code>: