|
You last visited: Today at 18:00
Advertisement
Hilfe, AutoIt Mittelpunkt von Koordinaten
Discussion on Hilfe, AutoIt Mittelpunkt von Koordinaten within the AutoIt forum part of the Coders Den category.
02/15/2014, 00:13
|
#1
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Hilfe, AutoIt Mittelpunkt von Koordinaten
Hallo, wie kann ich den ich den Mittelpunkt von relativen koordinaten ermitteln??
Von:
Code:
$skx1 ;x-oben links
$skx2 ;y-oben links
$sky1 ;x-unten rechts
$sky2 ;y-unten rechts
das sind alles koordinaten auf dem desktop die ein rechteck ergeben und ich möchte immer die genaue mitte haben.
sodass als ergebnis das rauskommt:
Code:
$mx ;x-mitte
$my ;y-mitte
Danke!
|
|
|
02/15/2014, 06:52
|
#2
|
elite*gold: 0
Join Date: Nov 2013
Posts: 297
Received Thanks: 511
|
Quote:
Originally Posted by loop88
Hallo, wie kann ich den ich den Mittelpunkt von relativen koordinaten ermitteln??
Code:
$skx1 ;x-oben links
$skx2 ;y-oben links
$sky1 ;x-unten rechts
$sky2 ;y-unten rechts
sodass als ergebnis das rauskommt:
Code:
$mx ;x-mitte
$my ;y-mitte
Danke!
|
Von was denn?
Desktop?;@DesktopHeight ..@Desktop..
Fenster?;WinGetPos ()
|
|
|
02/15/2014, 08:12
|
#3
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by SoulCr4ck
Von was denn?
Desktop?;@DesktopHeight ..@Desktop..
Fenster?;WinGetPos ()
|
Also nochmal ich habe die koordinaten:
Code:
$skx1 ;x-oben links
$skx2 ;y-oben links
$sky1 ;x-unten rechts
$sky2 ;y-unten rechts
das sind alles koordinaten auf dem desktop die ein rechteck ergeben und ich möchte immer die genaue mitte haben.
|
|
|
02/15/2014, 08:29
|
#4
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
ach das ist easy. das ist wie beim durchschnitterrechnen in der schule.
Code:
$mx=$skx1+$skx2/2
$my=$sky1+$sky2/2
|
|
|
02/15/2014, 08:38
|
#5
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Dann hast du wohl in der Schule nicht aufgepasst!
Multiplikation und Division sind vor Addition und Subtraktion, deshalb fehlen bei dir Klammern um die Summe von $skx1 und $skx2 sowie bei $sky1 und $sky2.
|
|
|
02/15/2014, 09:23
|
#6
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by FacePalmMan
ach das ist easy. das ist wie beim durchschnitterrechnen in der schule.
Code:
$mx=$skx1+$skx2/2
$my=$sky1+$sky2/2
|
Das habe ich auch schon versucht aber das ist nicht die mitte. also weiß ich auch nicht weiter deswegen frage ich ya.
Quote:
Originally Posted by alpines
Dann hast du wohl in der Schule nicht aufgepasst!
Multiplikation und Division sind vor Addition und Subtraktion, deshalb fehlen bei dir Klammern um die Summe von $skx1 und $skx2 sowie bei $sky1 und $sky2.
|
Die summen fehlen weil das keine feste koordinaten sind d ie ändert sich ja ständig
|
|
|
02/15/2014, 09:36
|
#7
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Wo ist das Problem? Du kriegst doch die Koordinaten, dann änder den Mittelpunkt auch immer AdlibRegister eine Funktion die alle 200ms den $mx und $my settet und fertig.
|
|
|
02/15/2014, 09:50
|
#8
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by alpines
Wo ist das Problem? Du kriegst doch die Koordinaten, dann änder den Mittelpunkt auch immer AdlibRegister eine Funktion die alle 200ms den $mx und $my settet und fertig.
|
das ist nicht das problem, das ergebnis $mx $my sind rechts außen vom dem rechteck und ich verstehe nicht warum.
Grafische darstellung von dem problem:
|
|
|
02/15/2014, 10:38
|
#9
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
ein script wäre mal ganz nett, damit wir den fehler auch finden können.
|
|
|
02/15/2014, 11:29
|
#10
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
Quote:
Originally Posted by FacePalmMan
ein script wäre mal ganz nett, damit wir den fehler auch finden können.
|
So habe alles entfernt was nichts damit zu tun hat:
Code:
; Script Start - Add your code below here
#RequireAdmin
#include<Misc.au3>
#include <windowsconstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <ImageSearch.au3>
#include <MsgBoxConstants.au3>
#include <ComboConstants.au3>
; HOTKEYS_____________________
HotKeySet("{ESC}","Salir")
HotKeySet("{t}", "test")
While 1
#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("test", 323, 353, 265, 128)
$Button1 = GUICtrlCreateButton("Rechteck auswellen", 21, 106, 137, 25);rechteck auswellen
;[...]
$Button3 = GUICtrlCreateButton("Speichern", 8, 319, 137, 25);speichern
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1 ;cordenadas de pantalla
GUISetState(@SW_HIDE, $Form1_1)
Local $cord= Select_rectangle()
$CorMap1_x1=$cord[0]
$CorMap1_y1=$cord[1]
$CorMap1_x2=$cord[2]
$CorMap1_y2=$cord[3]
GUISetState(@SW_show, $Form1_1)
;[...]
Case $Button3; escribir INI
IniWrite( @ScriptDir &"\Settings.ini" , "area_alto" , "x" , $CorMap1_x1)
IniWrite( @ScriptDir &"\Settings.ini" , "area_alto" , "y" , $CorMap1_y1)
IniWrite( @ScriptDir &"\Settings.ini" , "area_bajo" , "x" , $CorMap1_x2)
IniWrite( @ScriptDir &"\Settings.ini" , "area_bajo" , "y" , $CorMap1_y2)
EndSwitch
WEnd
WEnd
;[...]
Func test()
$CorMap1_x1=int(IniRead( @ScriptDir &"\Settings.ini" , "area_alto" , "x" ,0));x-oben links
$CorMap1_y1=int(IniRead( @ScriptDir &"\Settings.ini" , "area_alto" , "y" ,0));y-oben link
$CorMap1_x2=int(IniRead( @ScriptDir &"\Settings.ini" , "area_bajo" , "x" ,0));x-unten rechts
$CorMap1_y2=int(IniRead( @ScriptDir &"\Settings.ini" , "area_bajo" , "y" ,0));y-unten rechts
$mx=$CorMap1_x1+$CorMap1_x2/2
$my=$CorMap1_y1+$CorMap1_y2/2
MouseMove($mx, $my,0)
EndFunc
Func Select_rectangle()
Local $Selected=0
Local $Coordinate[4]
$area = GUICreate("", 1, 1, 1, 1, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor(0x33FF00, $area)
WinSetTrans($area, "", 80)
GUISetState()
While $Selected = 0
If _IsPressed("1") Then
$mp = MouseGetPos()
WinMove($area, "", $mp[0], $mp[1], 1, 1)
While _IsPressed('01')
$pos = MouseGetPos()
global $lefts = Order($mp[0], $pos[0])
global $tops = Order($mp[1], $pos[1])
WinMove($area, "", $lefts[0], $tops[0], $lefts[1], $tops[1])
ConsoleWrite($lefts[0] & ', ' & $tops[0] & ', ' & $lefts[1] & ', ' & $tops[1] & @CRLF)
WEnd
$Coordinate[0]=$lefts[0]
$Coordinate[1]=$tops[0]
$Coordinate[2]=$lefts[0]+$lefts[1]
$Coordinate[3]=$tops[0]+ $tops[1]
$Selected=1
EndIf
Wend
Guidelete($area)
return $coordinate
EndFunc
Func Order($a, $b)
Dim $res[2]
If $a < $b Then
$res[0] = $a
$res[1] = $b - $a
Else
$res[0] = $b
$res[1] = $a - $b
EndIf
Return $res
EndFunc
Func Salir() ;Salir del programa
exit 0
EndFunc
|
|
|
02/15/2014, 17:57
|
#11
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
sollte doch recht einfach so aussehen?:
verstehe nichtso ganz, wie die andere formel da oben zu stande gekommen sein soll o0
|
|
|
12/20/2015, 13:08
|
#12
|
elite*gold: 585
Join Date: Jul 2011
Posts: 268
Received Thanks: 104
|
Orden de evaluación
Quote:
Originally Posted by loop88
Code:
$mx=$CorMap1_x1+$CorMap1_x2/2
$my=$CorMap1_y1+$CorMap1_y2/2
|
Wenn das der betreffende Teil ist, dann wohl eher mal hiermit versuchen:
Code:
$mx=($CorMap1_x1+$CorMap1_x2)/2
$my=($CorMap1_y1+$CorMap1_y2)/2
La expresion en los paréntesis es que alpines se refirió como 'Summe'.
|
|
|
12/20/2015, 14:46
|
#13
|
elite*gold: 0
Join Date: Dec 2013
Posts: 47
Received Thanks: 9
|
lol
Quote:
Originally Posted by 0ptimist
Wenn das der betreffende Teil ist, dann wohl eher mal hiermit versuchen:
Code:
$mx=($CorMap1_x1+$CorMap1_x2)/2
$my=($CorMap1_y1+$CorMap1_y2)/2
La expresion en los paréntesis es que alpines se refirió como 'Summe'.
|
Danke aber das tema ist über ein jahr alt
Das war glaube ich damals auch die lösung zum problem ^^
Edit:
tema bitte schliessen!
|
|
|
|
Similar Threads
|
[autoIT]Problem mit koordinaten
08/08/2010 - AutoIt - 2 Replies
Moin,
ich habe folgendes Problem:
Wenn ich die Koordinaten aus einen Bild die Koordinaten erlese und sie dann im GUI anzeige, klappt alles wunderbar. Mein Problem besteht aber darin das ich die Koordinaten , die im GUI angezeigt werden, multiplizieren mit 10 möchte. Nach allen möglichen Versuchen hat es denoch nicht geklappt. (Google war keine große Hilfe)
Ich würde mich freuen wenn ihr mir weiter helfen könntet.
Hier mein code:
#include <GUIConstantsEx.au3>
#include...
|
[AutoIT] Koordinaten anzeigen
08/06/2010 - AutoIt - 13 Replies
Hi,
ich will das beim meinen 2 labels X und Y die Koordinaten angezeigt werden wo ich mich grade im spiel befinde. Wie geht das?
Mfg
|
(nicht) absolute Koordinaten in Autoit
08/14/2009 - AutoIt - 3 Replies
Hallo,
ich wollte fragen, ob es einen Befehl dafür gibt, dass ich bei Autoit die Koordinaten in einem Fenster angebe?(dass sich die koordinaten auf ein Bestimmtes Fenster beziehen) d.h. dass mit diesem befehl die koordinaten 1/1 immer oben links im fenster ist. Egla wo sich das Fenster auf dem Desktop befindet. habe schon google gefragt aber nix gefunden.
Zudem wollte ich wissen ob ich mit dem "Window Info" von Autoit diese Koordinaten irgendwie auslesen kann...die Koordinaten unter der...
|
AutoIT Koordinaten
05/27/2008 - Guild Wars - 6 Replies
Hallo,
ich wollte wissen, ob ich die Koordinaten auf eine kleine Auflösung herunter rechnen kann, ohne sie neu zu messen?
Von 1280x1024 auf 1024x768
Die 1280x1024 sind jeweils 100%x100% und die 1024x768 müssten 80%x75% sein.
|
All times are GMT +2. The time now is 18:00.
|
|