Yin and yang: Difference between revisions
Content added Content deleted
(→{{header|JavaScript}}: add SVG (path evenodd)) |
m (→SVG (path evenodd): cosmetics) |
||
Line 3,227: | Line 3,227: | ||
function yinYang(r, x, y, th = 1) { |
function yinYang(r, x, y, th = 1) { |
||
const cR = (dY, rad) => `M${x},${y + dY + rad} a${rad},${rad},0,1,1,.1,0z`; |
const cR = (dY, rad) => `M${x},${y + dY + rad} a${rad},${rad},0,1,1,.1,0z `; |
||
const arc = (dY, rad, cw = 1) => `A${rad},${rad},0,0,${cw},${x},${y + dY}`; |
const arc = (dY, rad, cw = 1) => `A${rad},${rad},0,0,${cw},${x},${y + dY} `; |
||
const d = cR(0, r + th) + cR(r / 2, r / 6) + cR(-r / 2, r / 6) |
const d = cR(0, r + th) + cR(r / 2, r / 6) + cR(-r / 2, r / 6) |
||
+ `M${x},${y}` + arc(r, r / 2, 0) + arc(-r, r) + arc(0, r / 2); |
+ `M${x},${y} ` + arc(r, r / 2, 0) + arc(-r, r) + arc(0, r / 2); |
||
const path = document.createElementNS(NS, 'path'); |
const path = document.createElementNS(NS, 'path'); |
||
path.setAttribute('d', d); |
path.setAttribute('d', d); |