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

Samstag, 6. Juni 2009, 20:38

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

Sonntag, 7. Juni 2009, 10:45

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

Sonntag, 7. Juni 2009, 15:34

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

Sonntag, 7. Juni 2009, 16:52

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

Montag, 8. Juni 2009, 13:26

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.:

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

Montag, 8. Juni 2009, 13:45

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

Schöne Grüße,
Marc

7

Montag, 8. Juni 2009, 19:59

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

Montag, 8. Juni 2009, 23:22

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

Mittwoch, 10. Juni 2009, 00:02

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