Yin and yang: Difference between revisions
Content added Content deleted
(→{{header|D}}: + D) |
|||
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>import math |
|||
⚫ | |||
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 |
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] |
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>: |