def arc_by_center(x, y, arc_box, constant_length, thickness, gaussian_width):
arc_w=arc_box[<NUM_LIT:0>]<EOL>arc_h=abs(arc_box[<NUM_LIT:1>])<EOL>if arc_w==<NUM_LIT:0.0>: <EOL><INDENT>radius=<NUM_LIT:0.0><EOL>angles=(<NUM_LIT:0.0>,<NUM_LIT:0.0>)<EOL><DEDENT>elif arc_h==<NUM_LIT:0.0>:  <EOL><INDENT>return smooth_rectangle(x, y, arc_w, thickness, <NUM_LIT:0.0>, gaussian_width)<EOL><DEDENT>else:<EOL><INDENT>if constant_length:<EOL><INDENT>curvature=arc_h/arc_w<EOL>radius=arc_w/(<NUM_LIT:2>*pi*curvature)<EOL>angle=curvature*(<NUM_LIT:2>*pi)/<NUM_LIT><EOL><DEDENT>else:  <EOL><INDENT>radius=arc_h/<NUM_LIT>+arc_w**<NUM_LIT>/(<NUM_LIT:8>*arc_h)<EOL>angle=np.arcsin(arc_w/<NUM_LIT>/radius)<EOL><DEDENT>if arc_box[<NUM_LIT:1>]<<NUM_LIT:0>: <EOL><INDENT>y=y+radius<EOL>angles=(<NUM_LIT>/<NUM_LIT>*pi-angle, <NUM_LIT>/<NUM_LIT>*pi+angle)<EOL><DEDENT>else:  <EOL><INDENT>y=y-radius<EOL>angles=(pi/<NUM_LIT>-angle, pi/<NUM_LIT>+angle)<EOL><DEDENT><DEDENT>return arc_by_radian(x, y, radius*<NUM_LIT>, angles, thickness, gaussian_width)<EOL>
Arc with Gaussian fall-off after the solid ring-shaped region and specified
by point of tangency (x and y) and arc width and height.

This function calculates the start and end radian from the given width and
height, and then calls arc_by_radian function to draw the curve.