diff options
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua')
-rw-r--r-- | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua index ae257221f4..e22e3eefd0 100644 --- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua +++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_circle.lua @@ -1,6 +1,6 @@ -- tkz_elements-circles.lua --- date 2024/01/16 --- version 1.82c +-- date 2024/02/04 +-- version 2.00c -- Copyright 2024 Alain Matthes -- This work may be distributed and/or modified under the -- conditions of the LaTeX Project Public License, either version 1.3 @@ -52,10 +52,9 @@ end -- boolean -- ----------------------- function circle: in_out (pt) - local d,epsilon - epsilon = 10^(-12) + local d d = point.abs (pt - self.center) - if math.abs(d-self.radius) < epsilon + if math.abs(d-self.radius) < tkz_epsilon then return true else @@ -129,20 +128,6 @@ function circle: external_similitude (C) return external_similitude_ (self.center,self.radius,C.center,C.radius) end -function circle : common_tangent(C) - local o,s1,s2,t1,t2 - o = external_similitude_ (self.center,self.radius,C.center,C.radius) - - if self.radius < C.radius then - t1,t2 = tangent_from_ (C.center,C.through,o) - s1,s2 = tangent_from_ (self.center,self.through,o) - return s1,t1,t2,s2 - else - s1,s2 = tangent_from_ (C.center,C.through,o) - t1,t2 = tangent_from_ (self.center,self.through,o) - return s1,t1,t2,s2 - end -end ----------------------- -- lines -- ----------------------- @@ -190,7 +175,6 @@ function circle : radical_circle (C1,C2) end end - -- version 1.60 new function circle : external_tangent(C) local i,t1,t2,k,T1,T2 i = barycenter_ ({C.center,self.radius},{self.center,-C.radius}) @@ -200,7 +184,7 @@ end T2 = homothety_(i,k,t2) return line : new (t1,T1),line : new (t2,T2) end - -- version 1.60 new + function circle : internal_tangent(C) local i,t1,t2,k,T1,T2 i = barycenter_ ({C.center,self.radius},{self.center,C.radius}) @@ -210,6 +194,21 @@ end T2 = homothety_(i,k,t2) return line : new (t1,T1),line : new (t2,T2) end + + function circle : common_tangent(C) + local o,s1,s2,t1,t2 + o = external_similitude_ (self.center,self.radius,C.center,C.radius) + + if self.radius < C.radius then + t1,t2 = tangent_from_ (C.center,C.through,o) + s1,s2 = tangent_from_ (self.center,self.through,o) + return s1,t1,t2,s2 + else + s1,s2 = tangent_from_ (C.center,C.through,o) + t1,t2 = tangent_from_ (self.center,self.through,o) + return s1,t1,t2,s2 + end + end ----------------------- -- circles -- ----------------------- |