diff options
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua')
-rw-r--r-- | macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua index 0d2699ac55..d3a80bd777 100644 --- a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua +++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua @@ -1,6 +1,6 @@ -- tkz_elements_triangles.lua --- date 2024/02/04 --- version 2.00c +-- date 2024/03/25 +-- version 2.20c -- 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 @@ -56,7 +56,6 @@ end ----------------------- -- points -- ----------------------- --- version 1.80 function triangle: trilinear (a,b,c) return barycenter_ ( {self.pa,a*self.a },{self.pb,b*self.b},{self.pc,c*self.c} ) end @@ -146,7 +145,10 @@ end ------------------- -- N,H,G,O -- check_equilateral_ (a,b,c) function triangle: euler_line () - return line : new (self.orthocenter,self.circumcenter) + if not check_equilateral_(self.pa,self.pb,self.pc) + then + return line : new (self.orthocenter,self.circumcenter) + end end function triangle: symmedian_line (n) @@ -359,7 +361,28 @@ end function triangle: euler () return triangle : new (euler_points_ (self.pa,self.pb,self.pc) ) end +------------------- +-- Result -> ellipse +------------------- +function triangle: steiner_inellipse () + return steiner_ (self.pa,self.pb,self.pc) +end + +function triangle: steiner_circumellipse () + local e + e = steiner_ (self.pa,self.pb,self.pc) + return ellipse: radii (e.center,2*e.Rx,2*e.Ry,e.slope ) +end +function triangle: euler_ellipse () + if self : check_acutangle () + then + local a,b + a,b = intersection_lc_ (self.orthocenter,self.circumcenter, + self.eulercenter,self.ab.mid) + return ellipse: foci (self.orthocenter,self.circumcenter,a) + end +end ------------------- -- Result -> miscellaneous ------------------- @@ -406,6 +429,16 @@ function triangle: check_equilateral () return check_equilateral_ (self.pa,self.pb,self.pc) end +function triangle: check_acutangle() + local asq = self.a * self.a + local bsq = self.b * self.b + local csq = self.c * self.c + if asq + bsq > csq and bsq + csq > asq and csq + asq > bsq then + return true + else + return false + end +end return triangle
\ No newline at end of file |