geometry_8h-source.html

来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 298 行 · 第 1/3 页

HTML
298
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Geometry.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body bgcolor="#ffffff"><!-- Generated by Doxygen 1.2.12 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center><hr><h1>Geometry.h</h1><a href="Geometry_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>00002 <font class="comment">Copyright (c) 2000,2001, Jelle Kok, University of Amsterdam</font>00003 <font class="comment">All rights reserved.</font>00004 <font class="comment"></font>00005 <font class="comment">Redistribution and use in source and binary forms, with or without </font>00006 <font class="comment">modification, are permitted provided that the following conditions are met:</font>00007 <font class="comment"></font>00008 <font class="comment">1. Redistributions of source code must retain the above copyright notice, this </font>00009 <font class="comment">list of conditions and the following disclaimer. </font>00010 <font class="comment"></font>00011 <font class="comment">2. Redistributions in binary form must reproduce the above copyright notice, </font>00012 <font class="comment">this list of conditions and the following disclaimer in the documentation </font>00013 <font class="comment">and/or other materials provided with the distribution. </font>00014 <font class="comment"></font>00015 <font class="comment">3. Neither the name of the University of Amsterdam nor the names of its </font>00016 <font class="comment">contributors may be used to endorse or promote products derived from this </font>00017 <font class="comment">software without specific prior written permission. </font>00018 <font class="comment"></font>00019 <font class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" </font>00020 <font class="comment">AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE </font>00021 <font class="comment">IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE </font>00022 <font class="comment">DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE </font>00023 <font class="comment">FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL </font>00024 <font class="comment">DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR </font>00025 <font class="comment">SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER </font>00026 <font class="comment">CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, </font>00027 <font class="comment">OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE </font>00028 <font class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</font>00029 <font class="comment">*/</font>00045 <font class="preprocessor">#ifndef _GEOMETRY_</font>00046 <font class="preprocessor"></font><font class="preprocessor">#define _GEOMETRY_</font>00047 <font class="preprocessor"></font>00048 <font class="preprocessor">#include "math.h"</font>       <font class="comment">// needed for M_PI constant</font>00049 <font class="preprocessor">#include &lt;string&gt;</font>       <font class="comment">// needed for string</font>00050 <a name="l00051"></a><a class="code" href="Geometry_8h.html#a1">00051</a> <font class="keyword">typedef</font> <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a1">AngRad</a>;  <a name="l00052"></a><a class="code" href="Geometry_8h.html#a2">00052</a> <font class="keyword">typedef</font> <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a2">AngDeg</a>;  <a name="l00054"></a><a class="code" href="Geometry_8h.html#a0">00054</a> <font class="preprocessor">#define EPSILON 0.0001  </font>00056 <font class="preprocessor">// auxiliary numeric functions for determining the</font><a name="l00057"></a><a class="code" href="Geometry_8h.html#a0">00057</a> <font class="preprocessor"></font><font class="comment">// maximum and minimum of two given double values and the sign of a value</font>00058 <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a1">max</a>     ( <font class="keywordtype">double</font> d1, <font class="keywordtype">double</font> d2 );00059 <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a2">min</a>     ( <font class="keywordtype">double</font> d1, <font class="keywordtype">double</font> d2 );00060 <font class="keywordtype">int</font>    <a class="code" href="Geometry_8h.html#a0">sign</a>    ( <font class="keywordtype">double</font> d1            );00061 00062 <font class="comment">// auxiliary goniometric functions which enable you to</font>00063 <font class="comment">// specify angles in degrees rather than in radians</font>00064 <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="Geometry_8h.html#a3">Rad2Deg</a> ( <a class="code" href="Geometry_8h.html#a1">AngRad</a> x             );00065 <a class="code" href="Geometry_8h.html#a1">AngRad</a> <a class="code" href="Geometry_8h.html#a4">Deg2Rad</a> ( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> x             );<a name="l00066"></a><a class="code" href="Geometry_8h.html#a1">00066</a> <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a5">cosDeg</a>  ( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> x             );00067 <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a6">sinDeg</a>  ( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> x             );00068 <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a7">tanDeg</a>  ( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> x             );00069 <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="Geometry_8h.html#a8">atanDeg</a> ( <font class="keywordtype">double</font> x             );00070 <font class="keywordtype">double</font> <a class="code" href="Geometry_8h.html#a9">atan2Deg</a>( <font class="keywordtype">double</font> x,  <font class="keywordtype">double</font> y  );00071 <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="Geometry_8h.html#a10">acosDeg</a> ( <font class="keywordtype">double</font> x             );00072 <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="Geometry_8h.html#a11">asinDeg</a> ( <font class="keywordtype">double</font> x             );00073 00074 <font class="comment">// various goniometric functions</font><a name="l00075"></a><a class="code" href="Geometry_8h.html#a2">00075</a> <font class="keywordtype">bool</font>   <a class="code" href="Geometry_8h.html#a12">isAngInInterval</a>     ( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> ang,    <a class="code" href="Geometry_8h.html#a2">AngDeg</a> angMin,    <a class="code" href="Geometry_8h.html#a2">AngDeg</a> angMax );00076 <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="Geometry_8h.html#a13">getBisectorTwoAngles</a>( <a class="code" href="Geometry_8h.html#a2">AngDeg</a> angMin, <a class="code" href="Geometry_8h.html#a2">AngDeg</a> angMax );00077 <a name="l00083"></a><a class="code" href="Geometry_8h.html#a19">00083</a> <font class="keyword">enum</font> <a class="code" href="Geometry_8h.html#a19">CoordSystemT</a> {00084   CARTESIAN,<a name="l00085"></a><a class="code" href="Geometry_8h.html#a3">00085</a>   POLAR00086 };00087 00088 <font class="comment">/******************************************************************************/</font>00089 <font class="comment">/********************   CLASS VECPOSITION   ***********************************/</font>00090 <font class="comment">/******************************************************************************/</font>00091 <a name="l00098"></a><a class="code" href="classVecPosition.html">00098</a> <font class="keyword">class </font><a class="code" href="classVecPosition.html">VecPosition</a>00099 {00100   <font class="comment">// private member data</font>00101 <font class="keyword">private</font>:00102 <a name="l00103"></a><a class="code" href="Geometry_8h.html#a5">00103</a>   <font class="keywordtype">double</font> <a class="code" href="classVecPosition.html#o0">m_x</a>;   <a name="l00104"></a><a class="code" href="classVecPosition.html#o1">00104</a>   <font class="keywordtype">double</font> <a class="code" href="classVecPosition.html#o1">m_y</a>;   00106   <font class="comment">// public methods</font>00107 <font class="keyword">public</font>:00108   <font class="comment">// constructor for VecPosition class</font>00109   <a class="code" href="classVecPosition.html#a0">VecPosition</a>                               ( <font class="keywordtype">double</font>            vx = 0,00110                                               <font class="keywordtype">double</font>            vy = 0,00111                                               <a class="code" href="Geometry_8h.html#a19">CoordSystemT</a>      cs = CARTESIAN);<a name="l00112"></a><a class="code" href="Geometry_8h.html#a6">00112</a> 00113   <font class="comment">// overloaded arithmetic operators</font>00114   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a1">operator -             </a>(                                 );00115   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a2">operator +             </a>( <font class="keyword">const</font> <font class="keywordtype">double</font>      &amp;d            );00116   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a2">operator +             </a>( <font class="keyword">const</font> <a class="code" href="classVecPosition.html">VecPosition</a> &amp;p            );00117   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a1">operator -             </a>( <font class="keyword">const</font> <font class="keywordtype">double</font>      &amp;d            );00118   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a1">operator -             </a>( <font class="keyword">const</font> <a class="code" href="classVecPosition.html">VecPosition</a> &amp;p            );00119   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a6">operator *             </a>( <font class="keyword">const</font> <font class="keywordtype">double</font>      &amp;d            );00120   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a6">operator *             </a>( <font class="keyword">const</font> <a class="code" href="classVecPosition.html">VecPosition</a> &amp;p            );<a name="l00121"></a><a class="code" href="Geometry_8h.html#a7">00121</a>   <a class="code" href="classVecPosition.html">VecPosition</a>        <a class="code" href="classVecPosition.html#a8">operator /             </a>( <font class="keyword">const</font> <font class="keywordtype">double</font>      &amp;d            );

⌨️ 快捷键说明

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