diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex new file mode 100644 index 00000000000..56d0b86fdf2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex @@ -0,0 +1,113 @@ +% tkz-obj-eu-polygons.tex +% 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{3.01c} +\def\filedate{2020/01/23} +\typeout{2020/01/23 3.01c tkz-obj-eu-polygons.tex} +\makeatletter +%<--------------------------------------------------------------------------–> +% Polygon +%<--------------------------------------------------------------------------–> +%<--------------------------- square ------------------------------------–> +% +%<--------------------------------------------------------------------------–> +\def\tkzDefSquare(#1,#2){ +\begingroup + \tkzURotateAngle(#2,-90)(#1) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzURotateAngle(#1, 90)(#2) + \pgfnodealias{tkzSecondPointResult}{tkzPointResult} +\endgroup +} +%<--------------------- parallélogramme ---------------------------------–> +% +%<--------------------------------------------------------------------------–> +\def\tkzDefParallelogram(#1,#2,#3){ +\begingroup +\tkzDefPointWith[colinear= at #3](#2,#1) +\endgroup +} + +%<-------------------------- gold rectangle -------------------------------–> +% +%<--------------------------------------------------------------------------–> + +\def\tkzDefGoldRectangle(#1,#2){ +\begingroup + \tkzVecKOrth[-\tkzInvPhi](#2,#1) + \pgfnodealias{tkzFirstPointResult}{tkzPointResult} + \tkzVecKOrth[\tkzInvPhi](#1,#2) + \pgfnodealias{tkzSecondPointResult}{tkzPointResult} +\endgroup +} +\def\tkzDrawGoldRectangle{\pgfutil@ifnextchar[{\tkz@DrawGoldRectangle}{% + \tkz@DrawGoldRectangle[]}} + +%<---------------------------- Regular Polygon -------------------------–> +\def\tkz@numregpol{0} +\pgfkeys{/defregpoly/.cd, + name/.store in = \tkz@regpolname, + sides/.store in = \tkz@regpolsides, + center/.code = \def\tkz@numregpol{0}, + side/.code = \def\tkz@numregpol{1}, + center, + name = P, + sides = 5 +} +\def\tkzDefRegPolygon{\pgfutil@ifnextchar[{\tkz@DefRegPolygon}{% + \tkz@DefRegPolygon[]}} +\def\tkz@DefRegPolygon[#1](#2,#3){% +\begingroup +\pgfqkeys{/defregpoly}{#1} +\ifcase\tkz@numregpol% + \tkzRegPolygonCenter(#2,#3) + \or% + \tkzRegPolygonSide(#2,#3) + \fi +\endgroup +} +\def\tkzRegPolygonCenter(#1,#2){ +\begingroup + \foreach \v in {1,2,...,\tkz@regpolsides} + {% + \pgfmathsetmacro{\tkz@regangle}{360/\tkz@regpolsides*(\v-1)} + \tkzDefPointBy[rotation= center #1 angle \tkz@regangle](#2) + \pgfnodealias{\tkz@regpolname\v}{tkzPointResult} + } +\endgroup +} +\def\tkzRegPolygonSide(#1,#2){ +\begingroup +% get the center +\pgfmathsetmacro{\tkz@regangle}{360/\tkz@regpolsides*(\tkz@regpolsides-1)} +\pgfmathsetmacro{\tkz@regangleside}{(180-\tkz@regangle)/2} +\tkzDefMidPoint(#1,#2) +\pgfnodealias{tkz@tempPt}{tkzPointResult} +\tkzCalcLength[cm](tkz@tempPt,B) \tkzGetLength{tkz@len} +\pgfmathsetmacro{\tkz@inscriberadius}{% + \tkz@len*tan(90*(\tkz@regpolsides-2)/\tkz@regpolsides)} +\tkzDefPointWith[orthogonal normed,K=\tkz@inscriberadius](tkz@tempPt,#2) +\pgfnodealias{tkz@RegPolCenter}{tkzPointResult} +\tkzRegPolygonCenter(tkz@RegPolCenter,#1) +\pgfnodealias{tkzPointResult}{tkz@RegPolCenter} +\endgroup +} + +%<---------------------------- CLIP --------------------------------–> +% +%<--------------------------------------------------------------------------–> +\def\tkzClipPolygon(#1,#2){% +\path[clip] (#1) + \foreach \pt in {#1,#2}{--(\pt)}--cycle; +} + + \def\tkzClipOutPolygon(#1,#2){\clip[tkzreverseclip] (#1) + \foreach \pt in {#1,#2}{--(\pt)}--cycle; +} + + + +\makeatother +\endinput
\ No newline at end of file |