File:Splined epitrochoid.svg

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Original file(SVG file, nominally 369 × 363 pixels, file size: 51 KB)

Summary

Made with Sage; code is as follows:

<span class="c1"># Five-petaled epitrochoid via splining the points:</span>
<span class="c1"># Draw an epitrochoid, fixed circle radius R, rotating circle</span>
<span class="c1"># of radius r, pen at distance d from center of rotating circle.</span>

<span class="n">R</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">r</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">d</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">rotations</span> <span class="o">=</span> <span class="p">((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span><span class="o">.</span><span class="n">denom</span><span class="p">()</span>
<span class="n">v</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">step</span> <span class="o">=</span> <span class="mf">0.2</span>
<span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">srange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">pi</span> <span class="o">*</span> <span class="n">rotations</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
    <span class="n">v</span><span class="o">.</span><span class="n">append</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span> <span class="o">*</span> <span class="n">cos</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">t</span><span class="p">),</span>
             <span class="p">(</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span> <span class="o">*</span> <span class="n">sin</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">t</span><span class="p">)))</span>
<span class="n">x_spline</span> <span class="o">=</span> <span class="n">spline</span><span class="p">([(</span><span class="n">RDF</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">))]</span> <span class="o">+</span> <span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])])</span>
<span class="n">y_spline</span> <span class="o">=</span> <span class="n">spline</span><span class="p">([(</span><span class="n">RDF</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">))]</span> <span class="o">+</span> <span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])])</span>
<span class="n">show</span><span class="p">(</span><span class="n">points</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">rgbcolor</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">pointsize</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="n">parametric_plot</span><span class="p">((</span><span class="n">x_spline</span><span class="p">,</span> <span class="n">y_spline</span><span class="p">),</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">thickness</span><span class="o">=</span><span class="mf">0.5</span><span class="p">),</span>
                                                                   <span class="n">figsize</span><span class="o">=</span><span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span> <span class="n">ticks</span><span class="o">=</span><span class="p">[</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">],</span> <span class="n">xmin</span><span class="o">=-</span><span class="mi">10</span><span class="p">)</span>

Licensing

Lua error in package.lua at line 80: module 'strict' not found.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current17:36, 14 January 2017Thumbnail for version as of 17:36, 14 January 2017369 × 363 (51 KB)127.0.0.1 (talk)<p>Made with Sage; code is as follows: </p> <div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span class="c1"># Five-petaled epitrochoid via splining the points:</span> <span class="c1"># Draw an epitrochoid, fixed circle radius R, rotating circle</span> <span class="c1"># of radius r, pen at distance d from center of rotating circle.</span> <span class="n">R</span> <span class="o">=</span> <span class="mi">5</span> <span class="n">r</span> <span class="o">=</span> <span class="mi">2</span> <span class="n">d</span> <span class="o">=</span> <span class="mi">3</span> <span class="n">rotations</span> <span class="o">=</span> <span class="p">((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span><span class="o">.</span><span class="n">denom</span><span class="p">()</span> <span class="n">v</span> <span class="o">=</span> <span class="p">[]</span> <span class="n">step</span> <span class="o">=</span> <span class="mf">0.2</span> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">srange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">pi</span> <span class="o">*</span> <span class="n">rotations</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span> <span class="n">v</span><span class="o">.</span><span class="n">append</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">cos</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span> <span class="o">*</span> <span class="n">cos</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">t</span><span class="p">),</span> <span class="p">(</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">sin</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span> <span class="o">*</span> <span class="n">sin</span><span class="p">(((</span><span class="n">R</span> <span class="o">+</span> <span class="n">r</span><span class="p">)</span> <span class="o">/</span> <span class="n">r</span><span class="p">)</span> <span class="o">*</span> <span class="n">t</span><span class="p">)))</span> <span class="n">x_spline</span> <span class="o">=</span> <span class="n">spline</span><span class="p">([(</span><span class="n">RDF</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">))]</span> <span class="o">+</span> <span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])])</span> <span class="n">y_spline</span> <span class="o">=</span> <span class="n">spline</span><span class="p">([(</span><span class="n">RDF</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">1</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">v</span><span class="p">))]</span> <span class="o">+</span> <span class="p">[(</span><span class="mi">1</span><span class="p">,</span> <span class="n">v</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">])])</span> <span class="n">show</span><span class="p">(</span><span class="n">points</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">rgbcolor</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">pointsize</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="n">parametric_plot</span><span class="p">((</span><span class="n">x_spline</span><span class="p">,</span> <span class="n">y_spline</span><span class="p">),</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">thickness</span><span class="o">=</span><span class="mf">0.5</span><span class="p">),</span> <span class="n">figsize</span><span class="o">=</span><span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span> <span class="n">ticks</span><span class="o">=</span><span class="p">[</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">],</span> <span class="n">xmin</span><span class="o">=-</span><span class="mi">10</span><span class="p">)</span> </pre></div>
  • You cannot overwrite this file.

The following page links to this file: