summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty43
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