1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<code>/// 離心率 /// 傳回兩點間的角度</code>
<code> </code><code>private</code>
<code>double</code> <code>pointtoangle(point aorigin, point apoint,</code><code>double</code>
<code>aeccentricity)</code>
<code> {</code>
<code> </code><code>if</code>
<code>(apoint.x == aorigin.x)</code>
<code>if</code> <code>(apoint.y > aorigin.y)</code>
<code> </code><code>return</code>
<code>math.pi * 0.5;</code>
<code> </code><code>else</code>
<code>return</code> <code>math.pi * 1.5;</code>
<code>if</code> <code>(apoint.y == aorigin.y)</code>
<code>(apoint.x > aorigin.x)</code>
<code>0;</code>
<code>return</code> <code>math.pi;</code>
<code> </code><code>double</code>
<code>result = math.atan((aorigin.y - apoint.y) /</code>
<code> (aorigin.x - apoint.x) * aeccentricity);</code>
<code>((apoint.x <</span> aorigin.x) && (apoint.y > aorigin.y))</code>
<code>result + math.pi;</code>
<code>if</code> <code>((apoint.x <</span> aorigin.x) && (apoint.y <</span> aorigin.y))</code>
<code>if</code> <code>((apoint.x > aorigin.x) && (apoint.y <</span> aorigin.y))</code>
<code>result + 2 * math.pi;</code>
<code>return</code> <code>result;</code>
<code> }</code>
<code> </code>