summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex')
-rw-r--r--Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex278
1 files changed, 278 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex
new file mode 100644
index 00000000000..6f7f5441bff
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-polygons.tex
@@ -0,0 +1,278 @@
+% Copyright 2011 by Alain Matthes
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+
+
+\def\fileversion{1.16 c}
+\def\filedate{2011/06/01}
+
+
+%<--------------------------------------------------------------------------–>
+% Polygon
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawPolygon{\pgfutil@ifnextchar[{\tkz@DrawPolygon}{%
+ \tkz@DrawPolygon[]}}
+\def\tkz@DrawPolygon[#1](#2,#3){%
+\begingroup
+\draw[line style,#1] (#2)
+ \foreach \tkz@pt in {#3}{--(\tkz@pt)}--cycle;%
+\endgroup
+}
+%<---------------------------- CLIP --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzClipPolygon(#1,#2){\path[clip] (#1)
+ \foreach \pt in {#2}{--(\pt)}--cycle;
+}
+%<---------------------------- FILL --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzFillPolygon{\pgfutil@ifnextchar[{\tkz@FillPolygon}{%
+ \tkz@FillPolygon[]}}
+\def\tkz@FillPolygon[#1](#2,#3){%
+ \begingroup
+ \fill[#1] (#2)
+\foreach \tkz@pt in {#3}{--(\tkz@pt)}--cycle;%
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Triangle Equilateral
+%<--------------------------------------------------------------------------–>
+\def\tkzDefEquilateral(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,60)(#2)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+
+\def\tkzDrawEquilateral{\pgfutil@ifnextchar[{\tkz@Equilateral}{%
+ \tkz@Equilateral[]}}
+
+\def\tkz@Equilateral[#1](#2,#3){%
+\begingroup
+ \tkzURotateAngle(#2,60)(#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% Triangle OneTwo
+%<--------------------------------------------------------------------------–>
+\def\tkzPhi{1.618034}
+\def\tkzInvPhi{0.618034}
+\def\tkzSqrtPhi{1.27202}
+
+\def\tkzDefTwoOne(#1,#2){
+\begingroup
+ \tkzVecKOrth[-.5](#2,#1){tkzPointResult}
+\endgroup
+}
+\def\tkzDefPythagore(#1,#2){
+\begingroup
+ \tkzVecKOrth[-0.75](#2,#1){tkzPointResult}
+\endgroup
+}
+\def\tkzDefSchoolTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,30)(#2)
+ \tkzVecKOrth[-1](#2,#1){tkz@a}
+ \tkzInterLL(#1,tkzPointResult)(#2,tkz@a)
+\endgroup
+}
+\def\tkzDefGoldTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,36)(#2)
+\endgroup
+}
+\def\tkzDefEuclideTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,72)(#2)
+ \tkzUHomo(#1,\tkzPhi)(tkzPointResult)
+\endgroup
+}
+\def\tkzDefGoldenTriangle(#1,#2){
+\begingroup
+ \tkzVecKOrth[-\tkzInvPhi](#2,#1){tkzPointResult}
+\endgroup
+}
+\def\tkzDefCheopsTriangle(#1,#2){
+\begingroup
+\tkzDefMidPoint(#1,#2)
+ \tkzVecKOrth[-\tkzSqrtPhi](tkzPointResult,#1){tkzPointResult}
+\endgroup
+}
+\def\tkzDefTwoAnglesTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,\tkz@alpha)(#2) \tkzGetPoint{tkz@pta}
+ \tkzURotateAngle(#2,-\tkz@beta)(#1) \tkzGetPoint{tkz@ptb}
+ \tkzInterLL(#1,tkz@pta)(#2,tkz@ptb)
+\endgroup
+}
+\def\tkz@numtr{0}
+\pgfkeys{/deftriangle/.cd,
+equilateral/.code = \global\def\tkz@numtr{0},
+half/.code = \global\def\tkz@numtr{1},
+pythagore/.code = \global\def\tkz@numtr{2},
+school/.code = \global\def\tkz@numtr{3},
+golden/.code = \global\def\tkz@numtr{4},
+euclide/.code = \global\def\tkz@numtr{5},
+gold/.code = \global\def\tkz@numtr{6},
+cheops/.code = \global\def\tkz@numtr{7},
+two angles/.code args={#1 and #2} { \global\def\tkz@numtr{8}%
+ \global\def\tkz@alpha{#1}%
+ \global\def\tkz@beta{#2}}
+}
+
+\def\tkzDefTriangle{\pgfutil@ifnextchar[{\tkz@DefTriangle}{%
+ \tkz@DefTriangle[]}}
+\def\tkz@DefTriangle[#1](#2,#3){%
+\begingroup
+\pgfkeys{/deftriangle/.cd,equilateral}
+\pgfqkeys{/deftriangle}{#1}
+\ifcase\tkz@numtr%
+ \tkzDefEquilateral(#2,#3)
+ \or% 1
+ \tkzDefTwoOne(#2,#3)
+ \or% 2
+ \tkzDefPythagore(#2,#3)
+ \or% 3
+ \tkzDefSchoolTriangle(#2,#3)
+ \or% 4
+ \tkzDefGoldenTriangle(#2,#3)
+ \or% 5
+ \tkzDefEuclideTriangle(#2,#3)
+ \or% 6
+ \tkzDefGoldTriangle(#2,#3)
+ \or% 7
+ \tkzDefCheopsTriangle(#2,#3)
+ \or% 8
+ \tkzDefTwoAnglesTriangle(#2,#3) \fi
+\endgroup
+}
+
+\def\tkz@numdtr{0}
+\pgfkeys{/drawtriangle/.cd,
+equilateral/.code = {\global\def\tkz@numdtr{0}},
+half/.code = {\global\def\tkz@numdtr{1}},
+pythagore/.code = {\global\def\tkz@numdtr{2}},
+school/.code = {\global\def\tkz@numdtr{3}},
+golden/.code = {\global\def\tkz@numdtr{4}},
+euclide/.code = {\global\def\tkz@numdtr{5}},
+gold/.code = {\global\def\tkz@numdtr{6}},
+cheops/.code = {\global\def\tkz@numdtr{7}},
+two angles/.code args={#1 and #2} { \global\def\tkz@numdtr{8}%
+ \global\def\tkz@alpha{#1}%
+ \global\def\tkz@beta{#2}},
+/drawtriangle/.unknown/.code ={\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1,
+ /tikz/\searchname/.retry=#1}}
+}
+
+\def\tkzDrawTriangle{\pgfutil@ifnextchar[{\tkz@DrawTriangle}{%
+ \tkz@DrawTriangle[]}}
+\def\tkz@DrawTriangle[#1](#2,#3){%
+\begingroup
+\pgfkeys{/drawtriangle/.cd,equilateral}
+\pgfqkeys{/drawtriangle}{#1}
+\ifcase\tkz@numdtr%
+\tkzDefEquilateral(#2,#3)
+\or% 1
+\tkzDefTwoOne(#2,#3)
+\or% 2
+\tkzDefPythagore(#2,#3)
+\or% 3
+\tkzDefSchoolTriangle(#2,#3)
+\or% 4
+\tkzDefGoldenTriangle(#2,#3)
+\or% 5
+\tkzDefEuclideTriangle(#2,#3)
+\or% 6
+\tkzDefGoldTriangle(#2,#3)
+\or% 7
+\tkzDefCheopsTriangle(#2,#3)
+\or% 8
+\tkzDefTwoAnglesTriangle(#2,#3)
+\fi
+ \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle;%
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Droites particulières d'un triangle
+%<--------------------------------------------------------------------------–>
+% median
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawMedian{\pgfutil@ifnextchar[{\tkz@Median}{\tkz@Median[]}}
+\def\tkz@Median[#1](#2,#3)(#4){%
+\begingroup
+ \tkzDefMidPoint(#3,#2)
+ \tkzDrawLine[add= 0 and 0,#1](#4,tkzPointResult)
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% altitude
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawAltitude{\pgfutil@ifnextchar[{\tkz@Altitude}{\tkz@Altitude[]}}
+\def\tkz@Altitude[#1](#2,#3)(#4){%
+\begingroup
+ \tkzUProjection(#2,#3)(#4)
+ \tkzDrawLine[add= 0 and 0,#1](#4,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% bisector
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawBisector{\pgfutil@ifnextchar[{\tkz@Bisector}{\tkz@Bisector[]}}
+\def\tkz@Bisector[#1](#2,#3,#4){%
+\begingroup
+ \tkzDefBisectorLine(#2,#3,#4)
+ \tkzInterLL(#2,#4)(#3,tkzPointResult)
+ \tkzDrawLine[add= 0 and 0,#1](#3,tkzPointResult)
+\endgroup
+}
+
+
+%<--------------------------- square ---------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+\def\tkzDefSquare(#1,#2){
+\begingroup
+ \tkzURotateAngle(#2,-90)(#1)\tkzGetPoint{tkzFirstPointResult}
+ \tkzURotateAngle(#1, 90)(#2)\tkzGetPoint{tkzSecondPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSquare{\pgfutil@ifnextchar[{\tkz@DrawSquare}{%
+ \tkz@DrawSquare[]}}
+
+\def\tkz@DrawSquare[#1](#2,#3){%
+\begingroup
+ \tkzDefSquare(#2,#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
+\endgroup
+}
+%<--------------------------- gold rectangle -------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
+
+\def\tkzDefGoldRectangle(#1,#2){
+\begingroup
+ \tkzVecKOrth[-\tkzInvPhi](#2,#1){tkzFirstPointResult}
+ \tkzVecKOrth[\tkzInvPhi](#1,#2){tkzSecondPointResult}
+\endgroup
+}
+\def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{%
+ \tkz@DrawGoldRectangle[]}}
+
+\def\tkz@DrawGoldRectangle[#1](#2,#3){
+\begingroup
+ \tkzDefGoldRectangle(#2,#3)
+ \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
+\endgroup
+}
+
+\endinput \ No newline at end of file