File: hypocyclo.tex

package info (click to toggle)
texlive-doc 2012.20120611-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 250,664 kB
  • sloc: xml: 18,901; perl: 13,380; makefile: 931; lisp: 394; sh: 313; awk: 205; java: 159; sed: 4
file content (21 lines) | stat: -rw-r--r-- 958 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
\newcommand{\HypoCyclo}[4][100]{%
  \def\R{#2}\def\petitR{#3}\def\NbPt{#4}%  
  %%      R  petitR:
  %%     4  -- 3  -- 2 
  \def\Anglen{\n\space 360 \NbPt\space 1 add div mul}
  \psset{PointSymbol=none,PointName=none}
  \pstGeonode[PointSymbol={*,none},PointName={default,none}, PosAngle=0]{O}(\R,0){P}
  \pstCircleOA{O}{P}
  \pstHomO[HomCoef=\petitR\space\R\space div]{P}{O}[M]
  \multido{\n=1+1}{\NbPt}{%
    \pstRotation[RotAngle=\Anglen]{O}{M}[M\n]
    \rput(M\n){\pstGeonode(\petitR,0){Q}}
    \pstRotation[RotAngle=\Anglen]{M\n}{Q}[N]
    \pstRotation[RotAngle=\n\space -360 \NbPt\space 1 add div
    mul \R\space\petitR\space div mul, PointSymbol=*, PointName=none]%
    {M\n}{N}[N\n]
    \ifnum\n=#1
      \pstCircleOA{M\n}{N\n}\ncline{M\n}{N\n}%
      {\psset{linecolor=red, linewidth=2\pslinewidth}
      \pstArcOAB{M\n}{N\n}{N}\pstArcOAB{O}{P}{N}}
    \fi}}%fin multido-newcommand