Draft: Better method to project arcs to SVG - issue #1612
This commit is contained in:
parent
1ad6d8004e
commit
64a7b9e129
|
@ -1764,8 +1764,9 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
|
||||||
else:
|
else:
|
||||||
stroke = getrgb(color)
|
stroke = getrgb(color)
|
||||||
elif gui:
|
elif gui:
|
||||||
if hasattr(obj.ViewObject,"LineColor"):
|
if hasattr(obj,"ViewObject"):
|
||||||
stroke = getrgb(obj.ViewObject.LineColor)
|
if hasattr(obj.ViewObject,"LineColor"):
|
||||||
|
stroke = getrgb(obj.ViewObject.LineColor)
|
||||||
|
|
||||||
def getLineStyle():
|
def getLineStyle():
|
||||||
"returns a linestyle"
|
"returns a linestyle"
|
||||||
|
@ -1879,9 +1880,13 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
|
||||||
if plane: drawing_plane_normal = plane.axis
|
if plane: drawing_plane_normal = plane.axis
|
||||||
flag_large_arc = (((e.ParameterRange[1] - \
|
flag_large_arc = (((e.ParameterRange[1] - \
|
||||||
e.ParameterRange[0]) / math.pi) % 2) > 1
|
e.ParameterRange[0]) / math.pi) % 2) > 1
|
||||||
flag_sweep = (c.Axis * drawing_plane_normal >= 0) \
|
#flag_sweep = (c.Axis * drawing_plane_normal >= 0) \
|
||||||
== (e.LastParameter > e.FirstParameter)
|
# == (e.LastParameter > e.FirstParameter)
|
||||||
# == (e.Orientation == "Forward")
|
# == (e.Orientation == "Forward")
|
||||||
|
# other method: check the direction of the angle between tangents
|
||||||
|
t1 = e.tangentAt(e.FirstParameter)
|
||||||
|
t2 = e.tangentAt(e.FirstParameter + (e.LastParameter-e.FirstParameter)/10)
|
||||||
|
flag_sweep = (DraftVecUtils.angle(t1,t2,drawing_plane_normal) < 0)
|
||||||
for v in endpoints:
|
for v in endpoints:
|
||||||
edata += 'A %s %s %s %s %s %s %s ' % \
|
edata += 'A %s %s %s %s %s %s %s ' % \
|
||||||
(str(rx),str(ry),str(rot),\
|
(str(rx),str(ry),str(rot),\
|
||||||
|
|
Loading…
Reference in New Issue
Block a user