Shane0000 Posted October 4, 2014 Share Posted October 4, 2014 Are there any plans for an Atan2 function? Link to comment Share on other sites More sharing options...
guinness Posted October 4, 2014 Share Posted October 4, 2014 There was an undocumented function for years in the UDFs, but as no requests were made for it be added, a decision was made to remove it. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
czardas Posted October 4, 2014 Share Posted October 4, 2014 (edited) I have never used it myself but it seems quite useful. I have seen it used in a few scripts. Edited October 4, 2014 by czardas operator64 ArrayWorkshop Link to comment Share on other sites More sharing options...
eukalyptus Posted October 4, 2014 Share Posted October 4, 2014 You can use this: Func _ATan2($fY, $fX) Local $aResult = DllCall("msvcrt.dll", "double:cdecl", "atan2", "double", $fY, "double", $fX) If @error Then Return SetError(@error, @extended, False) Return $aResult[0] EndFunc ;==>_Atan2 Shane0000 1 DirectSound UDF Direct2D UDF Link to comment Share on other sites More sharing options...
AndyG Posted October 4, 2014 Share Posted October 4, 2014 Func atan2($y, $x) Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y)))) EndFunc ;==>atan2 Shane0000 1 Link to comment Share on other sites More sharing options...
Shane0000 Posted October 4, 2014 Author Share Posted October 4, 2014 Thanks guys, The DLL call ended up taking 3x longer to return $A = TimerInit() $_ATan2_A = _Atan2_A(3,4) ConsoleWrite('_ATan2_A ' & $_ATan2_A & ' ms:' & TimerDiff($A) & @CRLF) $B = TimerInit() $_ATan2_B = _Atan2_B(3,4) ConsoleWrite('_ATan2_B ' & $_ATan2_B & ' ms:' & TimerDiff($B) & @CRLF) Func _ATan2_A($fY, $fX) Local $aResult = DllCall("msvcrt.dll", "double:cdecl", "atan2", "double", $fY, "double", $fX) If @error Then Return SetError(@error, @extended, False) Return $aResult[0] EndFunc ;==>_Atan2 Func _atan2_B($y, $x) Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y)))) EndFunc _ATan2_A 0.643501108793284 ms:0.0634787897217576 _ATan2_B 0.643501108793284 ms:0.0193857381785008 Both of the examples are much simpler than the previous user functions I had found. Link to comment Share on other sites More sharing options...
Shane0000 Posted October 4, 2014 Author Share Posted October 4, 2014 BTW , I will be using this for gps related calculations, distance, bearing etc I was going to use it in to get angle based on a point on a circle at one time too for a pathing project I was working on just a couple of examples of a use for ATan2 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now