<?xml version="1.0" encoding="UTF-8"?>


<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


	
<helpdocument version="1.0">
<meta>
<topic id="textsbasicshared03080101xml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Atn Function [Runtime]</title>
<filename>/text/sbasic/shared/03080101.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2004-08-24T09:41:00">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
<section id="atn">
<bookmark xml-lang="en-US" branch="index" id="bm_id3150616"><bookmark_value>Atn function</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3150616" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/03080101.xhp" name="Atn Function [Runtime]">Atn Function [Runtime]</link></paragraph>
<paragraph role="paragraph" id="par_id3149346" xml-lang="en-US" l10n="U" oldref="2">Trigonometric function that returns the arctangent of a numeric expression. The return value is in the range -Pi/2 to +Pi/2.</paragraph>
</section>
<paragraph role="paragraph" id="par_id3143271" xml-lang="en-US" l10n="U" oldref="3">The arctangent is the inverse of the tangent function. The Atn Function returns the angle "Alpha", expressed in radians, using the tangent of this angle. The function can also return the angle "Alpha" by comparing the ratio of the length of the side that is opposite of the angle to the length of the side that is adjacent to the angle in a right-angled triangle.</paragraph>
<paragraph role="paragraph" id="par_id3145315" xml-lang="en-US" l10n="U" oldref="4">Atn(side opposite the angle/side adjacent to angle)= Alpha</paragraph>
<paragraph role="heading" id="hd_id3149669" xml-lang="en-US" level="2" l10n="U" oldref="5">Syntax:</paragraph>
<paragraph role="paragraph" id="par_id3148947" xml-lang="en-US" l10n="U" oldref="6">Atn (Number)</paragraph>
<paragraph role="heading" id="hd_id3148664" xml-lang="en-US" level="2" l10n="U" oldref="7">Return value:</paragraph>
<paragraph role="paragraph" id="par_id3150359" xml-lang="en-US" l10n="U" oldref="8">Double</paragraph>
<paragraph role="heading" id="hd_id3148798" xml-lang="en-US" level="2" l10n="U" oldref="9">Parameters:</paragraph>
<paragraph role="paragraph" id="par_id3156212" xml-lang="en-US" l10n="U" oldref="10">
<emph>Number:</emph> Any numerical expression that represents the ratio of two sides of a right triangle. The Atn function returns the corresponding angle in radians (arctangent).</paragraph>
<paragraph role="paragraph" id="par_id3153192" xml-lang="en-US" l10n="U" oldref="11">To convert radians to degrees, multiply radians by 180/pi.</paragraph>
<paragraph role="paragraph" id="par_id3147230" xml-lang="en-US" l10n="U" oldref="12">degree=(radian*180)/pi</paragraph>
<paragraph role="paragraph" id="par_id3125864" xml-lang="en-US" l10n="U" oldref="13">radian=(degree*pi)/180</paragraph>
<paragraph role="paragraph" id="par_id3159252" xml-lang="en-US" l10n="U" oldref="14">Pi is here the fixed circle constant with the rounded value 3.14159.</paragraph>
<embed href="text/sbasic/shared/00000003.xhp#errorcode"/>
<embed href="text/sbasic/shared/00000003.xhp#err5"/>
<paragraph role="heading" id="hd_id3153142" xml-lang="en-US" level="2" l10n="U" oldref="15">Example:</paragraph>
<paragraph role="paragraph" id="par_id3146985" xml-lang="en-US" l10n="U" oldref="16">REM The following example calculates for a right-angled triangle</paragraph>
<paragraph role="paragraph" id="par_id3145750" xml-lang="en-US" l10n="U" oldref="17">REM the angle Alpha from the tangent of the angle Alpha:</paragraph>
<paragraph role="paragraph" id="par_id3146975" xml-lang="en-US" l10n="U" oldref="18">Sub ExampleATN</paragraph>
<paragraph role="paragraph" id="par_id3151112" xml-lang="en-US" l10n="U" oldref="19">REM rounded Pi = 3.14159 is a predefined constant</paragraph>
<paragraph role="paragraph" id="par_id3159156" xml-lang="en-US" l10n="U" oldref="20">Dim d1 As Double</paragraph>
<paragraph role="paragraph" id="par_id3147435" xml-lang="en-US" l10n="U" oldref="21">Dim d2 As Double</paragraph>
<paragraph role="paragraph" id="par_id3149262" xml-lang="en-US" l10n="U" oldref="22">d1 = InputBox$ ("Enter the length of the side adjacent to the angle: ","Adjacent")</paragraph>
<paragraph role="paragraph" id="par_id3149482" xml-lang="en-US" l10n="U" oldref="23">d2 = InputBox$ ("Enter the length of the side opposite the angle: ","Opposite")</paragraph>
<paragraph role="paragraph" id="par_id3155415" xml-lang="en-US" l10n="U" oldref="24">Print "The Alpha angle is"; (atn (d2/d1) * 180 / Pi); " degrees"</paragraph>
<paragraph role="paragraph" id="par_id3149959" xml-lang="en-US" l10n="U" oldref="25">End Sub</paragraph>
</body>
</helpdocument>
