# paste this code at the end of VectorFieldPlot 1.2
doc = FieldplotDocument('VFPt_dipole_magnetic3',
commons=True, width=600, height=600)
field = Field({'ringcurrents':[[0,0,0,0.5,1]]})
n = 12
for i in range(n):
a = 4.2 * ((i + 0.5) / n - 0.5)
line = FieldLine(field, [0, 0.5 * (exp(a)-1) / (exp(a)+1)],
directions='both')
doc.draw_line(line, linewidth=2.4,
arrows_style={'dist':1.7, 'scale':1.1, 'max_arrows':4})
# draw ring
symb = doc.draw_object('g', {'id':'ring',
'transform':'scale({0},{0})'.format(1.0/doc.unit)})
defs = doc.draw_object('defs', {}, group=symb)
spot = doc.draw_object('radialGradient', {'id':'light_spot',
'cx':'0.65', 'cy':'0.7', 'r':'0.75'}, group=defs)
for col, of in [['#fff', '0'], ['#ddd', '0.15'],
['#aaa', '0.5'], ['#444', '1']]:
doc.draw_object('stop', {'stop-color':col, 'offset':of}, group=spot)
doc.draw_object('path',
{'d':'M -20.5,50 V -50 A 20.5,20.5 0 0,1 20.5,-50 V 50 A 20.5,20.5 0 0,1 -20.5,50 Z',
'style':'fill:url(#light_spot); stroke:#000000; stroke-width:3'},
group=symb)
doc.draw_object('circle', {'cx':'0', 'cy':'0', 'r':'5',
'transform':'translate(0,50)',
'style':'fill:#000000; stroke:none; opacity:0.5'}, group=symb)
doc.draw_object('path', {'d':'M {1},-{0} L {0},-{1} L {2},{3} L {0},{1} \
L {1},{0} {3},{2} L -{1},{0} L -{0},{1} L -{2},{3} L -{0},-{1} L -{1},-{0} \
L {3},-{2} L {1},-{0} Z'.format(11, 8, 3, 0),
'transform':'translate(0,-50)',
'style':'fill:#000000; stroke:none; opacity:0.5'}, group=symb)
doc.write()