1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Grimbizo

Beiträge von Grimbizo

  • Seltsame Fehler... Warum greift IF nicht?

    • Grimbizo
    • 20. Februar 2013 um 11:11
    Zitat von AspirinJunkie

    Lies dir mal folgende Prioritätenliste der AutoIt-Operatoren durch: http://translation.autoit.de/onlinehilfe/in…g_operators.htm.
    Dann nimm dir einfach mal eine deiner problematischen If-Then-Zeile vor und und versuche zu rekonstruieren wie AutoIt den Ausdruck Schritt für Schritt (in Reihenfolge der Priorität der Operatoren) auseinander nimmt und auswertet.

    Ja, mann!!! Danke! "<>" hat funktioniert. Ich hab zwar keine Ahnung warum das standard "Not =" nicht funktioniert hat aber egal (Erklärung wär trotzdem nicht schlecht :D)

    Danke nochmal.

  • Seltsame Fehler... Warum greift IF nicht?

    • Grimbizo
    • 20. Februar 2013 um 11:01

    PS: Es geht im wesentlichen um die Zeilen 46 - 52. :D

    Vereinfacht kann man den Code so darstellen

    [autoit]


    While True
    Local $AlterKnopf, $NeuerKnopf
    If _IsPressed(25) Then $NeuerKnopf -= 1
    If _IsPressed(27) Then $NeuerKnopf += 1
    If $AlterKnopf = $NeuerKnopf Then MsgBox(0,"","")
    Wend

    [/autoit]
  • Seltsame Fehler... Warum greift IF nicht?

    • Grimbizo
    • 20. Februar 2013 um 10:50

    Guten Tag!

    Ich Habe ein Problem: Ich schreibe gerade eine IDE für au3Irr2 und AutoIT IrrKlang. Jetzt bin ich gerade beim interpreter und ich will abfragen, ob der alte Knopf immer noch gedrückt wird. Ich Wähle den anderen Knopf und nichts passiert.

    Erst hab ich gedacht ich hätte nen grundliegenden Fehler gemach und hab das Ergebnis mit ner MsgBox gecheckt richtig - also greift das If statement nicht. Kann mir einer helfen?

    Hier der Code:

    Spoiler anzeigen
    [autoit]

    Func _AIDKAPI_Interpret2DMenu($strAIDKMENUFile, $iRed = 255, $iGreen = 255, $iBlue = 255, $bRenderScene = False, $strCallbackFunction = "")
    Local $strFileText = FileRead($strAIDKMENUFile)
    Local $aCommands = StringSplit($strFileText, @CRLF)
    Local $aParameters, $aButtonParameters
    Local $iWidth, $iHeight, $aTmpTextureInformation
    Local $aMousePosition
    Local $iSelectedButton = 1, $iOldSelectedButton = 1, $aButtons[1] = [0], $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY
    Local $vButtonClick = False, $vButtonSwitch = False
    For $i = 1 To $aCommands[0]
    $aParameters = StringSplit($aCommands[$i], "|")
    If $aParameters[1] = "ButtonSettings" Then
    If Not $aParameters[2] = False Then $vButtonClick = Eval($aParameters[2])
    If Not $aParameters[3] = False Then $vButtonSwitch = Eval($aParameters[3])
    EndIf
    If $aParameters[1] = "Button" Then
    _ArrayAdd($aButtons, $aCommands[$i])
    $aButtons[0] += 1
    EndIf
    Next
    While True
    _IrrGetScreenSize($iWidth, $iHeight)
    $aMousePosition = _IrrGetAbsoluteMousePosition()
    _IrrBeginScene($iRed, $iGreen, $iBlue)
    If $bRenderScene = True Then _IrrDrawScene()
    If Not $strCallbackFunction = "" Then Execute($strCallbackFunction)
    ;[...]
    For $i = 0 To $aButtons[0]-1
    $aButtonParameters = StringSplit($aButtons[$i+1], "|")
    $fButtonTopX = _AIDKAPI_PercentToPixel($aButtonParameters[2], $iWidth)
    $fButtonTopY = _AIDKAPI_PercentToPixel($aButtonParameters[3], $iHeight)
    $fButtonBottomX = _AIDKAPI_PercentToPixel($aButtonParameters[4], $iWidth)
    $fButtonBottomY = _AIDKAPI_PercentToPixel($aButtonParameters[5], $iHeight)
    If $aMousePosition[0] >= $fButtonTopX And $aMousePosition[1] >= $fButtonTopY And $aMousePosition[0] <= $fButtonBottomX And $aMousePosition[1] <= $fButtonBottomY Then $iSelectedButton = $i+1
    If _IsPressed(25) Or _IsPressed(26) Then
    While _IsPressed(25) Or _IsPressed(26)
    WEnd
    $iSelectedButton -= 1
    If $iSelectedButton < 1 Then $iSelectedButton = $aButtons[0]
    EndIf
    If _IsPressed(27) Or _IsPressed(28) Then
    While _IsPressed(27) Or _IsPressed(28)
    WEnd
    $iSelectedButton += 1
    If $iSelectedButton > $aButtons[0] Then $iSelectedButton = 1
    EndIf
    MsgBox(0,0,$iOldSelectedButton&@LF&$iSelectedButton)
    ;Check if it the old selected button is not the same as the actual and play the select sound
    If Not $iOldSelectedButton = $iSelectedButton Then
    MsgBox(0,"","YOLO")
    If Not $vButtonClick = False Then _AIK_EnginePlay2DSource($vButtonClick)
    If Not $vButtonSwitch = False Then _AIK_EnginePlay2DSource($vButtonSwitch)
    EndIf
    ;Check if it's selected and draw
    If $iSelectedButton = $i+1 Then
    $aTmpTextureInformation = _IrrGetTextureInformation(Eval($aButtonParameters[6]))
    _IrrDraw2DImageElementStretch(Eval($aButtonParameters[6]), $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY, _AIDKAPI_PercentToPixel($aButtonParameters[7], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[8], $aTmpTextureInformation[1]), _AIDKAPI_PercentToPixel($aButtonParameters[9], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[10], $aTmpTextureInformation[1]), $aButtonParameters[11])
    Else
    $aTmpTextureInformation = _IrrGetTextureInformation(Eval($aButtonParameters[12]))
    _IrrDraw2DImageElementStretch(Eval($aButtonParameters[12]), $fButtonTopX, $fButtonTopY, $fButtonBottomX, $fButtonBottomY, _AIDKAPI_PercentToPixel($aButtonParameters[13], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[14], $aTmpTextureInformation[1]), _AIDKAPI_PercentToPixel($aButtonParameters[15], $aTmpTextureInformation[0]), _AIDKAPI_PercentToPixel($aButtonParameters[16], $aTmpTextureInformation[1]), $aButtonParameters[17])
    EndIf
    Next
    ;[...]
    $iOldSelectedButton = $iSelectedButton
    _IrrEndScene()
    WEnd
    EndFunc

    [/autoit]

    Sorry, dass der Code so umständlich ist aber ich bin noch mittendrin. Danke schon mal im Vorraus

    Euer Grimbizo

  • CityMark 0.1 - OpenGL 3D Benchmark

    • Grimbizo
    • 20. Februar 2013 um 10:03

    Hat super funktioniert!!!

    Außerdem hab ich jetzt endlich eine OpenGL lib.

    Kannst du mir sagen, wo du die her hast?

    Dateien

    CityMark_Result_2013_02_20.bmp 6,44 kB – 361 Downloads
  • Random Frage!

    • Grimbizo
    • 19. Februar 2013 um 14:02

    Also ich würde es so machen:

    [autoit]


    Switch Random(1,100,1)
    Case 1 To 80
    MouseMove(475, 513)
    Case 81 To 90
    MouseMove(475, 529)
    Case 0
    MouseMove(475, 545)
    Case 91 To 100
    MouseMove(475, 562)
    EndSwitch

    [/autoit]
  • IrrAddition v1.0

    • Grimbizo
    • 27. Dezember 2012 um 18:11

    Hi Leute, ich bins wieder!

    Ich habe eine kleine UDF geschrieben, die IrrLicht ein paar kleine Funktionen Hinzufügt. Dazu braucht ihr nur IrrLicht (http://code.google.com/p/au3irrlicht2/downloads/list).

    Die UDF besteht aus 2D, Shapes, System und Trigger handling. Außerdem sind auch Beispiele dabei. Schauts euch an und sagt mir, wie ihr die Idee findet, dann schreib ich weiter.

    Bis dann.

    Ps: Zip entpacken und in den Irrlicht-Ordner rein und schon funktionierts.

    Dateien

    IrrAddition v1.0.zip 12,07 kB – 453 Downloads
  • GuiCtrlCreateGraphic einfärben

    • Grimbizo
    • 24. Oktober 2012 um 21:24

    Danke!!! :thumbup:

    Es funktioniert, ist farblich zwar quatsch aber das fix ich noch :rolleyes: .

    Tschuldigung noch mal wegen dem falschen Code am anfang.

    Chiao!

  • GuiCtrlCreateGraphic einfärben

    • Grimbizo
    • 24. Oktober 2012 um 21:18

    Danke, ich probiers mal aus aber dann ist die Anordnung der Farben nicht mehr korrekt und eine Reihe rechts und unten fehlt.

  • GuiCtrlCreateGraphic einfärben

    • Grimbizo
    • 24. Oktober 2012 um 21:03

    Tut mir leid

    Mir ist gerade aufgefallen, das ich nicht das richtige Script reingestellt habe :(

    Das ist das richtige:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Color.au3>
    #include <Array.au3>
    $hGUI=GUICreate("Color Mutation",600,80,0,0)
    GUICtrlCreateLabel("UL (hex)",0,3,100,20)
    $UL=GUICtrlCreateInput("",100,0,200,20)
    GUICtrlCreateLabel("DL (hex)",0,23,100,20)
    $DL=GUICtrlCreateInput("",100,20,200,20)
    GUICtrlCreateLabel("UR (hex)",300,3,100,20)
    $UR=GUICtrlCreateInput("",400,0,200,20)
    GUICtrlCreateLabel("DR (hex)",300,23,100,20)
    $DR=GUICtrlCreateInput("",400,20,200,20)
    GUICtrlCreateLabel("Vertical Parts (int)",0,43,100,20)
    $yparts=GUICtrlCreateInput("",100,40,200,20)
    GUICtrlCreateLabel("Horizontal Parts (int)",300,43,100,20)
    $xparts=GUICtrlCreateInput("",400,40,200,20)
    $run=GUICtrlCreateButton("Start mutation",0,60,600,20)
    $Newgui=1234
    GUISetState()
    While True
    $msg=GUIGetMsg()
    If $msg=$run Then
    GUIDelete($Newgui)
    If True Then
    $xparts_read=GUICtrlRead($xparts)
    $yparts_read=GUICtrlRead($yparts)
    $UL_Color=GUICtrlRead($UL)
    $UL_RGBArray=_ColorGetRGB($UL_Color)
    $UR_Color=GUICtrlRead($UR)
    $UR_RGBArray=_ColorGetRGB($UR_Color)
    $DL_Color=GUICtrlRead($DL)
    $DL_RGBArray=_ColorGetRGB($DL_Color)
    $DR_Color=GUICtrlRead($DR)
    $DR_RGBArray=_ColorGetRGB($DR_Color)

    $UStepLen_r=($UL_RGBArray[0]-$UR_RGBArray[0])/$xparts_read
    $UStepLen_g=($UL_RGBArray[1]-$UR_RGBArray[1])/$xparts_read
    $UStepLen_b=($UL_RGBArray[2]-$UR_RGBArray[2])/$xparts_read
    MsgBox(0,"u",$UStepLen_r&@LF&$UStepLen_g&@LF&$UStepLen_b)

    $RStepLen_r=($UR_RGBArray[0]-$DR_RGBArray[0])/$yparts_read
    $RStepLen_g=($UR_RGBArray[1]-$DR_RGBArray[1])/$yparts_read
    $RStepLen_b=($UR_RGBArray[2]-$DR_RGBArray[2])/$yparts_read
    MsgBox(0,"r",$RStepLen_r&@LF&$RStepLen_g&@LF&$RStepLen_b)

    $DStepLen_r=($DL_RGBArray[0]-$DR_RGBArray[0])/$xparts_read
    $DStepLen_g=($DL_RGBArray[1]-$DR_RGBArray[1])/$xparts_read
    $DStepLen_b=($DL_RGBArray[2]-$DR_RGBArray[2])/$xparts_read
    MsgBox(0,"d",$DStepLen_r&@LF&$DStepLen_g&@LF&$DStepLen_b)

    $LStepLen_r=($UL_RGBArray[0]-$DL_RGBArray[0])/$yparts_read
    $LStepLen_g=($UL_RGBArray[1]-$DL_RGBArray[1])/$yparts_read
    $LStepLen_b=($UL_RGBArray[2]-$DL_RGBArray[2])/$yparts_read
    MsgBox(0,"l",$LStepLen_r&@LF&$LStepLen_g&@LF&$LStepLen_b)

    $StartColor_r=$UR_RGBArray[0]
    $StartColor_g=$UR_RGBArray[1]
    $StartColor_b=$UR_RGBArray[2]

    $Newgui=GUICreate("Mutated!!!",$xparts_read,$yparts_read,-1,-1)
    For $i_x=1 To $xparts_read
    For $i_y=1 To $yparts_read
    $TMPRGBCOLOR="0x"&Hex($StartColor_r+$RStepLen_r*$i_y+$DStepLen_r*$i_x,2)&Hex($StartColor_g+$RStepLen_g*$i_y+$DStepLen_g*$i_x,2)&Hex($StartColor_b+$RStepLen_b*$i_y+$DStepLen_b*$i_x,2)
    ToolTip($i_x&" - "&$i_y&@LF&$TMPRGBCOLOR)
    $TMPGRAPHIC=GUICtrlCreateGraphic($i_x-1,$i_y-1,1,1)
    GUICtrlSetBkColor($TMPGRAPHIC,$TMPRGBCOLOR)
    Next
    Next

    GUISetState(@SW_SHOW,$Newgui)
    EndIf
    EndIf
    If $msg=$GUI_EVENT_CLOSE Then Exit
    WEnd

    [/autoit]
  • GuiCtrlCreateGraphic einfärben

    • Grimbizo
    • 24. Oktober 2012 um 20:57

    Also ich habe XP sp3 32x aber bei mir erscheint nur ein leeres Fenster ohne, dass es eingefärbt ist.

    Das verwirrt mich dann schon. Aber wenns bei euch geht... aber trotzdem danke.

    Ich frag mich nur woran das liegt...

  • GuiCtrlCreateGraphic einfärben

    • Grimbizo
    • 23. Oktober 2012 um 19:12

    Hi leute!

    Ich hab mal ein problem: nämlich möchte ich ein Progrämmelchen erstellen, das farbübergänge von vier ecken Berechnet und das dann in einer GUI darstellt. Werte kommen raus (vermutlich noch falsch :rolleyes: aber das kommt noch) aber dargestellt werden sie nicht.

    Ich bitte um Hilfe.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Color.au3>
    #include <Array.au3>
    $hGUI=GUICreate("Color Mutation",300,80,0,0)
    GUICtrlCreateLabel("Start Color (hex)",0,3,100,20)
    $start=GUICtrlCreateInput("",100,0,200,20)
    GUICtrlCreateLabel("End Color (hex)",0,23,100,20)
    $end=GUICtrlCreateInput("",100,20,200,20)
    GUICtrlCreateLabel("Parts (int)",0,43,100,20)
    $parts=GUICtrlCreateInput("",100,40,200,20)
    $run=GUICtrlCreateButton("Start mutation",0,60,300,20)
    $Newgui=1234
    GUISetState()
    While True
    $msg=GUIGetMsg()
    If $msg=$run Then
    GUIDelete($Newgui)
    If True Then
    $startColor=GUICtrlRead($start)
    $endColor=GUICtrlRead($end)
    $partsNumber=GUICtrlRead($parts)
    $startRGB=_ColorGetRGB($startColor)
    $endRGB=_ColorGetRGB($endColor)
    $rStep=($startRGB[0]-$endRGB[0])/$partsNumber
    $gStep=($startRGB[1]-$endRGB[1])/$partsNumber
    $bStep=($startRGB[2]-$endRGB[2])/$partsNumber
    Dim $Colors[$partsNumber+1]
    $Colors[0]=$partsNumber
    Dim $TempColors[3]
    For $i=1 To $partsNumber
    $TempColors[0]=$startRGB[0]-($rStep*$i)
    $TempColors[1]=$startRGB[1]-($gStep*$i)
    $TempColors[2]=$startRGB[2]-($bStep*$i)
    $Colors[$i]=StringTrimRight(StringFormat("%#06x\t",_ColorSetRGB($TempColors)),1)
    Next
    $Newgui=GUICreate("",$partsNumber,100,-1,-1,$WS_POPUP)
    Dim $Graphic[$partsNumber+1]
    $Graphic[0]=$partsNumber
    For $i=1 To $partsNumber
    $Graphic=GUICtrlCreateGraphic($i-1,0,1,100)
    GUICtrlSetBkColor($Graphic,$Colors[$i])
    Next
    $Graphic=""
    GUISetState()
    EndIf
    EndIf
    If $msg=$GUI_EVENT_CLOSE Then Exit
    WEnd

    [/autoit]

    Schon mal danke im Vorraus.

  • Vollbild

    • Grimbizo
    • 8. Oktober 2012 um 16:24

    Stimmt... es gibt aber auch den Stile $WS_POPUP oder $WS_POPUPWINDOW. (Gerade für Dialogfenster angebracht)

    Damit hast du keine Titelleiste (bzw. bei letzteren nicht mal einen Eintrag in der Taskleiste). Dann funktioniert das.

    Gruß Grimbizo

  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 2. Oktober 2012 um 22:00

    @ AspirinJunkie - Sorry für das Missverständnis.

    Ich meinte, dass ich es schade finde, dass du mir nicht "code-technisch" helfen konntest. Das war nicht persönlich gemeint.

    PS: Hatte übers Wochenende Kein i-net... sry.

  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 1. Oktober 2012 um 09:15

    Sorry wegen

    Zitat von AspirinJunkie

    Hättest du die PDF als Anhang gemacht könnten auch andere draufschauen und dir helfen.

    aber ich musste erst meinen Mathe/Physiklehrerfragen, ob ich die Datei weitergeben darf.

    AspirinJunkie danke aber naja das hilft mi nur indirekt... :S

    Dateien

    Ballistik.pdf 127,66 kB – 592 Downloads
  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 28. September 2012 um 12:53

    Den Kram hab ich mit meinem Mathelehrer hergeleitet und zusammengefasst. Ich schicks dir per PM.

  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 28. September 2012 um 12:28

    Sry... Hier ist die Funktion: :(

    Spoiler anzeigen
    [autoit]

    Func MathExBas_Power($Number,$n=2)
    If Not IsNumber($Number) Then
    SetError(1)
    Return 0
    EndIf
    If Not IsInt($n) Then
    SetError(2)
    Return 0
    EndIf
    For $i=1 To $n-1
    $Number=$Number*$Number
    Next
    Return $Number
    EndFunc

    [/autoit]
  • MP3 -> Beep(Arduino) / .txt Converter

    • Grimbizo
    • 28. September 2012 um 11:39

    Mit Bass würde das ganz eventuell gehen ( --> BassExt ) aber das würde eher minderwertig sein. Schätze ma das ist aber die einzige Möglichkeit. Ich versuch das ma zu schreiben... Kann was dauern.

    Aber lustige Idee - 1x:thumbup:.

  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 28. September 2012 um 10:42

    Jey - Die Fehlerbehandlung war schuld - aber jetzt hab ich ein anderes Problen:

    Spoiler anzeigen
    [autoit]


    Global Const $MATHEX_CONST_PI = 3.14159265358979
    Global Const $MATHEX_CONST_RADIAN = ($MATHEX_CONST_PI/180)

    [/autoit] [autoit][/autoit] [autoit]

    #include <Array.au3>
    $jo=MathExMov_GetTrajectory(100,100,1000,10,30,9.18,1000,1)
    MsgBox(0,"",@error)
    MsgBox(0,"",VarGetType($jo))
    _ArrayDisplay($jo)
    For $i=0 To 1000
    MouseMove($jo[$i][0],$jo[$i][1])
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func MathExMov_GetTrajectory($Heigth, $Width, $TotalWidth, $Alpha, $Speed, $Gravity=9.81,$To=1000,$AirResistance=0,$Radius=1, $Viscosity=10)
    If Not IsNumber($Heigth) Then
    SetError(1)
    Return 0
    EndIf
    If Not IsNumber($Width) Then
    SetError(2)
    Return 0
    EndIf
    If Not IsNumber($TotalWidth) Then
    SetError(3)
    Return 0
    EndIf
    If Not IsNumber($Alpha) Or $Alpha<0 Or $Alpha>360 Then
    SetError(4)
    Return 0
    EndIf
    If Not IsNumber($Speed) Then
    SetError(5)
    Return 0
    EndIf
    If Not IsNumber($Gravity) Then
    SetError(6)
    Return 0
    EndIf
    If Not IsNumber($To) Then
    SetError(7)
    Return 0
    EndIf
    If Not IsNumber($AirResistance) Then
    SetError(8)
    Return 0
    EndIf
    If Not IsNumber($Radius) Then
    SetError(9)
    Return 0
    EndIf
    If Not IsNumber($Viscosity) Then
    SetError(10)
    Return 0
    EndIf
    Dim $Return[$To][2]
    If $AirResistance=0 Then
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+$xx*Tan($Alpha*$MATHEX_CONST_RADIAN)-1/2*$Gravity*(MathExBas_Power($xx/($Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))))
    $x+=$dx
    Next
    ElseIf $AirResistance=1 Then
    $Beta=6*$MATHEX_CONST_PI*$Radius*$Viscosity
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+(Tan($Alpha*$MATHEX_CONST_RADIAN)+$Gravity/$Beta*$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))*$xx+$Gravity/MathExBas_Power($Beta)*Log(1-$Beta/$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)*$xx)
    $x+=$dx
    Next
    ElseIf $AirResistance=2 Then

    EndIf
    Return $Return
    EndFunc

    [/autoit]

    Das Problem ist hier: Es kommt immer 1.#IND für $jo[$i][1] (y) raus... warum?

    Dateien

    Neu Bitmap.bmp 453,55 kB – 386 Downloads
  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 28. September 2012 um 09:43

    Ich habs jetzt korrigiert... funtzt aber immer noch nicht.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $MATHEX_CONST_PI = 3.14159265358979
    Global Const $MATHEX_CONST_RADIAN = ($MATHEX_CONST_PI/180)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <Array.au3>
    $jo=MathExMov_GetTrajectory(100,100,1000,10,30,Default,Default,1)
    MsgBox(0,"",VarGetType($jo))
    _ArrayDisplay($jo)
    For $i=0 To 1000
    MouseMove($jo[$i][0],$jo[$i][1])
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func MathExMov_GetTrajectory($Heigth, $Width, $TotalWidth, $Alpha, $Speed, $Gravity=9.81,$To=1000,$AirResistance=0,$Radius=1, $Viscosity=10)
    If Not IsNumber($Heigth) Then
    SetError(1)
    Return 0
    EndIf
    If Not IsNumber($Alpha) Or $Alpha<0 Or $Alpha>360 Then
    SetError(2)
    Return 0
    EndIf
    If Not IsNumber($Speed) Then
    SetError(3)
    Return 0
    EndIf
    If Not IsNumber($Gravity) Then
    SetError(4)
    Return 0
    EndIf
    If Not IsNumber($To) Then
    SetError(5)
    Return 0
    EndIf
    If Not IsBool($AirResistance) Then
    SetError(6)
    Return 0
    EndIf
    Dim $Return[$To][2]
    If $AirResistance=0 Then
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+$xx*Tan($Alpha*$MATHEX_CONST_RADIAN)-1/2*$Gravity*(MathExBas_Power($xx/($Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))))
    $x+=$dx
    Next
    ElseIf $AirResistance=1 Then
    $Beta=6*$MATHEX_CONST_PI*$Ratius*$Viscosity
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+(Tan($Alpha*$MATHEX_CONST_RADIAN)+$Gravity/$Beta*$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))*$xx+$Gravity/MathExBas_Power($Beta)*Log(1-$Beta/$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)*$xx))
    $x+=$dx
    Next
    ElseIf $AirResistance=2 Then

    EndIf
    Return $Return
    EndFunc

    [/autoit]
  • 1.#IND bei MathExMov_GetTrajectory - warum?

    • Grimbizo
    • 26. September 2012 um 13:03

    Hallo zusammen!
    Ich habe ein kleines Problen: Wenn ich die Funktion so wie im Spoiler aufrufe, dann kommt bei mir das:

    Zitat

    D:\Eigene Dateien\Grimbizo\AutoIT\#include (Custom)\MathEx\MathEx 1.1.1\MathEx.au3 (91) : ==> Subscript used with non-Array variable.:
    MouseMove($jo[$i][0],$jo[$i][1])
    MouseMove($jo^ ERROR

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $jo=MathExBal_GetTrajectory(100,100,1000,10,30,Default,Default,1)
    _ArrayDisplay($jo)
    For $i=0 To 1000
    MouseMove($jo[$i][0],$jo[$i][1])
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $MATHEX_CONST_PI = 3.14159265358979
    Global Const $MATHEX_CONST_RADIAN = ($MATHEX_CONST_PI/180)

    [/autoit] [autoit][/autoit] [autoit]

    Func MathExMov_GetTrajectory($Heigth, $Width, $TotalWidth, $Alpha, $Speed, $Gravity=9.81,$To=1000,$AirResistance=0,$Radius=1, $Viscosity=10)
    If Not IsNumber($Heigth) Then
    SetError(1)
    Return 0
    EndIf
    If Not IsNumber($Alpha) Or $Alpha<0 Or $Alpha>360 Then
    SetError(2)
    Return 0
    EndIf
    If Not IsNumber($Speed) Then
    SetError(3)
    Return 0
    EndIf
    If Not IsNumber($Gravity) Then
    SetError(4)
    Return 0
    EndIf
    If Not IsNumber($To) Then
    SetError(5)
    Return 0
    EndIf
    If Not IsBool($AirResistance) Then
    SetError(6)
    Return 0
    EndIf
    Dim $Return[$To][2]
    If $AirResistance=0 Then
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+$xx*Tan($Alpha*$MATHEX_CONST_RADIAN)-1/2*$Gravity*(MathExBas_Power($xx/($Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))))
    $x+=$dx
    Next
    ElseIf $AirResistance=1 Then
    $Beta=6*$MATHEX_CONST_PI*$Ratius*$Viscosity
    $xSpeed=$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)
    $x=$Width
    $dx=$TotalWidth/$To
    For $i=0 To $To-1
    $Return[$i][0]=$x
    $xx=$x-$Width
    $Return[$i][1]=$Heigth+(Tan($Alpha*$MATHEX_CONST_RADIAN)+$Gravity/$Beta*$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN))*$xx+$Gravity/MathExBas_Power($Beta)*Log(1-$Beta/$Speed*Cos($Alpha*$MATHEX_CONST_RADIAN)*$xx))
    $x+=$dx
    Next
    ElseIf $AirResistance=2 Then

    EndIf
    Return $Return
    EndFunc

    [/autoit]

    Bitte helft mir!!!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™