diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index 619596801dc..4a5d2b8eb92 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2021-08-27}{} +\ProvidesExplPackage{l3draw}{2021-11-12}{} {L3 Experimental core drawing support} \scan_new:N \s__draw_mark \scan_new:N \s__draw_stop @@ -963,6 +963,47 @@ { #6 + #4 * #1 + #2 * #3 * #5 , #7 + #5 * #1 + -1 * #2 * #3 * #4 } } \cs_generate_variant:Nn \__draw_point_intersect_circles_auxvii:nnnnnnn { fff } +\cs_new:Npn \draw_point_intersect_line_circle:nnnnn #1#2#3#4#5 + { + \__draw_point_process:nnnn + { \__draw_point_intersect_line_circle_auxi:nnnnnnnn {#4} {#5} } + {#1} {#2} {#3} + } +\cs_new:Npn \__draw_point_intersect_line_circle_auxi:nnnnnnnn #1#2#3#4#5#6#7#8 + { + \__draw_point_intersect_line_circle_auxii:fnnnnnnn + { \fp_eval:n {#1} } {#3} {#4} {#5} {#6} {#7} {#8} {#2} + } +\cs_new:Npn \__draw_point_intersect_line_circle_auxii:nnnnnnnn #1#2#3#4#5#6#7#8 + { + \__draw_point_intersect_line_circle_auxiii:fffnnnnn + { \fp_eval:n { (#4-#2)*(#4-#2)+(#5-#3)*(#5-#3) } } + { \fp_eval:n { 2*((#4-#2)*(#2-#6)+(#5-#3)*(#3-#7)) } } + { \fp_eval:n { (#6*#6+#7*#7)+(#2*#2+#3*#3)-(2*(#6*#2+#7*#3))-(#1*#1) } } + {#2} {#3} {#4} {#5} {#8} + } +\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxii:nnnnnnnn { f } +\cs_new:Npn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn #1#2#3#4#5#6#7#8 + { + \__draw_point_intersect_line_circle_auxiv:ffnnnnnn + { \fp_eval:n { #2 * #2 - 4 * #1 * #3 } } + { \int_if_odd:nTF {#8} { 1 } { -1 } } + {#1} {#2} {#4} {#5} {#6} {#7} + } +\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiii:nnnnnnnn { fff } +\cs_new:Npn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn #1#2#3#4#5#6#7#8 + { + \__draw_point_intersect_line_circle_auxv:fnnnn + { \fp_eval:n { (-1 * #4 + #2 * sqrt(#1)) / (2 * #3) } } + {#5} {#6} {#7} {#8} + } +\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxiv:nnnnnnnn { ff } +\cs_new:Npn \__draw_point_intersect_line_circle_auxv:nnnnn #1#2#3#4#5 + { + \draw_point:n + { #2 + #1 * (#4 - #2), #3 + #1 * (#5 - #3) } + } +\cs_generate_variant:Nn \__draw_point_intersect_line_circle_auxv:nnnnn { f } \cs_new:Npn \draw_point_interpolate_line:nnn #1#2#3 { \__draw_point_process:nnn |