# вставьте этот код в конец VectorFieldPlot 1.3 doc = FieldplotDocument ( 'VFPt_Dipole_field' , commons = True , width = 700 , height = 600 , unit = 100 ) R = 1.55 sca = 2.4 ; lw = 1.0 field = Field ({ 'dipoles' :[[ 0 , 0 , 0 , -1 ]]}) F = lambda t : sc.dot ( field.F ( [ R * cos ( t ), R * sin ( t )]) , [ cos ( t ) , sin ( t ) ] ) Fi = lambda t1 : ig . quad ( F , 0 , t1 )[ 0 ] * R Fsum = Fi ( pi ) line = FieldLine ( field , [ 0 , 5 ], directions = 'forward' , maxr = 10 ) doc . draw_line ( line , linewidth = lw , arrows_style = { 'dist' : 6 - 2 * R , 'scale' : sca , 'max_arrows' : 2 , 'min_arrows' : 2 , 'fixed_ends' :[ False , True , True , False ]}) n = 15 p = - 0,3 для i в диапазоне ( n ): a = ( i + 0,5 + p ) / ( n + 2 * p ) t = op . brentq ( lambda t : Fi ( t ) - a * Fsum , 0 , pi ) если abs ( i - n / 2 ) > 4 : line = FieldLine ( field , [ R * cos ( t ), R * sin ( t )], directions = ' both ' ) doc . draw_line ( line , linewidth = lw , arrows_style = { 'dist' : 2 * R , 'scale' : sca , 'max_arrows' : 2 , 'min_arrows' : 1 , 'fixed_ends' :[ True , False , False , True ]}) elif ( i != 7 ): line = FieldLine ( field , [ R * cos ( t ), R * sin ( t )], directions = 'both' , maxr = 3 ) doc . draw_line ( line , linewidth = lw , arrows_style = { 'dist' : 2 * R , 'scale' : sca , 'max_arrows' : 1 , 'min_arrows' : 1 , 'fixed_ends' :[ False , False , False , True ]}) line = FieldLine ( field , [ R * cos( t ), - R * sin ( t )], направления = 'both' , maxr = 3 ) doc . draw_line ( line , linewidth = lw , arrows_style = { 'dist' : 2 * R , 'scale' : sca , 'max_arrows' : 1 , 'min_arrows' : 1 , 'fixed_ends' : [ True , False , False , False ]}) n2 = 3 для j в [ - 1 , 1 ]: для i в диапазоне ( n2 ): a = ( i + 0,5 - p ) / ( n + 2 * p ) t = op . brentq ( lambda t1 : ig . quad ( lambda r : field . F ([ r , 0. ])[ 1 ], R , t1 )[ 0 ] - a * Fsum , 0.1 , R ) линия = FieldLine ( field , [ j * t , 0. ], directions = 'both' ) doc . draw_line ( line , linewidth = lw , arrows_style = { 'dist' : 2 * R , 'scale' : sca , 'max_arrows' : 1 , 'min_arrows' : 1 }) Re = 0.855 earth = doc . draw_object ('g' , { 'id' : 'земля' }) doc.draw_object ( ' circle' , { 'r' : Re , 'cx' : '0' , ' cy' : ' 0' , 'style' : 'fill:#ffffff; stroke:#000000; stroke-width:0.01' }, group = earth ) doc.draw_object ( 'path' , { 'd' : 'M - {0} ,0 A {0} , {1} 0 0 1 {0} , 0'.format ( Re , 0.2 * Re ), 'style' : 'fill : none; stroke:#000000 ; stroke-width:0.01' }, group = earth ) text_N = doc . draw_object ( 'text' , { 'text-anchor' : 'middle' , 'x' : '0' , 'y' : 37 , 'transform' : 'translate(0,0.7) scale(0.002,-0.002)' , 'style' : 'fill:#000000; stroke:none ; font-size:100px; font-family:Bitstream Vera Sans' }) text_N.text = ' N' text_S = doc . draw_object ( 'text' , { 'text-anchor' : 'middle' , 'x' : '0' , 'y' : 37 , 'transform' : 'translate(0,-0.7) scale(0.002,-0.002)' , 'style' : 'fill: # 000000; stroke:none ; font -size:100px; font -family:Bitstream Vera Sans' }) text_S.text = 'S' doc.write ()