You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Saturday, June 6th 2009, 8:38pm

Hotspots - von den perspektivischen zu den Player x-y-Koordinaten

Hallo,
irgendwo hab ich mal ein Beispiel mit dem Flash Panorama Player gesehen, wo im Panorama am Boden Fotos "lagen" die per distorted hotspots dort eingebettet wurden. Wenn man auf ein solches Foto draufgeklickt hat, ist dieses Bild vom Boden abgehoben und hat sich vergrößert, sodass es schlussendlich fast bildschirmfüllend angezeigt worden.
Ist das mit krpano auch möglich? Würde jetzt gerne das Beispiel zeigen, wenn ich es noch finden würde...

Gruß Marc

2

Sunday, June 7th 2009, 10:45am

Ein Beispiel dazu gibt es hier auf der Seite von fpp.
Da ist nicht nur das (destorted) video im Bildschirm, sondern - Schwenk nach links - da liegen auch Fotos am Schreibtisch, die man klicken kann und die kommen dann "angeflogen".
Übrigens gibt es in diese (gerenderten) Szene auch eine Zeiger-Uhr an der Wand, die IMMER die gerade aktuelle Uhrzeit anzeigt...
best regards from www.PanAustria.com

3

Sunday, June 7th 2009, 3:34pm

danke für den Link, es war zwar nicht dieses Panorama, aber das ist ja auch super :)
Nur jetzt die Frage, wie setzt man das um?
Vielleicht basiert das nur auf den distorted Hotspots, wenn man aufs Bild klickt, liest der Player die aktuelle view-position aus und passt die rx, ry, rz und scale Attribute des Bildes automatisch so an, dass sie großflächig im Panorama sichtbar sind?

Wär das ein Ansatz? Oder gibts eine andere Möglichkeit?

4

Sunday, June 7th 2009, 4:52pm

sollte, könnte so funktionieren, habs aber noch nicht ausprobiert, ich glaube aber, dass das beispiel bei fpp nicht nur mit fpp sondern auch mit hilfe von javascript erzeugt wurde, denn in dem move der bilder finden sich kombinierte tweens, die so auch mit fpp nicht umsetzbar sind - glaube ich...
Ich möchte solche tweens aber auch in einer meiner demo-touren einbauen, werde mich also damit in den nächsten wochen irgendwann beschäftigen; momentan aber keine zeit dazu.
best regards from www.PanAustria.com

5

Monday, June 8th 2009, 1:26pm

Vielleicht basiert das nur auf den distorted Hotspots, wenn man aufs Bild klickt, liest der Player die aktuelle view-position aus und passt die rx, ry, rz und scale Attribute des Bildes automatisch so an, dass sie großflächig im Panorama sichtbar sind?

Wär das ein Ansatz? Oder gibts eine andere Möglichkeit?
Hi,

ja, das wäre ein Ansatz, ich bin aber noch am überlegen, wie sich so etwas einfacher realisieren lassen würde,

mit "etwas" XML Code wäre es aber jetzt schon möglich (entsprechend deinem Ansatz )
z.B.:

Source code

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
46
47
<events onviewchange="if(hotspot[spot].fly, centerhotspot() );" />

<action name="centerhotspot">
  set(hotspot[spot].ath, get( view.hlookat ) );
  set(hotspot[spot].atv, get( view.vlookat ) );
  div(hotspot[spot].scale, 2.0, view.r_zoom ) );
</action>

<action name="flyout">
  copy(backup_ath,ath);
  copy(backup_atv,atv);
  copy(backup_scale,scale);
  copy(backup_rx,rx);
  copy(backup_ry,ry);
  copy(backup_rz,rz);
  adjusthlookat( get(ath) );
  tween(ath, get(view.hlookat) );
  tween(atv, get(view.vlookat) );
  tween(rx, 0);
  tween(ry, 0);
  tween(rz, 0);
  div(destscale, 2.0, view.r_zoom );
  tween(scale, get(destscale), 0.5, default, WAIT );
  set(fly,true);
</action>

<action name="flyin">
  set(fly,false);
  tween(ath, get(backup_ath));
  tween(atv, get(backup_atv));
  tween(scale, get(backup_scale));
  tween(rx, get(backup_rx));
  tween(ry, get(backup_ry));
  tween(rz, get(backup_rz));
</action>

<hotspot name="spot"
     	url="image.jpg"
     	distorted="true"
     	zoom="true"
     	ath="21"
     	atv="20"
     	scale="0.5"
     	rx="-75" ry="-18" rz="-29"
     	fly="false"
     	onclick="if(fly, flyin(), flyout());"
     	/>


das Problem an dem Beispiel ist nur die Skalierung des Hotspots, damit die unabhängig vom Zoom bleibt, muss diese an den aktuellen Zoom angepasst werden, intern gibt es für den Zoom die "view.r_zoom" Variable (diese enthält allerdings den Zoomwert des letzten Frames, wodurch sich beim Zoomen die Hotspotgröße kurz ändert),
es wäre natürlich kein Problem den richtigen/aktuellen "zoom" Wert für die Berechnung bereitzustellen, allerdings bin ich eher am überlegen wie sich das Ganze vereinfachen und automatisieren lässt...

Schöne Grüße,
Klaus

6

Monday, June 8th 2009, 1:45pm

super, vielen Dank für die Antwort! Das Beispiel werde ich heute noch genau studieren :)

Schöne Grüße,
Marc

7

Monday, June 8th 2009, 7:59pm

Hallo Klaus,
das ist eine tolle Lösung, die Du hier aufzeigst(!), allerdings frage ich mich erneut - und jetzt auch Dich - anläßlich des Ansatzes "onviewchange":
Wie "vorsichtig" muß/soll man mit dem Auslösen solcher beinahe-"dauerprozessen" umgehen? onviewchange wird im Zuge des pano/tour-Betrachtens ja (fast) permanent dispatched (auch wenn dann nichs oder nicht viel passiert...) bzw. "echte dauerprozesse" wie aus Deinem heutigen as3-bezogenem thread zum "individuellen progressbar" (onEnterFrame).
Bremst man unter Verwendung ein paar solcher Triggerungen eine Tour nicht gleich merkbar ab?
Leiden dann nicht tweens und andere timingrelevante Aktionen spürbar? Ich hab zu wenig AS-Erfahrung, um diese Bedenken zB gleich hinwegfegen zu können und habe bisher folglich solche methoden vermieden...
best regards from www.PanAustria.com

8

Monday, June 8th 2009, 11:22pm

die Frage von Oliver würde mich auch interessieren,
nichtsdestotrotz hab ich das jetzt einmal ausprobiert und es scheint fein zu funktionieren :)
Hier mein Beispiel (Fotos am Boden):
http://www.marcwalser.com/panoramen/360/…test/index.html

Danke nochmal ;-)

Lg Marc

9

Wednesday, June 10th 2009, 12:02am

das ist eine tolle Lösung, die Du hier aufzeigst(!), allerdings frage ich mich erneut - und jetzt auch Dich - anläßlich des Ansatzes "onviewchange":
Wie "vorsichtig" muß/soll man mit dem Auslösen solcher beinahe-"dauerprozessen" umgehen? onviewchange wird im Zuge des pano/tour-Betrachtens ja (fast) permanent dispatched (auch wenn dann nichs oder nicht viel passiert...) bzw. "echte dauerprozesse" wie aus Deinem heutigen as3-bezogenem thread zum "individuellen progressbar" (onEnterFrame).
Bremst man unter Verwendung ein paar solcher Triggerungen eine Tour nicht gleich merkbar ab?
Leiden dann nicht tweens und andere timingrelevante Aktionen spürbar? Ich hab zu wenig AS-Erfahrung, um diese Bedenken zB gleich hinwegfegen zu können und habe bisher folglich solche methoden vermieden...
Hi,

nein, das relativ problemlos, ein paar hundert Aktionen pro Frame sollten schon drin sein
für das Rendern/Zeichen des Panoramas benötigt der Flashplayer immer noch die meiste Zeit,

allerdings ist die Verwendung von "onviewchange" für so etwas vielleicht etwas zu komplizert,
es müssten alle Hotspots darin aufgenommen werden,

ich hab jetzt einen neuen Parameter hinzugefügt - "flying" (0.0 - 1.0)
damit wird zwischen 'normaler' Position und Bildschirm Position hin-und-her interpoliert,
das sollte die Anwendung doch um einiges vereinfachen,

hier ein Beispiel:
HTML: http://krpano.com/examples/108b8/example…ots/flyout.html
XML: http://krpano.com/examples/108b8/example…pots/flyout.xml

und hier mehr Infos:
http://krpano.com/forum/wbb/index.php?pa…D=4721#post4721

Schöne Grüße,
Klaus