add parametric equations for eptrochoid
This commit is contained in:
48
docs/build/html/_modules/function.html
vendored
48
docs/build/html/_modules/function.html
vendored
@@ -37,7 +37,7 @@
|
|||||||
<span class="c1"># -*- coding: utf-8 -*-</span>
|
<span class="c1"># -*- coding: utf-8 -*-</span>
|
||||||
<span class="sd">"""Mathematical equations.</span>
|
<span class="sd">"""Mathematical equations.</span>
|
||||||
|
|
||||||
<span class="sd">:Date: 2019-11-01</span>
|
<span class="sd">:Date: 2019-11-02</span>
|
||||||
|
|
||||||
<span class="sd">.. module:: function</span>
|
<span class="sd">.. module:: function</span>
|
||||||
<span class="sd"> :platform: *nix, Windows</span>
|
<span class="sd"> :platform: *nix, Windows</span>
|
||||||
@@ -146,6 +146,7 @@
|
|||||||
|
|
||||||
<span class="c1">#</span>
|
<span class="c1">#</span>
|
||||||
<span class="c1"># Parametric equations</span>
|
<span class="c1"># Parametric equations</span>
|
||||||
|
<span class="c1"># roulette</span>
|
||||||
<span class="c1">#</span>
|
<span class="c1">#</span>
|
||||||
|
|
||||||
<div class="viewcode-block" id="hypotrochoid"><a class="viewcode-back" href="../function.html#function.hypotrochoid">[docs]</a><span class="k">def</span> <span class="nf">hypotrochoid</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
|
<div class="viewcode-block" id="hypotrochoid"><a class="viewcode-back" href="../function.html#function.hypotrochoid">[docs]</a><span class="k">def</span> <span class="nf">hypotrochoid</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
|
||||||
@@ -195,6 +196,51 @@
|
|||||||
<span class="n">y</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">theta</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">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="o">*</span><span class="n">math</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="o">*</span> <span class="n">theta</span><span class="p">)</span>
|
<span class="n">y</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">theta</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">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="o">*</span><span class="n">math</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="o">*</span> <span class="n">theta</span><span class="p">)</span>
|
||||||
<span class="n">theta_end</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">lcm</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">R</span><span class="p">)</span><span class="o">/</span><span class="n">R</span>
|
<span class="n">theta_end</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">*</span><span class="n">lcm</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="n">R</span><span class="p">)</span><span class="o">/</span><span class="n">R</span>
|
||||||
<span class="k">return</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">theta_end</span></div>
|
<span class="k">return</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">theta_end</span></div>
|
||||||
|
|
||||||
|
<div class="viewcode-block" id="epitrochoid"><a class="viewcode-back" href="../function.html#function.epitrochoid">[docs]</a><span class="k">def</span> <span class="nf">epitrochoid</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
|
||||||
|
<span class="sa">r</span><span class="sd">"""Epitrochoid</span>
|
||||||
|
|
||||||
|
<span class="sd"> A point is attached with a distance d from the center of a circle</span>
|
||||||
|
<span class="sd"> of radius r. The circle is rolling around the outside of a fixed</span>
|
||||||
|
<span class="sd"> circle of radius R.</span>
|
||||||
|
|
||||||
|
<span class="sd"> :param R: radius of the fixed interior circle</span>
|
||||||
|
<span class="sd"> :type R: float</span>
|
||||||
|
<span class="sd"> :param r: radius of the rolling circle outside of the fixed circle</span>
|
||||||
|
<span class="sd"> :typre r: float</span>
|
||||||
|
<span class="sd"> :param d: distance from the center of the exterior circle</span>
|
||||||
|
<span class="sd"> :type d: float</span>
|
||||||
|
|
||||||
|
<span class="sd"> :results: functions for x of theta and y of theta</span>
|
||||||
|
<span class="sd"> :rtype: tuple</span>
|
||||||
|
|
||||||
|
<span class="sd"> .. math::</span>
|
||||||
|
<span class="sd"> x(\theta) = (R + r)\cos\theta - d\cos\left(\frac{R+r}{r}\theta\right) \\</span>
|
||||||
|
<span class="sd"> y(\theta) = (R + r)\sin\theta - d\sin\left(\frac{R+r}{r}\theta\right) \\</span>
|
||||||
|
<span class="sd"> \theta = \left[0, 2\pi\right]</span>
|
||||||
|
|
||||||
|
<span class="sd"> ::</span>
|
||||||
|
|
||||||
|
<span class="sd"> * * *</span>
|
||||||
|
<span class="sd"> * R *</span>
|
||||||
|
<span class="sd"> * *</span>
|
||||||
|
<span class="sd"> * * * *</span>
|
||||||
|
<span class="sd"> * * * r *</span>
|
||||||
|
<span class="sd"> * ** .... *</span>
|
||||||
|
<span class="sd"> * ** d *</span>
|
||||||
|
<span class="sd"> * * * *</span>
|
||||||
|
<span class="sd"> * * * *</span>
|
||||||
|
<span class="sd"> * *</span>
|
||||||
|
<span class="sd"> * *</span>
|
||||||
|
<span class="sd"> * * *</span>
|
||||||
|
|
||||||
|
<span class="sd"> >>> x, y = epitrochoid(3, 1, 0.5)[:1]</span>
|
||||||
|
<span class="sd"> >>> x, y, theta_end = epitrochoid(3, 1, 0.5)</span>
|
||||||
|
<span class="sd"> """</span>
|
||||||
|
<span class="n">x</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">theta</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">math</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="o">*</span><span class="n">math</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="o">*</span> <span class="n">theta</span><span class="p">)</span>
|
||||||
|
<span class="n">y</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">theta</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">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">d</span><span class="o">*</span><span class="n">math</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="o">*</span> <span class="n">theta</span><span class="p">)</span>
|
||||||
|
<span class="n">theta_end</span> <span class="o">=</span> <span class="mi">2</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span>
|
||||||
|
<span class="k">return</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">theta_end</span></div>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
51
docs/build/html/function.html
vendored
51
docs/build/html/function.html
vendored
@@ -37,7 +37,7 @@
|
|||||||
<p>Mathematical equations.</p>
|
<p>Mathematical equations.</p>
|
||||||
<dl class="field-list simple">
|
<dl class="field-list simple">
|
||||||
<dt class="field-odd">Date</dt>
|
<dt class="field-odd">Date</dt>
|
||||||
<dd class="field-odd"><p>2019-11-01</p>
|
<dd class="field-odd"><p>2019-11-02</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<span class="target" id="module-function"></span><dl class="function">
|
<span class="target" id="module-function"></span><dl class="function">
|
||||||
@@ -72,6 +72,55 @@ time t</p>
|
|||||||
</div>
|
</div>
|
||||||
</dd></dl>
|
</dd></dl>
|
||||||
|
|
||||||
|
<dl class="function">
|
||||||
|
<dt id="function.epitrochoid">
|
||||||
|
<code class="sig-name descname">epitrochoid</code><span class="sig-paren">(</span><em class="sig-param">R</em>, <em class="sig-param">r</em>, <em class="sig-param">d</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/function.html#epitrochoid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#function.epitrochoid" title="Permalink to this definition">¶</a></dt>
|
||||||
|
<dd><p>Epitrochoid</p>
|
||||||
|
<p>A point is attached with a distance d from the center of a circle
|
||||||
|
of radius r. The circle is rolling around the outside of a fixed
|
||||||
|
circle of radius R.</p>
|
||||||
|
<dl class="field-list simple">
|
||||||
|
<dt class="field-odd">Parameters</dt>
|
||||||
|
<dd class="field-odd"><ul class="simple">
|
||||||
|
<li><p><strong>R</strong> (<em>float</em>) – radius of the fixed interior circle</p></li>
|
||||||
|
<li><p><strong>r</strong> – radius of the rolling circle outside of the fixed circle</p></li>
|
||||||
|
<li><p><strong>d</strong> (<em>float</em>) – distance from the center of the exterior circle</p></li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-even">Typre r</dt>
|
||||||
|
<dd class="field-even"><p>float</p>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-odd">Results</dt>
|
||||||
|
<dd class="field-odd"><p>functions for x of theta and y of theta</p>
|
||||||
|
</dd>
|
||||||
|
<dt class="field-even">Return type</dt>
|
||||||
|
<dd class="field-even"><p>tuple</p>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<div class="math notranslate nohighlight">
|
||||||
|
\[\begin{split}x(\theta) = (R + r)\cos\theta - d\cos\left(\frac{R+r}{r}\theta\right) \\
|
||||||
|
y(\theta) = (R + r)\sin\theta - d\sin\left(\frac{R+r}{r}\theta\right) \\
|
||||||
|
\theta = \left[0, 2\pi\right]\end{split}\]</div>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="n">R</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="n">r</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">**</span> <span class="o">....</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">**</span> <span class="n">d</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span>
|
||||||
|
<span class="o">*</span> <span class="o">*</span> <span class="o">*</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">epitrochoid</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)[:</span><span class="mi">1</span><span class="p">]</span>
|
||||||
|
<span class="gp">>>> </span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">theta_end</span> <span class="o">=</span> <span class="n">epitrochoid</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</dd></dl>
|
||||||
|
|
||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt id="function.hypotrochoid">
|
<dt id="function.hypotrochoid">
|
||||||
<code class="sig-name descname">hypotrochoid</code><span class="sig-paren">(</span><em class="sig-param">R</em>, <em class="sig-param">r</em>, <em class="sig-param">d</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/function.html#hypotrochoid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#function.hypotrochoid" title="Permalink to this definition">¶</a></dt>
|
<code class="sig-name descname">hypotrochoid</code><span class="sig-paren">(</span><em class="sig-param">R</em>, <em class="sig-param">r</em>, <em class="sig-param">d</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/function.html#hypotrochoid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#function.hypotrochoid" title="Permalink to this definition">¶</a></dt>
|
||||||
|
|||||||
2
docs/build/html/genindex.html
vendored
2
docs/build/html/genindex.html
vendored
@@ -125,6 +125,8 @@
|
|||||||
<li><a href="date.html#date.easter_monday">easter_monday() (in module date)</a>
|
<li><a href="date.html#date.easter_monday">easter_monday() (in module date)</a>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="date.html#date.easter_sunday">easter_sunday() (in module date)</a>
|
<li><a href="date.html#date.easter_sunday">easter_sunday() (in module date)</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="function.html#function.epitrochoid">epitrochoid() (in module function)</a>
|
||||||
</li>
|
</li>
|
||||||
</ul></td>
|
</ul></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
|
|||||||
BIN
docs/build/html/objects.inv
vendored
BIN
docs/build/html/objects.inv
vendored
Binary file not shown.
2
docs/build/html/searchindex.js
vendored
2
docs/build/html/searchindex.js
vendored
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""Mathematical equations.
|
"""Mathematical equations.
|
||||||
|
|
||||||
:Date: 2019-11-01
|
:Date: 2019-11-02
|
||||||
|
|
||||||
.. module:: function
|
.. module:: function
|
||||||
:platform: *nix, Windows
|
:platform: *nix, Windows
|
||||||
@@ -111,6 +111,7 @@ def cosine_wave(A=1, k=1, f=1, phi=0, D=0, degree=False):
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Parametric equations
|
# Parametric equations
|
||||||
|
# roulette
|
||||||
#
|
#
|
||||||
|
|
||||||
def hypotrochoid(R, r, d):
|
def hypotrochoid(R, r, d):
|
||||||
@@ -160,3 +161,48 @@ def hypotrochoid(R, r, d):
|
|||||||
y = lambda theta: (R-r)*math.sin(theta) - d*math.sin((R-r)/r * theta)
|
y = lambda theta: (R-r)*math.sin(theta) - d*math.sin((R-r)/r * theta)
|
||||||
theta_end = 2*math.pi*lcm(r, R)/R
|
theta_end = 2*math.pi*lcm(r, R)/R
|
||||||
return x, y, theta_end
|
return x, y, theta_end
|
||||||
|
|
||||||
|
def epitrochoid(R, r, d):
|
||||||
|
r"""Epitrochoid
|
||||||
|
|
||||||
|
A point is attached with a distance d from the center of a circle
|
||||||
|
of radius r. The circle is rolling around the outside of a fixed
|
||||||
|
circle of radius R.
|
||||||
|
|
||||||
|
:param R: radius of the fixed interior circle
|
||||||
|
:type R: float
|
||||||
|
:param r: radius of the rolling circle outside of the fixed circle
|
||||||
|
:typre r: float
|
||||||
|
:param d: distance from the center of the exterior circle
|
||||||
|
:type d: float
|
||||||
|
|
||||||
|
:results: functions for x of theta and y of theta
|
||||||
|
:rtype: tuple
|
||||||
|
|
||||||
|
.. math::
|
||||||
|
x(\theta) = (R + r)\cos\theta - d\cos\left(\frac{R+r}{r}\theta\right) \\
|
||||||
|
y(\theta) = (R + r)\sin\theta - d\sin\left(\frac{R+r}{r}\theta\right) \\
|
||||||
|
\theta = \left[0, 2\pi\right]
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
* * *
|
||||||
|
* R *
|
||||||
|
* *
|
||||||
|
* * * *
|
||||||
|
* * * r *
|
||||||
|
* ** .... *
|
||||||
|
* ** d *
|
||||||
|
* * * *
|
||||||
|
* * * *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* * *
|
||||||
|
|
||||||
|
>>> x, y = epitrochoid(3, 1, 0.5)[:1]
|
||||||
|
>>> x, y, theta_end = epitrochoid(3, 1, 0.5)
|
||||||
|
"""
|
||||||
|
x = lambda theta: (R+r)*math.cos(theta) - d*math.cos((R+r)/r * theta)
|
||||||
|
y = lambda theta: (R+r)*math.sin(theta) - d*math.sin((R+r)/r * theta)
|
||||||
|
theta_end = 2*math.pi
|
||||||
|
return x, y, theta_end
|
||||||
|
|||||||
Reference in New Issue
Block a user