Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: krpano.com Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 3. März 2009, 00:56

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
»Dieter« hat folgendes Bild angehängt:
  • radarbsp3.jpg

2

Mittwoch, 4. März 2009, 23:21

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

3

Mittwoch, 4. März 2009, 23:52

Danke

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 ;-) ). 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

4

Donnerstag, 5. März 2009, 13:41

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:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
<plugin name="radar" 
    	 url="radar.swf" 
    	 align="center" scale="2" 
    	 onloaded="setmask(maskimage,true);" 
    	 />
	
<plugin name="maskimage"  
    	 url="mask.png"  
    	 align="center" 
    	 visible="false" 
    	 enabled="false" 
    	 />


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

5

Donnerstag, 5. März 2009, 15:50

Super !!!

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. ;-)

Dieter

6

Donnerstag, 5. März 2009, 16:53

Hi,

das sollte eigentlich nicht sein,
hast du beim Masken Plugin enabled auf "false" gesetzt?

Schöne Grüße,
Klaus

7

Donnerstag, 5. März 2009, 20:08

Geklärt

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

8

Montag, 26. Oktober 2009, 22:51

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.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  <!-- activated hotpot -->
	<plugin name="activespot" url="%SWFPATH%/img/mappointactive.png" keep="true" align="center" edge="center" visible="false" zorder="3" />

	<!-- radar plugin, set heading with "plugin[radar].heading" -->	
	
	<plugin name="radar"
	    	url="%SWFPATH%/plugins/radar.swf"
	    	zorder="1"
	    	keep="true"
	    	heading="150"
	    	parent="map"
	    	mask="mapmask"  
	    	align="lefttop"
	    	edge="center"
	    	x="0" y="0"
	    	linecolor="0"
	    	fillcolor="0xFF0000"
	    	scale="2.5"
	    	visible="false"
	    	/>															
	
 <!--mask for radar --> 
	<plugin name="mapmask" url="%SWFPATH%/img/map_mask.png" keep="true"
	    	parent="map"
	    	enabled="false"
	    	/>	
<!-- actions -->



	<!-- activatespot action, 
	 	- this action has two arguments:
	   	- %1 = the current spot
	   	- %2 = the current radar heading
	-->
	
	<action name="activatespot">
		set(plugin[activespot].parent, plugin[%1]);
		set(plugin[activespot].visible, true);
		copy(plugin[radar].x, plugin[%1].x);
		copy(plugin[radar].y, plugin[%1].y);
		trace(plugin[radar].x,'-',plugin[radar].y);
		set(plugin[radar].visible, true);
		set(plugin[radar].heading, 90);
	</action>	 	


Wenn ich nun ein weiteres Pano lade,

Quellcode

1
2
 <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

9

Mittwoch, 28. Oktober 2009, 09:11

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.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<scene ...>
  ...
  <plugin name="mapmask" url="pano1_mapmask.png" parent="map" enabled="false" onloaded="updatemask(get(name));" />
</scene>

<scene ...>
  ...
  <plugin name="mapmask" url="pano2_mapmask.png" parent="map" enabled="false" onloaded="updatemask(get(name));" />
</scene>

...

<action name="updatemask">
  set(plugin[radar].mask, %1);
</action>


Schöne Grüße,
Klaus

10

Donnerstag, 29. Oktober 2009, 10:32

Danke für diese Info Klaus,
das muss ich ausprobieren.
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.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<scene ...>
  ...
  <plugin name="mapmask" url="pano1_mapmask.png" parent="map" enabled="false" onloaded="updatemask(get(name));" />
</scene>

<scene ...>
  ...
  <plugin name="mapmask" url="pano2_mapmask.png" parent="map" enabled="false" onloaded="updatemask(get(name));" />
</scene>

...

<action name="updatemask">
  set(plugin[radar].mask, %1);
</action>


Schöne Grüße,
Klaus