⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trig.html

📁 perl教程
💻 HTML
📖 第 1 页 / 共 3 页
字号:
        Died at ...</pre>
<p>or</p>
<pre>
        atanh(-1): Logarithm of zero.
        Died at...</pre>
<p>For the <code>csc</code>, <code>cot</code>, <code>asec</code>, <code>acsc</code>, <code>acot</code>, <code>csch</code>, <code>coth</code>,
<code>asech</code>, <code>acsch</code>, the argument cannot be <code>0</code> (zero).  For the
<code>atanh</code>, <code>acoth</code>, the argument cannot be <code>1</code> (one).  For the
<code>atanh</code>, <code>acoth</code>, the argument cannot be <code>-1</code> (minus one).  For the
<a href="#item_tan"><code>tan</code></a>, <code>sec</code>, <code>tanh</code>, <code>sech</code>, the argument cannot be <em>pi/2 + k *
pi</em>, where <em>k</em> is any integer.  atan2(0, 0) is undefined.</p>
<p>
</p>
<h2><a name="simple__real__arguments__complex_results">SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS</a></h2>
<p>Please note that some of the trigonometric functions can break out
from the <strong>real axis</strong> into the <strong>complex plane</strong>. For example
<code>asin(2)</code> has no definition for plain real numbers but it has
definition for complex numbers.</p>
<p>In Perl terms this means that supplying the usual Perl numbers (also
known as scalars, please see <a href="../../lib/Pod/perldata.html">the perldata manpage</a>) as input for the
trigonometric functions might produce as output results that no more
are simple real numbers: instead they are complex numbers.</p>
<p>The <code>Math::Trig</code> handles this by using the <code>Math::Complex</code> package
which knows how to handle complex numbers, please see <a href="../../lib/Math/Complex.html">the Math::Complex manpage</a>
for more information. In practice you need not to worry about getting
complex numbers as results because the <code>Math::Complex</code> takes care of
details like for example how to display complex numbers. For example:</p>
<pre>
        <span class="keyword">print</span> <span class="variable">asin</span><span class="operator">(</span><span class="number">2</span><span class="operator">),</span> <span class="string">"\n"</span><span class="operator">;</span>
</pre>
<p>should produce something like this (take or leave few last decimals):</p>
<pre>
        1.5707963267949-1.31695789692482i</pre>
<p>That is, a complex number with the real part of approximately <code>1.571</code>
and the imaginary part of approximately <code>-1.317</code>.</p>
<p>
</p>
<hr />
<h1><a name="plane_angle_conversions">PLANE ANGLE CONVERSIONS</a></h1>
<p>(Plane, 2-dimensional) angles may be converted with the following functions.</p>
<pre>
        <span class="variable">$radians</span>  <span class="operator">=</span> <span class="variable">deg2rad</span><span class="operator">(</span><span class="variable">$degrees</span><span class="operator">);</span>
        <span class="variable">$radians</span>  <span class="operator">=</span> <span class="variable">grad2rad</span><span class="operator">(</span><span class="variable">$gradians</span><span class="operator">);</span>
</pre>
<pre>
        <span class="variable">$degrees</span>  <span class="operator">=</span> <span class="variable">rad2deg</span><span class="operator">(</span><span class="variable">$radians</span><span class="operator">);</span>
        <span class="variable">$degrees</span>  <span class="operator">=</span> <span class="variable">grad2deg</span><span class="operator">(</span><span class="variable">$gradians</span><span class="operator">);</span>
</pre>
<pre>
        <span class="variable">$gradians</span> <span class="operator">=</span> <span class="variable">deg2grad</span><span class="operator">(</span><span class="variable">$degrees</span><span class="operator">);</span>
        <span class="variable">$gradians</span> <span class="operator">=</span> <span class="variable">rad2grad</span><span class="operator">(</span><span class="variable">$radians</span><span class="operator">);</span>
</pre>
<p>The full circle is 2 <em>pi</em> radians or <em>360</em> degrees or <em>400</em> gradians.
The result is by default wrapped to be inside the [0, {2pi,360,400}[ circle.
If you don't want this, supply a true second argument:</p>
<pre>
        <span class="variable">$zillions_of_radians</span>  <span class="operator">=</span> <span class="variable">deg2rad</span><span class="operator">(</span><span class="variable">$zillions_of_degrees</span><span class="operator">,</span> <span class="number">1</span><span class="operator">);</span>
        <span class="variable">$negative_degrees</span>     <span class="operator">=</span> <span class="variable">rad2deg</span><span class="operator">(</span><span class="variable">$negative_radians</span><span class="operator">,</span> <span class="number">1</span><span class="operator">);</span>
</pre>
<p>You can also do the wrapping explicitly by rad2rad(), deg2deg(), and
grad2grad().</p>
<p>
</p>
<hr />
<h1><a name="radial_coordinate_conversions">RADIAL COORDINATE CONVERSIONS</a></h1>
<p><strong>Radial coordinate systems</strong> are the <strong>spherical</strong> and the <strong>cylindrical</strong>
systems, explained shortly in more detail.</p>
<p>You can import radial coordinate conversion functions by using the
<code>:radial</code> tag:</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Math::Trig</span> <span class="string">':radial'</span><span class="operator">;</span>
</pre>
<pre>
    <span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span>     <span class="operator">=</span> <span class="variable">cartesian_to_cylindrical</span><span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
    <span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">)</span>   <span class="operator">=</span> <span class="variable">cartesian_to_spherical</span><span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
    <span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span>           <span class="operator">=</span> <span class="variable">cylindrical_to_cartesian</span><span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
    <span class="operator">(</span><span class="variable">$rho_s</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">cylindrical_to_spherical</span><span class="operator">(</span><span class="variable">$rho_c</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
    <span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span>           <span class="operator">=</span> <span class="variable">spherical_to_cartesian</span><span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">);</span>
    <span class="operator">(</span><span class="variable">$rho_c</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span>   <span class="operator">=</span> <span class="variable">spherical_to_cylindrical</span><span class="operator">(</span><span class="variable">$rho_s</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">);</span>
</pre>
<p><strong>All angles are in radians</strong>.</p>
<p>
</p>
<h2><a name="coordinate_systems">COORDINATE SYSTEMS</a></h2>
<p><strong>Cartesian</strong> coordinates are the usual rectangular <em>(x, y, z)</em>-coordinates.</p>
<p>Spherical coordinates, <em>(rho, theta, pi)</em>, are three-dimensional
coordinates which define a point in three-dimensional space.  They are
based on a sphere surface.  The radius of the sphere is <strong>rho</strong>, also
known as the <em>radial</em> coordinate.  The angle in the <em>xy</em>-plane
(around the <em>z</em>-axis) is <strong>theta</strong>, also known as the <em>azimuthal</em>
coordinate.  The angle from the <em>z</em>-axis is <strong>phi</strong>, also known as the
<em>polar</em> coordinate.  The North Pole is therefore <em>0, 0, rho</em>, and
the Gulf of Guinea (think of the missing big chunk of Africa) <em>0,
pi/2, rho</em>.  In geographical terms <em>phi</em> is latitude (northward
positive, southward negative) and <em>theta</em> is longitude (eastward
positive, westward negative).</p>
<p><strong>BEWARE</strong>: some texts define <em>theta</em> and <em>phi</em> the other way round,
some texts define the <em>phi</em> to start from the horizontal plane, some
texts use <em>r</em> in place of <em>rho</em>.</p>
<p>Cylindrical coordinates, <em>(rho, theta, z)</em>, are three-dimensional
coordinates which define a point in three-dimensional space.  They are
based on a cylinder surface.  The radius of the cylinder is <strong>rho</strong>,
also known as the <em>radial</em> coordinate.  The angle in the <em>xy</em>-plane
(around the <em>z</em>-axis) is <strong>theta</strong>, also known as the <em>azimuthal</em>
coordinate.  The third coordinate is the <em>z</em>, pointing up from the
<strong>theta</strong>-plane.</p>
<p>
</p>
<h2><a name="3d_angle_conversions">3-D ANGLE CONVERSIONS</a></h2>
<p>Conversions to and from spherical and cylindrical coordinates are
available.  Please notice that the conversions are not necessarily
reversible because of the equalities like <em>pi</em> angles being equal to
<em>-pi</em> angles.</p>
<dl>
<dt><strong><a name="item_cartesian_to_cylindrical">cartesian_to_cylindrical</a></strong>

<dd>
<pre>
        <span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">cartesian_to_cylindrical</span><span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
</pre>
</dd>
<dt><strong><a name="item_cartesian_to_spherical">cartesian_to_spherical</a></strong>

<dd>
<pre>
        <span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">cartesian_to_spherical</span><span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
</pre>
</dd>
<dt><strong><a name="item_cylindrical_to_cartesian">cylindrical_to_cartesian</a></strong>

<dd>
<pre>
        <span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">cylindrical_to_cartesian</span><span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
</pre>
</dd>
<dt><strong><a name="item_cylindrical_to_spherical">cylindrical_to_spherical</a></strong>

<dd>
<pre>
        <span class="operator">(</span><span class="variable">$rho_s</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">cylindrical_to_spherical</span><span class="operator">(</span><span class="variable">$rho_c</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">);</span>
</pre>
</dd>
<dd>
<p>Notice that when <code>$z</code> is not 0 <code>$rho_s</code> is not equal to <code>$rho_c</code>.</p>
</dd>
<dt><strong><a name="item_spherical_to_cartesian">spherical_to_cartesian</a></strong>

<dd>
<pre>
        <span class="operator">(</span><span class="variable">$x</span><span class="operator">,</span> <span class="variable">$y</span><span class="operator">,</span> <span class="variable">$z</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">spherical_to_cartesian</span><span class="operator">(</span><span class="variable">$rho</span><span class="operator">,</span> <span class="variable">$theta</span><span class="operator">,</span> <span class="variable">$phi</span><span class="operator">);</span>
</pre>
</dd>
<dt><strong><a name="item_spherical_to_cylindrical">spherical_to_cylindrical</a></strong>

<dd>
<pre>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -