summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_triangle.lua
diff options
context:
space:
mode:
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.lua41
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