summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua')
-rw-r--r--macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
new file mode 100644
index 0000000000..96d6eee1fc
--- /dev/null
+++ b/macros/latex/contrib/tkz/tkz-elements/latex/tkz_elements_vector.lua
@@ -0,0 +1,39 @@
+-- tkz_elements_vectors.lua
+-- date 23/12/03
+-- version 1.40c
+-- Copyright 2023 Alain Matthes
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+-- This work has the LPPL maintenance status “maintained”.
+-- The Current Maintainer of this work is Alain Matthes.
+
+-- ----------------------------------------------------------------------------
+vector = {}
+function vector: new(z1, z2)
+ local type = 'vector'
+ local norm = point.abs(z2-z1)
+ local o = {st = z1,
+ ed = z2,
+ norm = norm,
+ type = type }
+ setmetatable(o, self)
+ self.__index = self
+ return o
+end
+
+function vector: normalize ()
+ local z = self.ed-self.st
+ local d = point.abs(z)
+ local nz = point(z.re/d,z.im/d)
+ return nz + self.st
+end
+
+ function vector: add (v)
+ return vector :new (self.st+v.st, self.ed,v.ed)
+ end
+return vector