Angle difference between two bearings: Difference between revisions

Line 1,926:
1174.838051 -154146.664901 -161.502952
60175.773068 42213.071924 37.298856
</pre>
 
 
={{header|PowerShell}}=
This implementation takes two user inputs with ''Get-AngleDiff'' or prints the
examples with ''Get-Examples''. There is also a full help file accessed by typing
''Get-Help Get-AngleDiff -full''
<lang PowerShell>
<#
.Synopsis
Gets the difference between two angles between the values of -180 and 180.
To see examples use "Get-Examples"
.DESCRIPTION
This code uses the modulo operator, this is represented with the "%".
The modulo operator returns the remainder after division, as displayed below
3 % 2 = 1
20 % 15 = 5
200 % 146 = 54
 
.EXAMPLE
PS C:\WINDOWS\system32> Get-AngleDiff
cmdlet Get-AngleDiff at command pipeline position 1
Supply values for the following parameters:
angle1: 45
angle2: -85
 
The difference between 45 and -85 is -130
 
PS C:\WINDOWS\system32>
 
.EXAMPLE
PS C:\WINDOWS\system32> Get-AngleDiff -angle1 50 -angle2 -65
 
The difference between 50 and -65 is -115
 
PS C:\WINDOWS\system32>
 
.EXAMPLE
PS C:\WINDOWS\system32> Get-AngleDiff -89 50
 
The difference between -89 and 50 is 139
 
PS C:\WINDOWS\system32>
 
 
#>
function Get-AngleDiff
{
[CmdletBinding()]
 
Param
(
# Angle one input, must be a number
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true)][double]$angle1,
 
# Angle two input, must be a number
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true)][double]$angle2
)
 
Begin
{
#This is the equation to calculate the difference
[double]$Difference = ($angle2 - $angle1) % 360.0
}
 
Process
{
#If/IfElse/Else block to return results within the requested range
if ($Difference -lt -180.0)
{$Difference += 360.0
}
 
elseif ($Difference -gt 360.0)
{$Difference -= 360.0
}
 
#Writes the values given by the user and the result
Write-Host "The difference between $angle1 and $angle2 is $Difference"
}
 
End
{
}
 
}
 
<#
.Synopsis
This is simply the outputs of the Get-AngleDiff Function in a function
.EXAMPLE
PS C:\WINDOWS\system32> Get-Examples
 
Inputs from the -180 to 180 range
The difference between 20 and 45 is 25
The difference between -45 and 45 is 90
The difference between -85 and 90 is 175
The difference between -95 and 90 is 185
The difference between -45 and 125 is 170
The difference between -45 and 145 is 190
The difference between -45 and 125 is 170
The difference between -45 and 145 is 190
The difference between 29.4803 and -88.6381 is -118.1184
The difference between -78.3251 and -159.036 is -80.7109
 
Inputs from a wider range
The difference between -70099.7423381094 and 29840.6743787672 is 220.416716876614
The difference between -165313.666629736 and 33693.9894517456 is 287.656081481313
The difference between 1174.83805105985 and -154146.664901248 is -161.502952307404
The difference between 60175.7730679555 and 42213.0719235437 is 37.2988555882694
 
PS C:\WINDOWS\system32>
#>
 
function Get-Examples
{
#blank write-host is used for a blank line to make the output look a lil cleaner
Write-Host
Write-Host "Inputs from the -180 to 180 range"
 
Get-AngleDiff 20.0 45.0
Get-AngleDiff -45.0 45.0
Get-AngleDiff -85.0 90.0
Get-AngleDiff -95.0 90.0
Get-AngleDiff -45.0 125.0
Get-AngleDiff -45.0 145.0
Get-AngleDiff -45.0 125.0
Get-AngleDiff -45.0 145.0
Get-AngleDiff 29.4803 -88.6381
Get-AngleDiff -78.3251 -159.036
Write-Host
Write-Host "Inputs from a wider range"
 
Get-AngleDiff -70099.74233810938 29840.67437876723
Get-AngleDiff -165313.6666297357 33693.9894517456
Get-AngleDiff 1174.8380510598456 -154146.66490124757
Get-AngleDiff 60175.77306795546 42213.07192354373
 
 
}</lang>
 
'''Results of user inputs'''<br>
using -45 and 98 with ''Get-AngleDiff'':
<lang PowerShell>PS C:\WINDOWS\system32> Get-AngleDiff -45 98
The difference between -45 and 98 is 143</lang>
 
'''Results of ''Get-Examples'''''
<pre>PS C:\WINDOWS\system32> Get-Examples
Inputs from the -180 to 180 range
The difference between 20 and 45 is 25
The difference between -45 and 45 is 90
The difference between -85 and 90 is 175
The difference between -95 and 90 is 185
The difference between -45 and 125 is 170
The difference between -45 and 145 is 190
The difference between -45 and 125 is 170
The difference between -45 and 145 is 190
The difference between 29.4803 and -88.6381 is -118.1184
The difference between -78.3251 and -159.036 is -80.7109
 
Inputs from a wider range
The difference between -70099.7423381094 and 29840.6743787672 is 220.416716876614
The difference between -165313.666629736 and 33693.9894517456 is 287.656081481313
The difference between 1174.83805105985 and -154146.664901248 is -161.502952307404
The difference between 60175.7730679555 and 42213.0719235437 is 37.2988555882694
</pre>
 
Anonymous user