Radarstrahl begrenzen

  • Hallo Klaus,

    ich frage mich gerade, wie ich die Länge des Radarstrahls in manchen Richtungen begrenzen kann.

    Für einen Fall habe ich das Problem schon gelöst, nämlich dann, wenn ich den Strahl im Grundriß eines Innenraumes auf diesen Innenraum begrenzen möchte. Ich habe einfach ein zweites Plugin über das Radarplugin gelegt, das dieses ausserhalb des Grundrisses überdeckt.

    Darüberhinaus (und auch generell, d.h. auch bei Nicht-Innenraum-Situationen) besteht das Problem, dass der Strahl an manchen Stellen über die Map hinausragen und sich über das Pano legen kann immer dann, wenn man den Kamerastandort nicht genau in die Mitte der Radarmap positioniert. Natürlich könnte man die Länge des Strahls dann an der kürzesten Randentfernung ausrichten, das ist aber möglicherweise für die andere Richtung ungünstig (wie ja auch in einem Pano selbst das Sichtfeld mal weiter und mal nicht so weit sein kann).

    Vielleicht zeigt der beigefügte Screenshot-Ausschnitt besser was ich meine.

    Was ich nun suche ist also eine Möglichkeit, die Sichtbarkeit des Radarstrahls, egal wo er positioniert wird und egal wie lang er ist, generell auf eine bestimmte Fläche, z.B. die Fläche der Radarmap zu begrenzen.

    Frage: habe ich diese Möglichkeit übersehen und falls es sie tatsächlich nicht gibt: ist sowas vorgesehen ?

    Und wenn wir schon beim Thema sind: wird es mal möglich sein, die Länge des Strahls von der vertikalen Ausrichtung abhängig zu machen, d.h. den Strahl zu verkürzen, wenn nach oben oder unten "geschwenkt" wird ?

    Besten Dank - und nicht nur für die Antwort, sondern bei der Gelegenheit auch mal für den Player überhaupt ;-).

    Gruß Dieter

  • Hi,

    das ist momentan leider noch nicht möglich,
    ich werde aber in der nächsten Version dafür eine Funktionalität hinzufügen,

    denkbar wäre:
    - ein bestimmter rechteckiger Bereich wird als Maske definiert (x1,y1 - x2,y2)
    - oder eine zusätzliche SW Grafik wird als Maske verwendet

    das mit dem Bereich wäre dabei die einfachere Lösung, werd versuchen das
    in Kürze bereitzustellen

    Schöne Grüße,
    Klaus

  • Danke Klaus, ich freu mich schon drauf *thumbsup* .

    Ich denke, dass ein rechteckiger Bereich dafür ausreichen würde (zumal wenn das schneller zu realisieren ist *wink* ). Innerhalb der Map kann man dann ja wie ich es schon gemacht habe, gegebenenfalls zusätzlich noch mit einer Maske arbeiten. Es geht also nur um die Begrenzung auf die Map an sich - und die dürfte ja in der Regel rechteckig sein.

    Danke nochmals. Dieter

  • Hi,

    sorry, das mit dem rechteckigem Bereich nehm ich zurück, mit einer Grafik ist's doch einfacher

    als Maske kann man jetzt einfach eine andere Grafik (Plugin) verwenden,
    dabei wird entweder der rechteckige Umriss oder der Alphakanal der Grafik verwendet,
    die Position und Größe wird ganz normal über die x/y/width/height/align Parameter bestimmt,

    dazu hab ich das Radar Plugin um eine "setmask(pluginname,usealpha);" Funktion erweitert,
    diese kann z.B. im "onloaded" des Radar Plugins oder von anderen Aktionen aufgerufen werden,

    der 1. Parameter ist dabei der Name der andern Grafik die als Maske dienen soll,
    der 2. Parameter gibt an ob nur der Umriss (=false) oder der Alphakanal (=true) verwendet werden soll,

    die Grafik die als Maske dient sollte noch mit enable="false" und visible="false" deaktiviert und unsichtbar gesetzt werden,

    hier ein XML Beispiel:

    ich werde diese Masken-Funktionalität auch gleich direkt in die nächste krpano Version übernehmen,
    dann lässt sich das für alle Elemente verwenden

    Download des aktuellen Radar Plugins - radar.zip

    Hier noch ein Beispiel - Radar mit Maske (und die dort verwendete Maskengrafik - mask.png)

    Schöne Grüße,
    Klaus

  • Danke Klaus, funktioniert auch bei mir hervorragend.

    Ist genau das was ich wollte *thumbup* und noch viel mehr *thumbup* und dann auch noch so schnell *thumbup*

    Eine Sache ist mir noch aufgefallen: wenn ich keinen Alphakanal verwende sondern einfach den Umriss (z.B. von der Map), dann funktioniert es zwar, ich kann aber den Radarstrahl nicht mehr anpacken um das Pano zu drehen. Ist kein Problem, man kann ja auch wenn man nur ein Rechteck will einen Alphakanal anlegen. Ich wollte es nur sagen weil ich nicht weiss, ob das jetzt an meinem Code liegt oder zufällig so ist oder gar zwangsläufig so sein muss.

    Nochmal ganz herzlichen Dank,
    ich bin wirklich froh, dass ich zur richtigen Zeit auf den richtigen Player gestoßen bin. *wink*

    Dieter

  • Hallo Klaus,

    ja, beim Masken-Plugin hatte ich zwar immer enabled auf false gesetzt - und doch hast Du damit den Fehler in meinem Code gefunden:

    bei dem Beispiel, wo ich im Masken-Plugin nur die rechteckigen Umrisse verwendet habe, hatte ich innerhalb der Map (wie damals im ersten Posting beschrieben) eine weitere Maske darüber gelegt - und dort hatte ich enabled="false" vergessen *cry* . Beim Beispiel mit dem Alphakanal war diese zweite Maske dann überflüssig.

    Danke und Gruß Dieter

  • Hallo Klaus, hierzu möchte ich auch eine Frage stellen:
    Ich arbeite gerade an meiner ersten Tour und such mir hier die Infos im Forum und in der Doku zusammen.
    Hab also keine große Ahnung von XML.
    Radar und Maske habe ich eingebaut in der ersten geladenen XML-Datei.

    Wenn ich nun ein weiteres Pano lade,

    Code
    <plugin name="Pano2" url="%SWFPATH%/img/mappoint.png" keep="true" parent="map" align="lefttop" edge="center" x="120"  y="120" zorder="2" onhover="showtext(Pano2);"     	
    	onclick="loadpano (Pano2.xml, null, MERGE, BLEND(1));" />

    benötige ich auch eine neue Maske.
    Wie binde ich diese Makse in der nächsten geladenen XML-DAtei ein?
    Wie funtkioniert das in deinem Beispiel Weinkeller, stellst du dafür auch die settings.xml-Datei zur Verfügung?

    Danke für eine Info, dann kann ich mein Werk auch bald mal zur allgemeinen Diskussion stellen.
    Gruß
    Michael

  • Wie binde ich diese Makse in der nächsten geladenen XML-DAtei ein?

    Hi,

    das hier wäre eine Möglichkeit:

    ein <plugin> mit der jeweiligen Maske innerhalb der <scene> definieren,
    wichtig ohne keep="true",
    und im "onloaded" event des Plugins eine Action aufrufen, welche die Maske
    neu setzt,

    z.B.

    Schöne Grüße,
    Klaus

  • Danke für diese Info Klaus,
    das muss ich ausprobieren.
    Gruß
    Michael

    Hi,

    das hier wäre eine Möglichkeit:

    ein <plugin> mit der jeweiligen Maske innerhalb der <scene> definieren,
    wichtig ohne keep="true",
    und im "onloaded" event des Plugins eine Action aufrufen, welche die Maske
    neu setzt,

    z.B.

    Schöne Grüße,
    Klaus

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!