PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prüfer - Marker im Bereich?


Hercules-HH
16.03.2009, 02:57
Ich möchte prüfen, ob sich ein Marker in einem Bereich befindet?

Die frage hab ich schon mal gestellt, doch leider hab ich das doch nicht richtig verstanden.

#Start
~2
if ("Infs1m" in List ausl) then {hint "Ja"} else {hint "Nein"};
goto "Start"#Start
~2
if ("Infs1m in List ausl") then {hint "Ja"} else {hint "Nein"};
goto "Start"

Oder geht das gar nicht?

[GNC]Lord-MDB
16.03.2009, 04:37
ich glaube einen Marker direkt kann man nicht abfragen,aber über dem Umweg über ein unsichtbares h könntes es gehen,das man an den Marker bindet

Vienna
16.03.2009, 13:36
Kurz ein Ersatzobjekt in den Auslöserbereich reinstellen ist problematisch weil

a) es gibt verschiedene Auslöser: West, Ost, Jeder ...
b) wenn ein Ersatzobjekt erst kurz im Auslöserbereich steht, wird es womöglich noch nicht angezeigt.

Für einen kreisförmigen Auslöser gibt es aber folgende Möglichkeit der Abfrage, ob sich im Kreisbereich der Marker befindet:

z.B. bei Auslöserradius von 50m

if(getMarkerPos "Markername" distance Auslösername < 50)then{hint "JA}else{hint "NEIN"}

Hercules-HH
16.03.2009, 20:13
[GNC]Lord-MDB: aber über dem Umweg über ein unsichtbares h könntes es gehen,das man an den Marker bindetJa, auf diese Idee kam ich auch und jetzt verstehe ich warum das mal geklappt hat und mal nicht. Danke dir trotzdem

Ich hab das ungefähr so versucht und konnte prüfen, ob er überhaupt existiert, ich hab natürlich vorausgesetzt er hat diese Form:
? markerType "Marker1" == "Dot" : goto "Nichtda";
hint "ist anwesend;

Doch leider knnte ich es nicht im Bezug auf Auslöser realisieren. Das hab ich so nur zum Testen gemacht und nichts hat funktioniert :-(

{If (markerType "Infs1m" == "Dot") then {"Infs1m" setMarkerType "Arrow"} else {hint "nein"}} foreach ausl;

{If (markerType "Infs1m" == "Dot") then {"Infs1m" setMarkerType "Arrow"} else {hint "nein"}} foreach list ausl;Das ist eine super Idee. Darauf muss man erst mal kommen.
Vienna :if(getMarkerPos "Markername" distance Auslösername < 50)then{hint "JA}else{hint "NEIN"}
Und nächste Frage:

Wen ich ein Marker (Mark2) genau 40 meter südlich von einem anderen Marker (Mark1) setzten möchte, wie mach ich es?

"Mark2" setMarkerPos [(getMarkerPos "Mark1" select 0),(?????),0]

Hercules-HH
16.03.2009, 20:57
"Mark2" setMarkerpos [(getMarkerPos "Mark1" select 0),(getMarkerPos "Mark1" select 1)]

So ist er schon mal an der gleichen Position, aber er soll nun 50 Meter südlich davon sein.

[GNC]Lord-MDB
16.03.2009, 22:26
Jetzt kommt das harte Wissen aus der Schule zum tragen "Geometrie und Winkelberechnung" :schlau:


_dir = 180;
_c = 50;
"Mark2" setMarkerpos [(getMarkerPos "Mark1" select 0)-_c*sin(_dir),(getMarkerPos "Mark1" select 1)-_c*cos(_dir)];


0=nord
90=ost
180=süd
270=west

Manchmal ist nicht alles aus der Schule umsonst :lol:

Vienna
17.03.2009, 00:38
Und nächste Frage:

Wen ich ein Marker (Mark2) genau 40 meter südlich von einem anderen Marker (Mark1) setzten möchte, wie mach ich es?
"Mark2" setMarkerPos [ getMarkerPos "Mark1" select 0 , (getMarkerPos "Mark1" select 1) - 40 ]

Für die einfachen Himmelsrichtungen reicht somit Plus und Minus.