[go: up one dir, main page]

DE10030765A1 - Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite - Google Patents

Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite

Info

Publication number
DE10030765A1
DE10030765A1 DE2000130765 DE10030765A DE10030765A1 DE 10030765 A1 DE10030765 A1 DE 10030765A1 DE 2000130765 DE2000130765 DE 2000130765 DE 10030765 A DE10030765 A DE 10030765A DE 10030765 A1 DE10030765 A1 DE 10030765A1
Authority
DE
Germany
Prior art keywords
browser
image
computer
program element
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE2000130765
Other languages
English (en)
Inventor
Christian Bach
Hans-Peter Harmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
REALSPACE GmbH
Original Assignee
REALSPACE GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by REALSPACE GmbH filed Critical REALSPACE GmbH
Priority to DE2000130765 priority Critical patent/DE10030765A1/de
Publication of DE10030765A1 publication Critical patent/DE10030765A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein Verfahren zum Einbinden eines Programmelementes in eine Browserseite (320), sowie ein Computersystem (230-280), ein Computerprogrammprodukt, ein Netzwerkserver (260) und ein Netzwerkclient (200) zum Betreiben eines solchen Verfahrens wird vorgestellt. Der Code (310) der Browserseite (320) enthält zunächst einen Platzhalter (800) mit einer Kennung zur Identifikation des Platzhalters (800). Die Browserseite (320) wird in einem Browserfenster, sowie als Teil der Browserseite (320) der Platzhalter (800) in einem Bereich des Browserfensters dargestellt. Bei Vorliegen der Ausführbarkeitsvoraussetzungen und/oder bei vollständiger Übertragung des Programmelementes, sowie von hierfür erforderlichen Daten (600-640) in einen Arbeitsspeicher (240) wird eine Einfüge-Routine oder ein Teil einer Einfüge-Routine aktiviert. Der Browser (300) führt die Einfüge-Routine oder den Teil der Einfüge-Routine aus und macht hierbei den Platzhalter (800) unter Verwendung der Kennung des Platzhalters (800) im Code (310) der Webseite (320) ausfindig. Der Browser (300) führt das Programmelement aus und führt eine Darstellung im Bereich des Platzhalters (800) im Browserfenster durch.

Description

Die Erfindung betrifft ein Verfahren zum Einbinden eines Pro­ grammelementes in eine Browserseite, sowie ein Computersystem, ein Computerprogrammprodukt, einen Netzwerkserver und einen Netzwerkclient zum Betreiben eines solchen Verfahrens.
Als Browserseiten werden hier wie im folgenden Darstellungen bezeichnet, welche beispielsweise mit einem Internetbrowser er­ zeugt werden. Der Code einer solchen Seite kann beispielsweise ein HTML-Code oder eine entsprechende Weiterentwicklung sein. Er enthält im wesentlichen eine inhaltliche Repräsentation der Browserseite, d. h. beispielsweise Texte und Steuerzeichen für die Textgestaltung. Bei neueren HTML-Versionen enthält der HTML-Code allgemein Angaben darüber, was an welcher Stelle der Browserseite wie angezeigt werden soll.
Programmelemente werden in diesem Rahmen beispielsweise benö­ tigt, um in der Browserseite eine Animation darzustellen. Zu diesem Zweck können "Applets" oder "Embedded Objects" in den Code eingefügt werden (hierunter sind jeweils Angaben zu ver­ stehen, welche den Browser veranlassen, ein Programmelement aufzurufen, abzuspielen und eine entsprechende Darstellung auf eine bestimmte Weise in die Browserseite einzufügen). Alterna­ tiv besteht auch die Möglichkeit, die entsprechenden Animati­ onsroutinen explizit in den Code der Browserseite einzufügen.
Durch das Einbinden von Programmelementen auf die beschriebene Weise werden inhaltlicher und funktionaler Code vermischt. Hierdurch werden der Code unübersichtlich und der Programmier­ aufwand entsprechend erhöht. Hinzu kommt, daß im Falle von nicht ausführbaren Programmroutinen im Browser lediglich eine entsprechende Meldung bzw. ein Icon angezeigt wird. Dies ist etwa dann der Fall, wenn die Animation nur unter Verwendung ei­ nes Plug-Ins abgespielt werden kann, welches auf dem Rechner nicht installiert ist, oder wenn Elemente der Animation etwa aufgrund von Netzwerkproblemen nicht übertragen werden können. In einem solchen Fall erscheint in der Browserseite kein Hin­ weis auf den. Inhaltsoder die Ausgestaltung der Animation.
Die vorliegende Erfindung hat die Aufgabe, ein verbessertes Verfahren zum Einbinden eines Programmelementes in eine Browserseite, sowie ein Computersystem, ein Computerprogramm­ produkt, einen Netzwerkserver und einen Netzwerkclient zum Be­ treiben eines solchen Verfahrens, zur Verfügung zu stellen.
Sie erreicht dieses Ziel durch den Gegenstand der Ansprüche 1 bzw. 8-12, also durch ein Verfahren zum Einbinden eines Pro­ grammelementes in eine Browserseite, sowie ein Computersystem, ein Computerprogrammprodukt, einen Netzwerkserver und einen Netzwerkclient zum Betreiben eines solchen Verfahrens. Der Code der Browserseite enthält zunächst einen Platzhalter mit einer Kennung zur Identifikation des Platzhalters. Die Browserseite wird in einem Browserfenster, sowie als Teil der Browserseite der Platzhalter in einem Bereich des Browserfensters darge­ stellt. Bei Vorliegen der Ausführbarkeitsvoraussetzungen und/oder bei vollständiger Übertragung des Programmelementes, sowie von hierfür erforderlichen Daten in einen Arbeitsspeicher wird eine Einfüge-Routine oder ein Teil einer Einfügeroutine aktiviert. Der Browser führt die Einfüge-Routine oder den Teil der Einfügeroutine aus und macht hierbei den Platzhalter unter Verwendung der Kennung des Platzhalters im Code der Webseite ausfindig. Der Browser führt das Programmelement aus und führt eine Darstellung im Bereich des Platzhalters im Browserfenster durch.
Gegenüber dem Stand der Technik hat die Erfindung insbesondere den Vorteil, daß bei Übertragungs- und/oder Darstellungsproble­ men zumindest ein erster Eindruck vom darzustellenden Objekt vermittelt werden kann. Weitere Vorteile ergeben sich aus der nachstehenden Beschreibung von Ausführungsbeispielen und den beigefügten Figuren. Die Ansprüche 2-7 betreffen vorteilhafte Ausgestaltungen den Erfindung.
Die Erfindung wird im folgenden anhand von Ausführungsbeispie­ len und der beigefügten Zeichnung noch näher erläutert. In der Zeichnung sind:
Fig. 1a-e schematische Darstellungen möglicher veränderli­ cher Objektsansichten und/oder -zustände, welche unter Verwendung der Erfindung vorteilhaft dar­ gestellt werden können;
Fig. 2a-c schematische Darstellungen von Computersystemen, in welche die vorliegende Erfindung implemen­ tiert ist;
Fig. 3 eine schematische Darstellung der Arbeitsweise eines Browsers;
Fig. 4 eine schematische Darstellung einer Übersicht über ein Verfahren, in welchem die vorliegende Erfindung zum Einsatz kommt;
Fig. 5a-c Illustrationen für die Definition von Bildfol­ gen;
Fig. 6a, b schematische Darstellungen der Aufbereitung der Bilddaten für eine Übertragung; .
Fig. 7a-c Illustrationen einer bevorzugten Verarbeitung übertragener Bilddaten;
Fig. 8a, b Illustrationen eines bevorzugten Verfahrens zur Einbindung von Programmelementen in eine Browserseite;
Fig. 9a-c Illustrationen eines bevorzugten Verfahrens zur Ermittlung einer darzustellenden Objektansicht;
und
Fig. 10a-d Illustrationen eines bevorzugten Verfahrens zum Einfügen interaktiver Flächen in die veränderli­ che Darstellung.
Im folgenden werden zunächst anhand der Fig. 1a-1e verschiede­ ne beispielhafte Aufgabenstellungen erläutert, bei welchen je­ weils Objekte in veränderlichen Ansichten und/oder Zuständen darzustellen sind. Die vorliegende Erfindung kommt insbesondere bei Verfahren, Computerprogrammprodukten und/oder Computersy­ stemen zur Realisierung solcher Darstellungen vorteilhaft zum Einsatz. Anhand der Fig. 8a und 8b werden vorteilhafte Ausge­ staltungen der Erfindung geschildert. Die Fig. 2a-7c und 9a-10d betreffen schließlich ein Beispiel für ein technisches Um­ feld, in welchem die Erfindung vorteilhaft zum Einsatz kommt.
Beispiele für darzustellende veränderliche Objektansichten und/oder Zustände
Fig. 1a zeigt ein erstes Objekt 100, welches die Gestalt eines Würfels hat. Das erste Objekt 100 ist in einer Außenansicht dargestellt. Daneben ist ein dreidimensionales kartesisches Ko­ ordinatensystem mit drei zueinander senkrechten Achsen X, Y und Z eingezeichnet. Gegenstand einer veränderlichen Objektdarstel­ lung kann die Drehung des ersten Objektes 100 um die senkrechte Achse Z (angedeutet durch einen ersten und einen zweiten Pfeil P1, P2) sein. Zusätzlich oder stattdessen können Drehungen des Objektes 100 um eine der horizontalen Achsen X und/oder Y (angedeutet durch einen dritten und einen vierten Pfeil P3 und P4; in gleicher Weise möglich sind auch Drehungen um eine be­ liebige andere Achse) darzustellen sein. Das erste Objekt 100 wäre also in veränderlicher räumlicher Ansicht zu zeigen.
Fig. 1b zeigt ein zweites Objekt 110, welches die Gestalt des Aufrisses eines Raumes hat. Das zweite Objekt 110 ist in einer kombinierten Innen- und Außenansicht dargestellt. Gegenstand einer veränderlichen Objektdarstellung können Drehungen des zweiten Objektes 110 um die gleichen Achsen wie beim ersten Ob­ jekt 100 sein. Dabei kann eine kombinierte Innen- und Außenan­ sicht ebenso wie eine bloße Innenansicht gezeigt werden. Das zweite Objekt 110 wäre also ebenfalls in veränderlicher räumli­ cher Ansicht zu zeigen.
Fig. 1c zeigt ein drittes Objekt 120, welches die Gestalt einer Hauswand hat. Gegenstand einer veränderlichen Objektdarstellung können Verschiebungen des dritten Objektes 120 längs der hori­ zontalen, zum dritten Objekt parallelen Achse Y oder einer be­ liebigen anderen Achse sein (angedeutet durch einen fünften und sechsten Pfeil P5 und P6).
Fig. 1d zeigt ein viertes Objekt 130 und ein fünftes Objekt 140. Beide Objekte 130 und 140 haben die gleiche Gestalt und Position, aber eine unterschiedliche Farbe. Gegenstand einer veränderlichen Objektdarstellung kann die Überführung des vier­ ten Objektes 130 in das fünfte Objekt 140 sein (angedeutet durch einen siebten Pfeil P7).
Fig. 1e zeigt ein sechstes Objekt 150, welches die Gestalt ei­ nes Zahnrades hat, und ein siebtes Objekt 160, welches die Ge­ stalt einer Feder hat. Zahnrad 150 und Feder 160 greifen inein­ ander. Bei einer Verdrehung des Zahnrades 150 (angedeutet durch einen achten Pfeil P8) werden die Objekte 150 und 160 in einen gegenüber dem Ausgangszustand veränderten Zustand überführt (angedeutet durch einen neunten Pfeil P9), in welchem das Zahn­ rad 150' gegenüber seinem Ausgangszustand verdreht und die Fe­ der 160' verbogen erscheint. Diese Überführung kann Gegenstand einer veränderlichen Objektdarstellung sein. Zu zeigen wäre al­ so eine zeitliche Veränderung des Zustandes der Objekte 150 und 160.
Die beschriebenen Gegenstände veränderlicher Objektdarstellun­ gen beschränken sich nicht auf die dargestellten Objekte 100, 110, 120, 130, 140 und 150. Diese können vielmehr durch belie­ bige andere Objekte ersetzt werden. Die beispielhaft angeführ­ ten Objekte 100, 110, 120, 130, 140 und 150 dienen also nur der Illustration. Auch können die unterschiedlichen Veränderungen von Objektansichten und -zuständen beliebig miteinander kombi­ niert werden. Ferner sind weitere Veränderungen denkbar.
Für das Folgende kommt es nur darauf an, daß überhaupt Verände­ rungen von Objektansichten und/oder -zuständen darzustellen sind. Wie diese im einzelnen vonstatten gehen, ist bedeutungs­ los. Soweit auf konkrete Änderungen Bezug genommen wird, dient dies stets nur dem leichteren Verständnis der Darstellung der Erfindung.
Beispiele für Computersysteme, in welche die Erfindung imple­ mentiert ist
Fig. 2a zeigt einen erstes Computersystem in der Form eines er­ sten Computers 200 mit einem Monitor 210 und einer Computermaus 220. Anstelle des Monitors 210 können beliebige andere Anzeige­ mittel, wie beispielsweise ein Projektor, verwendet werden. An­ stelle der Computermaus können beliebige andere Cursorpositio­ nierungsmittel, wie beispielsweise ein Track-Ball, ein Touch- Pad, ein Maus-Stick, ein Touch-Screen oder Pfeiltasten einer Computertastatur (nicht dargestellt) eingesetzt werden.
Der erste Computer 200 weist einen ersten Datenspeicher in der Form eines Plattenspeichers 230, wie etwa einer Festplatte, CD oder Diskette, und einen zweiten Datenspeicher in der Form ei­ nes Haupt- und/oder Arbeitsspeichers 240 auf (angedeutet durch einen gestrichelten zehnten Pfeil P10). Zwischen dem Plattm- und dem Arbeitsspeicher 230 und 240 werden Daten übertragen (angedeutet durch einen elften Pfeil P11). Die Übertragung er­ folgt beispielsweise über übliche Schnittstellen, Bussysteme und/oder Netzwerkkomponenten (nicht dargestellt). Die Be- und/oder Verarbeitung von Daten erfolgt über eine CPU (Central Processing Unit), welche ebenfalls nicht dargestellt ist. Schließlich kann der erste Computer 200 alle weiteren üblichen Komponenten wie etwa weitere Plattenspeicher, eine Graphikkarte etc. umfassen.
Auf dem Plattenspeicher 230 befinden sich Daten. Auf diese Da­ ten kann der erste Computer 200 über Kontrollmittel zugreifen. Hierzu werden jeweils ein Lesekopf (nicht dargestellt) in den Bereich des gewünschten Plattensektors gefahren, und dann die gesuchten Daten ausgelesen. Dieser Vorgang ist wegen des dafür notwendigen Verfahrens des Lesekopfes zum Auffinden der Daten zeitintensiv. Eine realistische Zugriffszeit liegt in der Grö­ ßenordnung von 200 ms für Floppy-Disketten, 5-20 ms für Fest­ platten und 50 ms für CD-ROM.
Fig. 2b zeigt eine weiteres Computersystem, in welches die vor­ liegende Erfindung implementiert ist. Das System umfaßt wieder­ um den ersten Computer 200 mit Monitor 210 und Computermaus 220. Insoweit gilt das oben Gesagte. Auch weist der erste Com­ puter 200 wiederum einen Arbeitsspeicher 240 auf. Ein Platten­ speicher 230 ist hingegen in diesem Beispiel nicht erforderlich (kann aber vorgesehen sein). Stattdessen ist der erste Computer 200 nun beispielsweise über eine serielle oder parallele Schnittstelle oder über eine Netzwerkkarte mit einem zweiten Computer 250 verbunden.
Der zweite Computer 250 kann Teil einer direkten PC-Verbindung, weiterer Computer eines Clusters oder Server eines Netzwerks sein. Der zweite Computer 250 weist einen Datenspeicher (nicht dargestellt) auf, auf welchem Daten abgelegt sein können. Zwi­ schen diesem Datenspeicher und dem Arbeitsspeicher 240 auf dem ersten Computer 200 werden Daten übermittelt (angedeutet durch einen zwölften Pfeil P12). Hierzu wird ein übliches Protokoll benutzt, beispielsweise ein Basisprotokoll für eine einfache physische Netzwerkverbindung wie Ethernet oder Token Ring oder ein Internetprotokoll wie ein TCP/IP- oder das http-Protokoll.
Bedingt durch die Übertragungsraten und Auslesezeiten aus dem Datenspeicher in dem zweiten Computer 250 sind auch diese Vor­ gänge zeitintensiv.
Fig. 2c zeigt schließlich ein drittes Computersystem, in wel­ ches die vorliegende Erfindung implementiert ist. Auch dieses System umfaßt den ersten Computer 200 nebst Monitor 210 und Computermaus 220 entsprechend den obigen Ausführungen. Anstelle eines zweiten Computers 250 ist der erste Computer 200 nunmehr an ein übergreifendes Netzwerk, beispielsweise das Internet an­ geschlossen. Dieses umfaßt eine Mehrzahl von Computern, ange­ deutet durch einen dritten, vierten und n-ten Computer 260, 270 bzw. 280. Zwischen dem ersten Computer 200 und den weiteren Computern 260, 270 und 280 werden Daten übertragen (angedeutet durch dreizehnte Pfeile P13, P13/1, P13/2 und P13/n). Außerdem werden zwischen den weiteren Computern 260, 270 und 280 Daten übertragen (angedeutet durch eine vierzehnten Pfeil P14). In­ folgedessen kann die Datenübertragung zwischen dem ersten Com­ puter 200 und einem der weiteren Computer 260, 270 und 280 auch mittelbar über andere Computer 260, 270 und/oder 280 erfolgen. Die Übertragungen erfolgen beispielsweise nach einem Internet- Protokoll wie ein TCP/IP-Protokoll. Dabei agiert der erste Com­ puter 200 beispielsweise als Clientrechner, und der dritte Com­ puter 260 als Server. Für jede Übertragung wird zwischen dem ersten Computer 200 und dem dritten Computer 260 dann eine Ver­ bindung durch mehrfachen Paketaustausch ausgehandelt. Dann erst werden die Daten übertragen, so daß auch dieser Vorgang zeitin­ tensiv ist.
Der genannte Paketaustausch für Übertragungen umfaßt insbeson­ dere die folgenden Schritte: zunächst muß eine sogenannte URL (ein Uniform Resource Locator, also eine eindeutige Adresse wie http:/ / www.adresse.com/filename.html) in den Protokolltyp, den Rechnernamen und den Filmamen getrennt werden. Aus dem Domain- Klartextnamen des Rechners (hier: www.adresse.com) muß die zu­ gehörige IP-Adresse (Internet Protokoll Adresse, also die nume­ rische Adresse, unter der ein bestimmter Rechner im Internet erreichbar ist, wie etwa 145.96.123.97) ermittelt werden. Hier­ zu werden in aufsteigender Reihenfolge immer umfassendere Doma­ in Name Server solange per Anfragedatenpaket abgefragt, bis in einer Datenbank die zur URL gehörige IP-Adresse gefunden wird. Sodann muß ein verfügbarer Weg durch das Internet gefunden wer­ den, über welchen der Clientrechner 200 und der Severrechner 260 miteinander Daten austauschen können. Hierzu muß der Cli­ entrechner 200 an den Serverrechner über einen möglichen Weg zunächst ein Datenpaket schicken, mit dem er seine Absicht an­ kündigt, eine TCP (Transmission Control Protocol) Verbindung aufzubauen. Dieses wird vom Sever 260 per Datenpaket quittiert, sofern er die Verbindung akzeptiert. Hierbei treten weitere Verzögerungen auf, bis der Server die erforderlichen Vorberei­ tungen abgeschlossen hat. Der Empfang der Quittung wird wieder­ um vom Client 200 quittiert. Erst dann werden die eigentlichen Daten übertragen. Sofern eines der Anfragepakete verlorengeht, beginnt die gesamte Prozedur auf einem anderen möglichen Ver­ bindungsweg von neuem.
Die oben genannten Beispiele für Computersysteme, in welche die vorliegende Erfindung - wie unten näher ausgeführt wird - imple­ mentiert ist, sind keine abschließende Aufzählung und können auch untereinander beliebig kombiniert werden. Sie dienen le­ diglich als Illustrationen für ein verbessertes Verständnis der Erfindung.
Beispiel für einen Browser, welcher im Zusammenhang mit der Er­ findung benutzt wird
Fig. 3 zeigt eine schematische Darstellung der Arbeitsweise ei­ nes Browsers 300. Hierbei handelt es sich um einen üblichen Browser wie den Netscape Navigator 4.x, den Netscape 6.0, den Microsoft Internet Explorer 4.x, 5.x, eine Vorläufer- oder Nachfolgerversion hiervon, oder ein anderes Browser- Softwareprodukt. Der Browser 300 ist als Software auf einem der beschriebenen Computersysteme implementiert und hat Zugriff auf den Arbeitsspeicher 240 des ersten Computers 200. Hierüber er­ hält er vom Plattenspeicher 230, vom zweiten Computer 250 und/oder von einem der weiteren Computer 260, 270, 280 den Code 310 einer Browserseite einschließlich aller darzustellenden In­ formationen. Dieser Code 310 basiert üblicherweise auf einer einfachen Dokumentbeschreibungs-Sprache namens HTML (HyperText Markup Language; in Betracht kommt auch eine beliebige Weiter- oder Alternativentwicklung hiervon), die ihrerseits auf einem Subset einer allgemeineren Sprache namens SGML (Standardized Generalized Markup Language) beruhen kann. Er wird daher im folgenden aus Gründen der Einfachheit aber ohne eine Einschrän­ kung der Erfindung als HTML-Code 310 bezeichnet.
Ein HTML-Code enthält als solcher keine Konstrukte zur Pro­ grammsteuerung (für Abfragen, Sprünge, Subroutinen etc.) und keine exakte Beschreibung einer Dokumentansicht. Stattdessen legt er nur einige globale Attribute für Überschriften, Fließ­ text, Positionierung etc. fest, die auf unterschiedlichen Plattformen oder Browsern zu recht verschiedenen Darstellungen ein- und desselben Dokuments führen können. HTML gibt einem Browser also nur Hinweise, wie er ein entsprechend abgefaßtes Dokument darstellen kann; über die tatsächliche Ausgabe ent­ scheidet jeder Browser je nach Implementation und Benutzerein­ stellungen weitgehend selbst. Die Darstellung erfolgt als Browserseite 320 auf einem Anzeigemittel wie dem Monitor 210.
Die Browserseite 320 enthält neben den oder statt der Textzei­ len 322 auch Graphiken 324. Hierzu werden zusätzlich zu dem HTML-Code 310 auch Graphiken in den Arbeitsspeicher 240 gela­ den. Der HTML-Code 310 enthält Informationen darüber, welche Graphiken 360 in welchem Bereich der Browserseite 320 wie ange­ zeigt werden sollen. Solange die Graphik 360 nicht oder nicht vollständig im Arbeitsspeicher 240 zur Verfügung steht, wird üblicherweise stattdessen ein Icon oder eine Leerfläche im ent­ sprechenden Bereich angezeigt.
Die Graphiken 360 werden in einem vom Browser unterstützten Bilddatenkomprimierungsformat wie JPG (Joint Photographic Ex­ pert Group; ein nach der dafür zuständigen ISO/CCITT-Kommission benanntes Grafikformat), GIF (Graphics Interchange Format) oder PNG (Portable Network Graphics) geladen. Ein solches unter­ stütztes Format kann vom Browser ohne Zuhilfenahme weiterer Programme wieder dekomprimiert und auf einen unmittelbar dar­ stellbaren Binärcode übertragen werden.
Der HTML-Code umfaßt außerdem bzw. greift außerdem zu auf ver­ schiedene HTML-Erweiterungen 330, 340 und 350. Hierbei handelt es sich beispielsweise um Dynamic HTML, welches Technologien wie JavaScript, Jscript, VBScript, CSS oder Layer umfaßt und welche miteinander verknüpft werden können. Solche HTML- Erweiterungen erlauben es, dynamische Inhalte in HTML-Seiten einzufügen. Bei JavaScript, JScript und VBScript handelt es sich um nicht all zu komplexe Script-Sprachen, mit welchen eine HTML-Seite um echte Programme erweitert werden kann. Die Spra­ chen sind jedoch weder für komplexe Anwendungen noch für eigen­ ständige Programme gedacht. JavaScript-, Jscript- oder VBScript-Programme werden im Klartext in eine HTML-Seite inte­ griert, mit ihr in den Arbeitsspeicher 240 geladen und auf dem ersten Computer 200 durch einen Script-Interpreter ausgeführt. Einem Browser, dem der zugehörige Script-Interpreter fehlt, kann mit dem Script nichts anfangen. Aktuelle Browser wie die oben bezeichneten verfügen aber üblicherweise über solche Script-Interpreter. CSS beinhaltet eine Formatvorlagentechnolo­ gie. Layer sind solche Teile einer Browserseite, die relativ oder absolut positioniert und unabhängig von anderen Elementen auf der Seite bewegt werden können. Mehrere Layer können sich wie Transparenzfolien überlappen und gegenseitig verdecken.
Alle vorstehend als Beispiele aufgeführten, vom Browser ohne Erweiterungen verarbeitbaren bzw. darstellbaren Datenformate, wie auch alle weiteren Datenformate mit dieser Eigenschaft, werden im folgenden als Browserdatenformate bezeichnete.
Die genannten und weitere HTML-Erweiterungen können - wie ge­ sagt - von aktuellen Browsern üblicherweise unmittelbar, d. h. ohne Notwendigkeit zusätzlicher Plug-Ins (ein Plug-In ist ein dynamisch hinzuladbares Modul, das einen Browser um bestimmte Fähigkeiten erweitert) oder von Virtual Java Machines (eine Virtual Machine ist ein Interpreter für Java Anwendungen, wel­ cher ähnlich wie ein Plug-In in einen Browser implementiert werden kann), verarbeitet werden. Darüber hinaus kann eine HTML-Seite den Browser veranlassen, Java Applets oder Programme auszuführen, welche solche Virtual Machines bzw. Plug-Ins als Ergänzung für den Browser erforderlich machen.
Ein Java-Programm üblicherweise wird einmalig kompiliert. Der resultierende binäre Bytecode wird durch einen Befehl im HTML Code vom Browser nachgeladen und ausgeführt. Hierzu ist ein Ja­ va Interpreter, etwa eine Virtual Machine erforderlich. Wesent­ licher Vorteil eines Java-Programms ist seine Prozessor- und Plattformunabhängigkeit. Das gleiche Compilat kann also auf In­ tel-PCs unter Windows oder Linux, auf Power Macs oder auf Al­ pha-Maschinen ausgeführt werden. Plug-Ins sind demgegenüber üb­ licherweise plattformabhängig. Ergänzend sei angemerkt, daß ebenso wie Java-Programme auch HTML-Codes und Java-Script plattformunabhängig sind.
Zusammenfassend zeigt Fig. 3, wie der HTML-Code 310, welcher HTML-Erweiterungen 330, 340 und 350 umfaßt (angedeutet durch gestrichelte Pfeile P15, P16 und P17), im Arbeitsspeicher 240 für den Browser 300 verfügbar gemacht wird (angedeutet durch einen achtzehnten Pfeil P18). Zusätzlich erhält der Browser 300 dort Bilder 360 (angedeutet durch Pfeil P20). Hieraus erzeugt der Browser 300 die Browserseite 320, welche auf dem Monitor 210 angezeigt wird und welche Textzeilen 322 und ein Bild 324 umfaßt.
Bevorzugtes Verfahren - Ausführungsbeispiel
Fig. 4 zeigt eine Übersicht über ein Verfahren, in welchem die Erfindung zum Einsatz kommt. Das Verfahren dient der Erzeugung einer veränderlichen Darstellung eines Objektes, insbesondere in veränderlicher räumlicher Ansicht. Beispielhaft wird dabei das erste Objekt 100 aus Fig. 1a in veränderlicher räumlicher Ansicht dargestellt. Es könnte aber auch jedes andere Objekt aus den Fig. 1a-1e, oder ein beliebiges weiteres Objekt, in beliebig veränderlicher Weise nach den gleichen Grundsätzen dargestellt werden.
Das erfindungsgemäße Verfahren ist in eines der Computersysteme aus Fig. 2a-2c implementiert und wird im ersten Computer 200 ausgeführt. Zur Implementierung wird das Verfahren z. B. ganz oder teilweise in einem entsprechenden JavaScript, Jscript, VBScript oder einem anderen geeigneten ScriptCode abgebildet, welcher in den HTML-Code 310 eingefügt wird. Der Scriptcode wird unter Verwendung weiterer Browserroutinen von dem Browser 300 auf dem Computer 200 ausgeführt. Als Anzeigemittel dienen der Monitor 210 und als Cursorpositionierungsmittel die Compu­ termaus 220.
Die einzelnen Verfahrensschritte werden nachfolgend unter wei­ terer Bezugnahme auf die Fig. 5a-9c erläutert.
Erläuterungen zum ersten Verfahrensschritt
In einem ersten Schritt werden Daten einer Mehrzahl von Bildern 400, 402 und 404, welche jeweils das erste Objekt 100 in unter­ schiedlicher Ansicht oder in einem unterschiedlichen Zustand darstellen, in einem Browserdatenformat, insbesondere in einem vom Browser unterstützten Bilddatenkomprimierungsformat wie JPG, GIF oder PNG, im ersten Datenspeicher 230 oder auf einem Datenspeicher in einem der weiteren Computer 250, 260, 270 und/oder 280 bereitgestellt (angedeutet durch einen einundzwan­ zigsten Pfeil P21).
Die Anzahl der Bilder 400, 402, 404 richtet sich dabei nach dem Darstellungszweck und den äußeren Gegebenheiten (von den glei­ chen Faktoren hängen letztlich auch die Auswahl einer geeigne­ ten Bildgröße oder der Komprimierungsfaktor bei verlustbehafte­ ten Komprimierungsverfahren wie JPG ab):
Je nach Darstellungszweck kann das Verfahren grundsätzlich auch mit nur zwei Bildern durchgeführt werden. Damit können be­ reits alle Seiten des würfelförmigen ersten Objektes 100 ge­ zeigt werden. Um eine vollständige Drehung des ersten Objekts 100 um eine Achse Z darzustellen und dabei bei einem Beobachter einen überhaupt ausreichenden Eindruck einer Drehung (und nicht einfach der Anzeige mehrerer Bilder) hervorzurufen, hat sich eine Zahl von wenigstens 12 Bildern als zweckmäßig herausge­ stellt. Um einen guten Eindruck einer kontinuierlichen Drehung zu erzeugen, ist eine Zahl von wenigstens 24 Bildern gut geeig­ net. Wenn das Objekt viele Details aufweist, welche im Laufe der Drehung genau dargestellt werden sollen, wird eine größere Zahl von Bildern benötigt. Wenn anstelle der Außenansicht eines Objektes wie im Falle des ersten Objektes 100 die Innenansicht eines Raumes wie im Falle des zweiten Objektes 110 während ei­ ner vollen Umdrehung um eine Achse Z gezeigt werden soll, er­ hält man ab einer Zahl von 36 Bildern einen guten Dreheindruck.
Auf der anderen Seite ist für eine erfindungsgemäße Darstel­ lungstechnik als wichtigste äußere Gegebenheit die erforderli­ che Übertragungszeit für die Daten zu berücksichtigen, zumal diese ja von dem ersten Datenspeicher 230 (oder 250, 260, 270, 280) in den Arbeitsspeicher 240 geladen werden müssen. Sofern die Darstellung etwa zu Werbezwecken in eine Webseite eingebet­ tet werden soll und zu erwarten ist, daß ein Benutzer diese Seite nur kurz betrachtet, so empfiehlt sich eine geringere Zahl von Bildern. Sofern umgekehrt etwa eine veränderliche Dar­ stellung eines Objektes in einer Business- to Business Anwen­ dung mit hoher Übertragungsrate zum Tragen kommt, kann eine größere Anzahl von Bildern zweckmäßig sein (beispielsweise kann es hier günstiger sein, einem auswärtigen Techniker eine de­ taillierte Ansicht eines zu reparierenden Objektes mit relativ hohem Aufwand zu übertragen, als ihm telefonisch Anweisungen zu geben).
Bei anderen Darstellungen als Drehungen ist die geeignete Bil­ derzahl schließlich weitgehend abhängig vom Einzelfall.
Im vorliegend beschriebenen Ausführungsbeispiel wird eine volle Drehung des ersten Objektes 100 um die Z-Achse dargestellt. Hierfür werden 24 Bilder verwendet. Die Bilder können mittels eines Computers erzeugt, von einem realen Objekt per Foto auf­ genommen oder als Zeichnungen etc. zur Verfügung gestellt wer­ den. Aus Gründen der Einfachheit wird im folgenden nur die Vor­ gehensweise bei der Aufnahme der Photos beschrieben. Eine Simu­ lation müßte stattdessen entsprechende Bilder erzeugen; eine Zeichnung müßte entsprechende Bilder umfassen. Die genannten Möglichkeiten, Bilder zu erzeugen, wie auch alle weiteren Mög­ lichkeiten können ohne Einfluß auf die Erfindung auch beliebig miteinander kombiniert werden.
Für die Aufnahme der Photos wird das Objekt 100 beispielsweise auf einem um die Z-Achse drehbaren Untergrund gelagert. Dann wird eine Kamera in einem gewünschten Abstand und Blickwinkel fest positioniert. Für jede einzelne Aufnahme wird das Objekt 100 um einen gleichmäßigen Drehwinkel in gleicher Drehrichtung um die Z-Achse weitergedreht. Um dabei mit 24 Bildern eine Rundumdrehung darzustellen (wobei das Bild zum Ausgangsdrehwin­ kel von 0° gleich dem Bild zum Enddrehwinkel von 360° ist), be­ trägt der Drehwinkel dabei 360°/24 = 15°.
Für eine entsprechende Darstellung der Innenansicht des zweiten Objektes 110 müßte man umgekehrt verfahren, d. h. die Kamera wä­ re an einer gewünschten Position im Raum 110 drehbar um die Z- Achse gelagert. Da es aber im Ergebnis stets nur auf die Rela­ tivdrehung ankommt, ist im folgenden allgemein nur von einer Drehung des Objektes 100 oder 110 um die Z-Achse die Rede.
Eine solche zusammengehörige Mehrzahl von Bildern wird im fol­ genden als Bildfolge bezeichnet. Im Beispiel umfaßt eine solche Bildfolge stets eine Mehrzahl von Objektansichten aus einer Rundumdrehung um die Z-Achse. Es ist aber möglich, das Verfah­ ren nach den gleichen Grundsätzen mit beliebig anders definier­ ten Bildfolgen auszuführen. Beispielsweise können sich die Bil­ der innerhalb einer Bildfolge auch durch farbliche Modifikatio­ nen, Modifikationen der Gestaltung und/oder unterschiedliche Zustände des dargestellten Objektes unterscheiden. Auf diese Weise ist es beispielsweise möglich, eine Maschine in der Form veränderlich darzustellen, daß man die Maschine vorwärts und rückwärts laufen lassen kann. Allgemein wäre es möglich, eine zeitliche Entwicklung eines Objektes darzustellen.
Um das Verfahren auszuweiten, kann auch eine Mehrzahl von Bild­ folgen verwendet werden. Dies wird anhand der Fig. 5a-5c verdeutlicht.
So kann eine erste Bildfolge entsprechend Fig. 5a eine volle Drehung des ersten Objektes 100 um die Z-Achse in einer ersten Relativlage des ersten Objektes 100 zur Z-Achse in Schritten von jeweils 15° wie oben beschrieben darstellen (angedeutet durch den ersten Pfeil P1). Eine zweite Bildfolge kann entspre­ chend Fig. 5b eine volle Drehung des ersten Objektes 100' um die Z-Achse in einer zweiten Relativlage des ersten Objektes 100' zur Z-Achse in Schritten von jeweils 15° wie oben be­ schrieben darstellen (wiederum angedeutet durch den ersten Pfeil P1). Wird eine Mehrzahl von Bildfolgen entsprechend den Fig. 5a und 5b definiert, so ist es möglich, im Ergebnis eine 4-Π-Drehung, d. h. jeweils eine volle Drehung um wenigstens zwei verschiedene Raumachsen und somit eine Drehung in jede be­ liebige räumliche Lage, darzustellen. Für die einzelnen Bild­ folgen wird dabei jeweils das erste Objekt 100 gegenüber der Z- Achse um eine zweite, insbesondere zur Z-Achse senkrechte Dreh­ achse verkippt. Alternativ kann eine Bildfolge auch nur eine Teildrehung und/oder eine andere Bewegung des dargestellten Ob­ jektes 100' umfassen.
Zusätzlich oder stattdessen kann eine zweite Bildfolge das Ob­ jekt 100" wie in Fig. 5c angedeutet in einer anderen Farbe oder allgemein nach einer Veränderung, aber in der gleichen Re­ lativlage zur Z-Achse darstellen. Beispielsweise bei der Dar­ stellung eines Autos kann eine Bildfolge das Auto mit geschlos­ senen Türen und Motorhaube darstellen. Weitere Bildfolgen kön­ nen jeweils das Objekt mit einer oder mit mehreren geöffneten Türen und/oder Motorhaube darstellen. Wieder weitere Bildfolgen entsprechen dann etwa den bisher genannten Bildfolgen, zeigen aber das Objekt in unterschiedlicher Farbe. Schließlich können diese Veränderungen auch mit denen entsprechend Fig. 5a und 5b kombiniert werden, so daß das Objekt in unterschiedlichen Rela­ tivlagen zur Z-Achse und in unterschiedlichen Zuständen gezeigt wird. Daneben ist es - wie schon gesagt - auch möglich, ganz an­ ders definierte Bildfolgen zu verwenden.
Erläuterungen zum zweiten Verfahrensschritt
In einem zweiten Verfahrensschritt werden die Bilder 400, 402, 404 insbesondere unter Verwendung einer Datenübertragungsrouti­ ne des Browsers 300 aus dem ersten Datenspeicher 230 (bzw. 250, 260, 270 und/oder 280) in einen zweiten Datenspeicher, nämlich den Arbeitsspeicher 240, übertragen (angedeutet durch einen zweiundzwanzigsten Pfeil P22).
Bei der Übertragung treten zwangsläufig die oben geschilderten Verzögerungen auf. Diese wirken sich insbesondere bei der Ein­ zelübertragung von beispielsweise 24 Bildern 400, 402, 404 aus einer Bildfolge negativ aus. Hierdurch verbietet sich in den meisten Fällen eine veränderliche Objektdarstellung, welche darauf basiert, jeweils das Bild nachzuladen, welches eine dar­ zustellende Objektansicht beinhaltet. Eine solche Darstellung wäre ruckhaft und nicht fließend, so daß ein Dreheindruck aus­ bliebe.
Um dem abzuhelfen, kann man zunächst alle Bilder 400, 402, 404 einer Bildfolge einzeln übertragen und nach Abschluß der Über­ tragung die Darstellung beginnen. Auf diese Weise würde man zwar eine fließende Darstellung erhalten. Die vorgeschaltete Ladezeit ist jedoch relativ lang.
Eine verbesserte Lösung besteht darin, die Bilder 400, 402 und 404 zu einem Paket zusammenzupacken und dann im Arbeitsspeicher 240 wieder zu entpacken. Hierzu ist jedoch nach dem Stand der Technik ein gesondertes Entpackungsprogramm erforderlich, wel­ ches zu weiteren Umständen (nämlich die Installation, der zu­ sätzliche Einsatz, sowie weitere Kosten) und Kompatibilitäts­ problemen führt. Vorzugsweise wird daher im beschriebenen Aus­ führungsbeispiel der nachfolgend anhand von Fig. 6a und 6b dar­ gestellte Ansatz gewählt.
Zunächst werden im Beispiel - wie in Fig. 6a durch Pfeile P23, P24 und P25 angedeutet - die Bilder 400, 402 und 404 zu einem Bildstreifen 600 zusammengefügt. Dies kann beispielsweise mit­ tels eines vorzugsweise insofern automatisierten Graphikpro­ gramms erfolgen. Der Bildstreifen 600 entspricht also einem breiten Bild, welches sich aus den Einzelbildern 400, 402 und 404 zusammensetzt (anstelle des Bildstreifens 600 können auch eine Bildebene, d. h. mehrere Bildstreifen nebeneinander, so daß die Bilder eine n.m Bilder große Fläche überdecken, oder eine beliebige andere Zusammensetzung gewählt werden). Der Bild­ streifen 600 wird dann als solcher in einem Browserdatenformat, insbesondere in einem vom Browser unterstützten Bilddatenkom­ primierungsformat wie JPG, GIF oder PNG, im ersten Datenspei­ cher 230 oder auf einem Datenspeicher in einem der weiteren Computer 250, 260, 270 und/oder 280 zut Übertragung bereitge­ stellt. Allgemeiner gesagt werden nach diesem Ansatz also meh­ rere Datensätze, z. B. Bilddatensätze, in einem Browserdatenfor­ mat zu einem Datenpaket zusammengefaßt und im ersten Datenspei­ cher 230 bzw. 250, 260, 270 und/oder 280 zur Übertragung be­ reitgehalten.
Denkbar ist es nun, wie in Fig. 6a angedeutet, stets alle Bil­ der einer Bildfolge oder gar von mehreren Bildfolgen zu einem Bildstreifen 600 zusammenzufügen. Hierdurch werden durch einen Verbindungsaufbau bzw. durch die Einstellung eines Lesekopfes bedingte Verzögerungen minimiert. Es sind jedoch regelmäßig auch noch andere Aspekte zu berücksichtigen. So können bei ei­ ner Internetübertragung gerade in Stoßzeiten einzelne ausgehan­ delte Verbindungen unterschiedlich schnell sein. Es besteht al­ so die Gefahr, daß das gesamte Datenpaket über eine besonders langsame Verbindung übertragen wird (dieser Aspekt ist aber nur bei einer Internetübertragung und nicht beim Laden von einem Plattenspeicher 230 zu berücksichtigen). Daneben wird dem Be­ nutzer bei einer Übertragung mehrerer Pakete anstelle eines großen Paketes mehr Aktivität vermittelt, was dazu führen kann, daß er eher eine größere Wartezeit in Kauf nimmt. Vor diesem Hintergrund wird im beschriebenen Beispiel vorgeschlagen, wie in Fig. 6b angedeutet, jeweils 6 Bilder zu einem Bildstreifen zusammenzufügen (angedeutet durch Pfeile P26, P27 und P28), so daß eine Bildfolge von 24 Bildern in 4 Bildstreifen 610, 620, 630 und 640 zu je 6 Bildern übertragen wird.
Zusätzlich oder als Teil des Datenpaketes werden Informationen über die Struktur des Datenpaketes im Hinblick auf die einzel­ nen Datensätze im ersten Datenspeicher zur Übertragung bereit gehalten. Dabei können die Strukturinformationen Abstandsanga­ ben und/oder Koordinatenangaben jeweils bezogen auf den Bild­ streifen und/oder die Bildebene umfassen. Diese Informationen können explizit vorliegen. Es ist aber auch möglich, etwa in einem Javascript, einem Jscript oder einem VBScript innerhalb einer HTML-Seite 310, welche ebenfalls in den Arbeitsspeicher 240 übertragen wird, nur die äquivalente Information vorzuse­ hen, daß beispielsweise ein Bildstreifen 610, 620, 630 oder 640 aus sechs nebeneinander liegenden, gleich großen Bildern be­ steht.
In entsprechender Weise wie die beschriebenen Bilder 400, 402, 404 können grundsätzlich alle Arten von Daten zusammengefaßt werden, insbesondere Audiodatensätze zu Audiostreifen etc. Um nach der Übertragung in den Arbeitsspeicher 240 die Daten­ sätze 610, 620, 630, 640, welche in einem vom Browser 300 un­ terstützten Bilddatenkomprimierungsformat vorliegen, verwenden zu können, werden sie zunächst vom Browser 300 ohne Zuhilfenah­ me zusätzlicher Programme dekomprimiert. Um dann aus den Bild­ streifen 610, 620, 630 bzw. 640 und mittels der zugehörigen Strukturinformationen einzelne Datensätze, d. h. die Daten ein­ zelner Bilder 400, 402 und 404, auszusondern und diese einzeln darzustellen, kann man nun beispielsweise eine Clipping-Routine und die übertragenen Strukturinformationen verwenden. Hierbei kann man beispielsweise wie nachfolgend anhand von Fig. 7a bis 7c beschrieben, vorgehen:
Zunächst wird ein erstes Bild 400 des Bildstreifens 610 in ei­ nem Browserfenster angezeigt (angedeutet durch Pfeil P29). Hierzu wird in dem Browserfenster ein Darstellungsbereich für das Bild 400 definiert. Dieser Darstellungsbereich entspricht den Ausmessungen eines Bildes und wird in den Fig. 7a-7c durch zwei vertikale Begrenzungslinien b1 und b2 und zwei horizontale Begrenzungslinien b3 und b4 eingegrenzt. Der Bildstreifen 610 (oder eine entsprechende Bildebene etc.) wird in Bezug auf das Browserfenster mittels einer Schieberoutine und unter Verwen­ dung der Strukturinformationen so positioniert, daß die Positi­ on eines darzustellenden Bildes 400 mit der Position des Dar­ stellungsbereichs, begrenzt durch die Begrenzungslinien b1, b2, b3 und b4, übereinstimmt. Hierfür, sowie für die Festlegung der Abmessungen des Darstellungsbereichs werden die Strukturinfor­ mationen verwendet. Das darzustellende Bild 400 wird dann unter Verwendung der Clippingroutine aus dem Datenpaket 610 ausgeson­ dert und im Darstellungsbereich unter Verwendung einer Darstel­ lungsroutine des Browsers 300 dargestellt. Ein Objekt innerhalb eines erweiterten HTML-Dokumentes, welches ein Bild auf diese Weise darstellen kann und eine solche Clippingroutine aufweist, wird im Netscape Navigator beispielsweise unter der Bezeichnung "Layer" und im Internet Explorer unter der Bezeichnung "Div" zur Verfügung gestellt. Die Auswahl des ersten Bildes 400 kann nach beliebigen Kriterien erfolgen. Am einfachsten wäre es, stets das erste Bild einer Bildfolge als Startbild zu verwen­ den.
Um ein weiteres Bild 402 des Bildstreifens 610 im Darstellungs­ bereich anzuzeigen, wird der Bildstreifen 610 entsprechend ge­ genüber dem Darstellungsbereich verschoben und auf das nun dar­ zustellende Bild 402 beschnitten (in Fig. 7b angedeutet durch einen Pfeil P30). Um dabei ein Flackern zu vermeiden, wird vor­ zugsweise ein Doppelpuffersystem verwendet, so daß der Schiebe- und der Schneidevorgang im Hintergrund durchführbar sind und ein dargestelltes Bild durch ein darzustellendes Bild erst er­ setzt wird, wenn der Schiebe- und der Schneidevorgang abge­ schlossen sind. Entsprechend wird gemäß Fig. 7b während des Verschiebevorgangs weiterhin das erste Bild 400 angezeigt. So­ bald das zweite Bild 402 im Darstellungsbereich positioniert und beschnitten ist, wird anstelle des ersten Bildes in der Browserseite 320 im definierten Darstellungsbereich anstelle des ersten Bildes 400 das zweite Bild 402 angezeigt (angedeutet durch Pfeil P31 in Fig. 7c).
Für die Anzeige weiterer oder des ursprünglichen Bildes 404, 400 wird das vorstehend beschriebene Verfahren entsprechend an­ gewendet. Im Falle von Audiodaten wird entsprechend vor- und zurückgespult bzw. die Startposition angesprungen etc.
Bei der Übertragung der Bildstreifen 610, 620, 630 und 640, wie auch allgemein bei der Übertragung von Daten, insbesondere auch bei der Übertragung von Applets oder sonstigen Programmrouti­ nen, kann es geschehen, daß entweder die Übertragung nicht oder nicht vollständig durchgeführt werden kann, lange dauert, oder aber daß ein Browser im Beispiel keinen Script-Interpreter, oder im Falle eines Java Applets keine Virtual Machine oder im Falle eins sonstigen Programms ein benötigtes Plug-In nicht aufweist. In solchen Fällen wird, wie bereits oben dargelegt, in der Browserseite 320 nach dem Stand der Technik lediglich ein Icon oder eine graue Fläche angezeigt. Um diese Nachteile zu vermeiden, werden vorzugsweise im vorliegenden Beispiel die zur Erzeugung der veränderlichen Darstellung benötigten Pro­ grammelemente in die Browserseite 320 (wie auch allgemein vor­ zugsweise Programmelemente in Browserseiten) auf die nachfol­ gend anhand von Fig. 8a und 8b beschriebene Weise eingebunden:
Zunächst enthält der erste Datenspeicher 230 (bzw. 250, 260, 270 und/oder 280) neben dem HTML-Code 310 einer Browserseite 320 und den Bildstreifen 610, 620, 630 und 640 wenigstens einer Bildfolge noch ein zusätzliches Bild 800. Dieses zusätzliche Bild 800 kann der ersten darzustellenden Objektansicht entspre­ chen. Es kann darüber hinaus ein Hinweis auf eine laufende Da­ tenübertragung beinhalten. Es kann aber auch einen völlig ande­ ren Inhalt wie beispielsweise eine Werbung aufweisen.
Außerdem ist im HTML-Code 310 der Browserseite 320 ein Darstel­ lungsbereich für die Darstellung des zusätzlichen Bildes 800 definiert, sowie ein Verweis auf das zusätzliche Bild 800 über eine Bildkennung (wie den File-Namen oder Bildnamen) enthalten.
Der Darstellungsbereich entspricht dabei dem Bereich, in wel­ chem später die angestrebte veränderliche Darstellung angezeigt werden soll. Ein Aufruf hierfür erforderlicher Programmelemente ist im HTML-Code 310 zunächst nur implizit enthalten, d. h. er ist noch nicht auf die Programmelemente gelinkt, was durch die entsprechend richtige Besetzung benötigter Variablen jedoch je­ derzeit nachgeholt werden kann, Der HTML-Code 310 der Browser­ seite 320 enthält somit zunächst einen Platzhalter in der Form des zusätzlichen Bildes 800 mit einer Kennung zur Identifikati­ on des Platzhalters 800.
Der HTML-Code 310 und der Platzhalter 800 werden als erster Teil einer Datenübertragung vom ersten Speicher 230 (bzw. 250, 260, 270 und/oder 280) in den Arbeitsspeicher 240 übertragen (angedeutet in Fig. 8a durch Pfeile P32 und P33, sowie Symbole 310' und 800' im Arbeitsspeicher 240). Hierauf greift der Browser 300 durch den HTML-Code 310 gesteuert zu (angedeutet durch Pfeil P34). Er entnimmt dem HTML-Code 310' den Verweis (andeutet durch Pfeil P36) auf den Platzhalter 800' und stellt in einem Bereich der Browserseite 320 auf dem Monitor 210 den Gegenstand des Platzhalterbildes, im Beispiel die erste Ob­ jektansicht, dar.
Nach dem Laden des HTML-Codes (und damit nach, während oder vor dem Laden des Platzhalterbildes 800') wird eine Einfügeroutine aktiviert. Die Einfügeroutine ist im HTML-Code 310 vorzugsweise in der Form eines Javascriptes, Jscriptes oder VBScriptes ent­ halten. Sie entnimmt dem HTML-Code Informationen über den Platzhalter 800', wie z. B. über dessen Höhe, Breite, Position, Namen und Position innerhalb der Elementeliste des Browserfen­ sters. Außerdem startet die Einfügeroutine die Übertragung bei­ spielsweise von den vier Bildstreifen 610, 620, 630 und 640 ei­ ner Bildfolge in den Arbeitsspeicher 240 (in Fig. 8b angedeutet durch Pfeile P37, P38, P39 und P40, sowie durch Symbole 610', 620', 630' und 640' im Arbeitsspeicher 240).
Die Einfügeroutine überwacht, wann der Ladevorgang abgeschlos­ sen ist. Nach Abschluß der Übertragung aktiviert sie, sofern außerdem die Ausführungsvoraussetzungen für die veränderliche Darstellung vorliegen, die hierfür benötigten Programmelemente. Vorzugsweise sind die Einfügeroutine und die Programmelemente für die veränderliche Darstellung in derselben Script-Art abge­ bildet, da dann die Feststellung des Vorliegens der Ausfüh­ rungsvoraussetzungen für die veränderliche Darstellung (also im Beispiel das Vorhandensein eines entsprechenden Script- Intergreters) einfach dadurch erfolgt, daß die Einfügeroutine nur in diesem Fall ausgeführt wird und werden kann. Beim Star­ ten der veränderlichen Darstellung wird der Platzhalter 800 un­ ter Verwendung der Kennung des Platzhalters im HTML-Code 310 der Browserseite 320 ausfindig gemacht und durch das Programme­ lement zur Erzeugung der veränderlichen Darstellung in der Browserseite 320 ersetzt. Dabei kann der HTML-Code 310 der Browserseite 320 als solcher unverändert bleiben, so daß der. Platzhalter 800 - bildlich gesprochen - in der Darstellung über­ malt wird; es ist aber auch möglich, den HTML-Code 310 voll­ ständig neu zu generieren. Der Platzhalter 800' wird im Ergeb­ nis nicht mehr dargestellt (angedeutet durch Pfeil P36 in Fig. 8b). Stattdessen führt der Browser 300 das Programmelement aus und zeigt die angestrebte veränderliche Objektdarstellung im Bereich des Platzhalters in der Browserseite 320 im Browserfen­ ster an (angedeutet durch das Cursorzeichen 810 in der Browser­ seite 320). Ist das Programmelement jedoch nicht ausführbar, so bleibt der Platzhalter 800 sichtbar.
Als Kennung für den Platzhalter 800 wird vorzugsweise der File- Name des Platzhalters 800 ganz oder teilweise, oder aber ein anderes entsprechendes Identifikationsmerkmal wie der Element­ name verwendet.
Die geschilderte Vorgehensweise hat den Vorteil, daß, je nach Art des verwendeten Platzhalters 800, eine längere Ladedauer für einen ersten Eindruck des darzustellenden Objektes, eine Werbung, eine Lademitteilung oder eine Kombination hieraus ver­ wendet werden kann. Auch können mehrere Bilder zeitliche ge­ steuert hintereinander angezeigt werden. Im ersten Fall wird außerdem auch auf Browsern, welche die veränderliche Darstel­ lung nicht ausführen können, ein Eindruck vom Inhalt der Dar­ stellung vermittelt. Zudem werden keine unvollständigen Browserseiten angezeigt. Schließlich ist es bei der Erstellung der Browserseite 320 möglich, ohne besonderen Aufwand und nur durch Benennung des Platzhalternamens mehrere Animationen in eine Seite einzubinden.
Erläuterungen zum dritten Verfahrensschritt
Nach Abschluß der Datenübertragung für wenigstens eine voll­ ständige Bildfolge wird wenigstens ein erstes Bild 400 unter Verwendung einer Darstellungsroutine des Browsers 300 in einem Bereich einer Browserseite 320 in einem Browserfenster auf dem Monitor 210 dargestellt (angedeutet in Fig. 4 durch Pfeil P43). Dies ist möglich, weil der Browser 300 Daten aus dem Arbeits­ speicher 240 verarbeiten kann (angedeutet durch Pfeil P44 in Fig. 4). Da die Übertragung mehrerer Bildfolgen entsprechend länger dauert, wird vorzugsweise dieser Schritt ausgeführt, so­ bald die erste Bildfolge vollständig übertragen ist, und nicht auf weitere Bildfolgen gewartet. Diese werden vielmehr nach Be­ darf nachgeladen. Man kann auch schon nach der Übertragung des ersten Bildstreifens 610 einer Bildfolge oder gar eines Einzel­ bildes 400, 402 oder 404 mit der Darstellung beginnen. Dies würde jedoch im Laufe des weiteren Verfahrens zu Problemen füh­ ren, da verzögertes Nachladen zu einer ruckhaften statt flie­ ßenden Darstellung führt. Vorzugsweise wird das erste Bild 400, 402, 404 einer Bildfolge (bzgl. der Ordnung der Bilder 400, 402, 404 innerhalb einer Bildfolge siehe unten) jeweils zuerst und damit als Startbild dargestellt.
Erläuterungen zum vierten Verfahrensschritt
Der vierte Verfahrensschritt kann grundsätzlich vor oder nach der Übertragung der Bilder 400, 402, 404, etwa in Form von Bildstreifen 610, 620, 630, 640 und/oder vor der Darstellung des ersten Bildes 400 ausgeführt werden. Er beinhaltet die Zu­ ordnung der einzelnen Bilder 400, 402, 404 jeweils zu einem Ob­ jektansichtsbereich, welcher die jeweils dargestellte Objekts­ ansicht umfaßt (siehe im einzelnen weiter unten). Sofern dieser Schritt vor der Übertragung ausgeführt wird, müssen dabei er­ mittelte Zuordnungsdaten ebenfalls auf den zweiten Datenspei­ cher, d. h. in den Arbeitsspeicher 240, übertragen werden.
Der Begriff des Objektansichtsbereiches ist in diesem Zusammen­ hang weit aufzufassen. Im Falle einer veränderlichen räumlichen Darstellung eines Objektes 100, 110 bezieht er sich beispiels­ weise auf den Drehwinkelbereich, für welchen ein Bild 400, 402, 404 angezeigt wird (wie oben bereits ausgeführt, werden ja nur bestimmte Ansichten in Bildern 400, 402 und 404 abgebildet; demzufolge erfolgt eine Drehung in der Darstellung immer in Schritten, d. h. ein einzelnes Bild wird jeweils für einen be­ stimmten Drehwinkelbereich angezeigt). Im Falle der Darstellung einer Hin- und Herbewegung längs eines Motives wie in Fig. 1c gilt das Entsprechende in Bezug auf einen Verschiebebereich, sofern nicht ein kontinuierliches langes Bild erzeugt wird, aus welchem Ausschnitte gezeigt werden. Im Falle einer Veränderung von Farben etc. (vgl. Fig. 1d) oder einer zeitlichen Zustand­ sänderung (vgl. Fig. 1e) entspricht der Objektansichtsbereich dem Ausschnitt des Farbraumes oder dem zeitlichen Bereich, für welchen ein Bild angezeigt wird. Aus Gründen der Einfachheit, aber ohne Einschränkung, beziehen sich die folgenden Erläute­ rungen nur auf den Fall der drehbaren Darstellung eines Objek­ tes 100 bzw. 110. Die Objektansichtsbereiche werden also je­ weils für eine Bildfolge als Drehwinkelbereiche bezogen auf die erste Drehachse, namentlich die Z-Achse, definiert.
Im Falle der Darstellung einer vollen Umdrehung um die Z-Achse in zweckmäßigerweise gleichmäßigen Schritten wird der Betrag der Drehwinkelbereiche für eine Bildfolge jeweils durch Divisi­ on von 360° durch die Anzahl der Bilder 400, 402, 404 ermit­ telt, d. h. bei 24 Bildern ergibt sich ein Bereich von 360°/24 = 15°.
Wie oben dargelegt, stellt jedes Bild 400, 402, 404 eine Ob­ jektansicht dar, zu welcher ein Drehwinkel gehört. Diese Dreh­ winkel lauten 0°, 15°, 30°, . . . und 345°. Mit anderen Worten sind dies die Drehwinkel bzw. die zugehörigen Objektansichten, welche in den einzelnen Bildern 400, 402, 404 exakt dargestellt sind. Bei der Darstellung müssen jedoch, zumal nur eine endli­ che Zahl von Bildern zur Verfügung steht, die einzelnen Bilder 400, 402, 404 jeweils auch noch angezeigt werden, wenn über Eingabemittel wie die Computermaus 220 (dazu im einzelnen un­ ten) an sich ein leicht veränderter Drehwinkel vorgegeben wird. Zu diesem Zweck wird vorzugsweise jedem Bild 400, 402, 404 ein Drehwinkelbereich zugeordnet, in dessen Mitte der zur Objekts­ ansicht gehörige Drehwinkel liegt, und welcher sich in beide Drehrichtungen jeweils um die Hälfte des Betrages des - wie oben dargestellt berechneten - Drehwinkelbereichs erstreckt. Im Bei­ spiel mit 24 Bildern würden den einzelnen Bildern 400, 402, 404 also die folgenden Drehwinkelbereiche zugeordnet werden:
0°±7,5°, 15°±7,5°, 30°±7,5°, . . . und 345°±7,5°.
Die Zuordnung kann explizit erfolgen, d. h. die Winkelbereiche werden berechnet und die resultierenden Daten dem Browser 300 zur Verfügung gestellt. Sie erfolgt jedoch vorzugsweise impli­ zit, indem für die Bilder 400, 402, 404 einer Bildfolge (und damit auch für die einzelnen Bildstreifen 610, 620, 630, 640) eine Reihenfolge festgelegt wird und Eingaben über Eingabemit­ tel (wie unten näher ausgeführt) jeweils so behandelt werden, daß vorbestimmte Eingaben zum Bildwechsel führen. Beispielswei­ se kann ein angezeigtes Bild 400, 402 oder 404 bei einer Maus­ bewegung von einem bestimmten Ausmaß und in eine Richtung je­ weils durch ein benachbartes Bild 402, 404, 400 ersetzt werden, usw. Dabei ist zu beachten, daß auch das erste und letzte Bild einer Bildfolge (0° und 345°) als benachbart anzusehen sind.
Sofern, wie oben beschrieben, mehrere Bildfolgen verwendet wer­ den, um eine 4-Π-Drehung ganz oder teilweise darstellen zu können, wird den einzelnen Bildfolgen in entsprechender Weise jeweils ein Drehwinkelbereich bezogen auf die zweite Drehachse zugeordnet.
Erläuterungen zum fünften Verfahrensschritt
In einem fünften Schritt werden aus wenigstens einer Betätigung der Cursorpositionierungsmittel, etwa der Computermaus 220, re­ sultierende Positionsänderungen des Cursors 810 unter Verwen­ dung eines Event-Handlers des Browsers 300 ermittelt. Statt der Bewegung einer Computermaus kann beispielsweise auch die Dauer eines Tastendrucks als maßgeblicher Parameter herangezogen wer­ den. Die so jeweils erhaltenen Daten werden in weiteren Verfah­ rensschritten zur Steuerung der veränderlichen Darstellung ver­ wendet. Zusätzlich oder stattdessen kann die veränderliche Dar­ stellung an einen Parameter gekoppelt werden, welcher zeitlich veränderbar ist. Auf diese Weise kann beispielsweise ein selbstdrehendes Objekt dargestellt werden.
Der fünfte Schritt könnte grundsätzlich auch schon vor dem vierten Schritt in dem Sinne ausgeführt werden, daß erst eine Cursorbewegung zur Anzeige des ersten Bildes führt. Zweckmäßi­ ger ist jedoch die im Ausführungsbeispiel vorgeschlagene Rei­ henfolge.
Erläuterungen zum sechsten bis achten Verfahrensschritt
In einem sechsten und siebten Verfahrensschritt wird wenigstens eine darzustellende Objektansicht unter Verwendung von Objekt­ bereichsdaten und von Positionsänderungsdaten des Cursors 810 ermittelt und dabei wenigstens einmal ein Bild 400, 402 ermit­ telt, dessen zugeordneter Objektansichtsbereich die nach der Änderung darzustellende Objektansicht umfaßt. In einem achten Verfahrensschritt wird dann wenigstens einmal ein so ermittel­ tes Bild unter Verwendung der Darstellungsroutine und gegebe­ nenfalls der Verschiebe- und Clippingroutinen des Browsers in dem Browserfenster dargestellt.
Im Falle eines ersten Ausführungsbeispieles werden dabei Posi­ tionsänderungen des Cursors 810 in oder gegen die Richtung ei­ ner ersten Koordinatenachse, etwa der X-Achse, auf Drehungen des Objektes 100 um die erste Drehachse, etwa die zur X-Achse senkrechte Z-Achse aus Fig. 1a, bezogen. Dabei ist es grund­ sätzlich möglich, alle Cursorbewegungen zu berücksichtigen. Besser ist es jedoch, nur solche Bewegungen zu berücksichtigen, bei welchen beispielsweise eine Taste der Computermaus 220 ge­ drückt ist, um ungewollte Drehbewegungen zu vermeiden.
Dieser Ansatz wird nachfolgend anhand der Fig. 9a-9c erläu­ tert:
Zunächst wird durch Drücken der Maustaste in Fig. 9a eine erste Cursorposition definiert, welche der Mitte M des Objektan­ sichtsbereichs eines gerade dargestellten Bildes 400 zugeordnet wird. Sodann werden Grenzen g1 und g2 (und gegebenenfalls wei­ tere Grenzen für den Fall, daß eine Mausbewegung dem sukzessi­ ven Wechsel mehrerer Bilder entspricht) des Objektdarstellungs­ bereichs durch Abschnitte auf der X-Achse repräsentiert, welche auf der X-Achse jeweils gleich weit vom Ausgangspunkt M wegrei­ chen. Diese Abschnitte werden beispielsweise in Pixel ausge­ drückt, so daß die Ausgangssituation des Cursors 810 als null Pixel angesehen wird, während die Grenzen g1 und g2 als 0 ± x Pixel (und die weiteren Grenzen als g1 - n.(2x) bzw. g2 + n.(2x)) angeben werden.
Solange der Cursor wie in Fig. 9b innerhalb der Grenzen g1 und g2 gehalten, d. h. nur um weniger Pixel bewegt, wird, wird das erste Bild 400 angezeigt (angedeutet durch Pfeil P45). Sobald jedoch eine der Grenzen g1 oder. g2 (oder der weiteren Grenzen) überschritten wird, wird wie in Fig. 9c das (oder die) in der Bildfolge jeweils in dieser Richtung benachbarte Bild 402 an­ stelle des ersten Bildes 400 angezeigt. Bei einer Weiterbewe­ gung des Cursors nach dem ersten Bildwechsel gilt für die nächstfolgenden Grenzen bzw. für eine Rückbewegung das oben ge­ sagte entsprechend.
Die Verfahrensschritte sechs bis acht können beliebig oft wie­ derholt werden. Zusätzlich können Positionsänderungen des Cur­ sors in oder gegen die Richtung einer zweiten, insbesondere zur ersten Koordinatenachse X senkrechten, Koordinatenachse Z auf Drehungen des Objektes um eine zweite Drehachse (X oder Y) be­ zogen werden.
Sofern die Objektansichtsbereiche explizit bestimmt werden, ist es zusätzlich oder alternativ möglich, eine darzustellende Ob­ jektsansicht aus einer den Objektbereichsdaten einer darge­ stellten Objektansicht und den Positionsänderungen des Cursors auf die folgende Weise zu ermitteln: Zunächst wird das Ausmaß der Positionsänderung, etwa gemessen in Pixel, mittels eines multiplikativen Umrechnungsfaktors, etwa der Einheit Grad pro Pixel, in einen Drehwinkel, etwa gemessen in Grad, umgerechnet. Der so erhaltene Drehwinkel wird bei Positionsänderungen in oder gegen die Richtung der jeweiligen Koordinatenachse jeweils mit einem anderen Vorzeichen versehen. Schließlich wird der mit Vorzeichen versehene Drehwinkel zu dem zur dargestellten Ob­ jektsansicht gehörigen Drehwinkel addiert. Vorzugsweise wird dann ein Bild ermittelt, dessen zugeordneter Objektansichtsbe­ reich die darzustellende Objektansicht nach der Änderung um­ faßt, indem zunächst der zur darzustellenden Objektansicht ge­ hörige Drehwinkel mit den Drehwinkelbereichen der einzelnen Bilder einer Bildfolge und/oder den Drehwinkelbereichen der einzelnen Bildfolgen verglichen wird. Sodann wird das Bild und/oder die Bildfolge ausgewählt, in dessen bzw. deren zuge­ ordneten Drehwinkelbereich der zur darzustellenden Objektsan­ sicht gehörige Drehwinkel liegt.
Alternativ kann auch eine algebraische Berechnung, welches Bild darzustellen ist, ausgeführt werden. Beispielsweise ergibt sich das darzustellende Bild aus einer Multiplikation der Mausbewe­ gung gemessen in Pixel mit einem Umrechenfaktor der Dimension Grad pro Pixel und einer Division des so erhaltenen Ergebnisses durch die Schrittweite gemessen in Grad. Dabei kann beispiels­ weise festgelegt werden, daß eine Cursorbewegung von 8 Pixeln dem Darstellungsbereich von einem Bild entspricht.
Die Verfahrensschritte 6 bis 8 werden auch in Fig. 4 darge­ stellt. Zunächst wird auf dem Monitor 210 ein erstes Bild 400 dargestellt. Der Cursor 810 befindet sich im linken Bildbe­ reich. Sodann wird die Maustaste gedrückt und der Cursor 810' mittels der Computermaus 220 in die rechte Bildhälfte bewegt (angedeutet durch Pfeil P47). Die Positionsänderung des Cursors wird über den Event-Handler des Browsers 300 erfaßt (angedeutet durch Pfeil P48) und in eine entsprechende Änderung der Ob­ jektansicht nach einem der oben beschriebenen Verfahren über­ setzt. Sofern sich hieraus ergibt, daß ein zweites Bild 402 an­ zuzeigen ist, wird die Darstellung der Browserseite auf dem Mo­ nitor 210 entsprechend geändert (angedeutet durch Pfeil P49). Die Verfahrensschritte sechs bis acht können beliebig oft wie­ derholt werden (angedeutet durch Pfeil P50).
Ergänzung bzw. Erweiterung zum Verfahrensbeispiel
Für viele Anwendungen ist es wünschenswert, zusätzlich zur ver­ änderlichen Darstellung eines Objektes nach dem bisher be­ schriebenen Verfahren, wie auch sonst bei veränderlichen Ob­ jektdarstellungen interaktive Flächen in die Darstellung einzu­ fügen. Dabei wird vorzugsweise, wie schon bisher beschrieben, für die veränderliche räumliche Darstellung des Objektes eine Mehrzahl von zweidimensionalen Bildern verwendet, welche je­ weils das Objekt in unterschiedlicher Ansicht darstellen und welche in einem Browserfenster dargestellt werden.
Interaktive Flächen sind beispielsweise Flächen in graphischen Darstellungen auf Computerbildschirmen, auf welche ein Benutzer einen Cursor etwa mittels einer Computermaus bewegen kann und durch welche Aktionen ausgelöst werden, wenn der Benutzer an dieser Stelle eine Taste betätigt. Technisch werden hierfür Hy­ perlinks verwendet. Diese werden nach dem Stand der Technik an bestimmte Flächen innerhalb eines einzelnen zweidimensionalen Bildes gebunden, indem eine Region ("Area") durch Angabe der absoluten Pixelkoordinaten in der Darstellung definiert wird und der Hyperlink an diese Region gebunden wird. Befindet sich der Cursor oder Mauszeiger innerhalb dieser Region, während der Mausbutton betätigt wird, so wird der zugeordnete Hyperlink ausgeführt. Eine sehr, einfache Version einer interaktiven Flä­ che wird unter Weglassung der Koordinaten erreicht, indem das gesamte Bild mit einem Hyperlink verbunden wird. Die interakti­ ve Fläche umfaßt dabei die gesamten Ausmaße des Bildes. Zusätz­ lich können weitere Maus-Events definiert werden. Beispielswei­ se kann beim sogenannten Mouse-Over, d. h. der Cursor wird über eine interaktive Fläche hinüberbewegt, kurz ein Rahmen ange­ zeigt werden, welcher signalisiert, daß eine interaktive Fläche vorhanden ist.
Um interaktive Flächen in einer veränderlichen Darstellung der vorbeschriebenen Art sinnvoll zu definieren, muß nach dem Stand der Technik beispielsweise in einer Folge von 24 Bildern jeweils der der Objektansichtsänderung angepaßte interaktive Bereich eigens angelegt werden. Der Aufwand hierfür, wie auch für jede Änderung, ist beträchtlich.
Eine Abhilfemöglichkeit wird nachfolgend anhand der Fig. 10a bis 10d erläutert.
Gemäß Fig. 10a besteht das Darstellungsziel beispielsweise dar­ in, eine volle Drehung des Objektes 100' um die Z-Achse in der Richtung des Pfeils P1 in einer Bildfolge von 24 Bildern darzu­ stellen. Dabei soll auf einer Seite des Objektes 100' eine in­ teraktive Fläche 1000 eingefügt werden.
Der Ansatz besteht darin, zunächst eine Bildfolge ohne interak­ tive Flächen zu erstellen. Entsprechend dem Darstellungsziel ist dabei den einzelnen Bildern 400, 402 der Bildfolge jeweils eine Position und/oder räumliche Lage des dargestellten Objek­ tes 100' in einem Bezugssystem, nämlich dem durch die Achsen X, Y und Z aufgespannten Koordinatensystem, zugeordnet. Für die zu erzeugende interaktive Fläche 1000 wird eine Modellfläche 1010 verwendet, deren Position und/oder räumliche Lage im Bezugssy­ stem (X, Y, Z) veränderlich ist. Sodann wird gemäß Fig. 10b eine erste Position und/oder räumliche Lage der Modellfläche 1010 im Bezugssystem dem ersten Bild 400 zugeordnet (angedeutet durch Pfeile P51 und P52). Dabei wird die in Fig. 10b dargestellte Projektion der Modellfläche 1010 auf die Y-Z-Ebene in das Bild 400 eingefügt, so daß ein um eine interaktive Fläche ergänztes Bild 400' entsteht.
Gemäß Fig. 10c wird dann bei einem Darstellungswechsel vom er­ sten Bild 400 auf ein zweites Bild 402 die Position und/oder räumliche Lage der Modellfläche 1010' entsprechend der Änderung der Position und/oder räumlichen Lage des dargestellten Objek­ tes 100' verändert und eine Projektion der Modellfläche 1010' in der neuen Position und/oder räumlichen Lage auf das zweite Bild 402 algebraisch, insbesondere durch eine Dreh- und/oder Translationsmatrix, berechnet. Diese Projektion ist rechts oben in Fig. 10c dargestellt. Die Berechnungen werden entweder über eine entsprechende Java-Script-, Jscript oder Visual Basic Rou­ tine vor Ort durchgeführt, oder aber an anderer Stelle von ei­ nem Autorenprogramm vorberechnet und in Form einer Liste mit übermittelt.
Es wäre nun grundsätzlich möglich, die Projektion unmittelbar für die Definition der interaktiven Fläche 1000' in der Dar­ stellung des zweiten Bildes 402 im Browserfenster zu verwenden. Bei vielen älteren Browsern können jedoch nur rechteckige Be­ reiche als interaktive Flächen verwendet werden, da andere Flä­ chen wie etwa Polygonzüge oder Ellipsen häufig als Funktion in­ stabil sind und dadurch ihre Verwendung zu Abstürzen des Browsers führen kann.
Vor diesem Hintergrund ist es zunächst zweckmäßig, als Modell­ fläche 1010 eine ebene, rechteckige Fläche zu verwenden. Sodann wird vorzugsweise eine Projektion der Modellfläche 1010', wel­ che als solche nicht rechteckig ist, in der Weise für die Defi­ nition der interaktiven Fläche 1000 verwendet, daß die interak­ tive Fläche 1000 die Gestalt eines Rechtecks hat, welches in Lage und Größe der Projektion ähnlich ist. Um dies zu gewähr­ leisten und zugleich alle Bereiche abzudecken, an welchen ein Benutzer eine interaktiven Bereich erwarten kann, werden bevor­ zugt die Maximalwerte der Projektion zur Definition eines ähn­ lichen Rechtecks 1020 und damit einer rechteckigen interaktiven Fläche 1000' verwendet, so daß die rechteckige inter­ aktive Fläche 1000' die Projektion der Modellfläche 1010' ein­ schließt.
Die Modellfläche 1010 wird in diesem Beispiel im Browserfenster als solche nicht, d. h. nicht sichtbar, dargestellt. Zur Berech­ nung der Projektion der Modellfläche 1010 auf eine darzustel­ lende Objektsansicht wird als Transformationsalgorithmus eine Abbildungsmatrix, vorzugsweise eine Drehmatrix verwendet.
Ein weiteres Problem besteht darin, daß bei einer vollen Dre­ hung des Objektes 100' um die Z-Achse die interaktive Fläche 1000 während der Hälfte der Drehung vom Objekt 100' abgedeckt ist und vorzugsweise auch so dargestellt wird. Dementsprechend kann nicht einfach das oben beschriebene Verfahren in der Weise verwendet werden, daß jede Projektion der Modellfläche 1010 auch zur Definition einer interaktiven Fläche 1000, 1000' her­ angezogen wird. Dies sollte vielmehr nur dann der Fall sein, wenn der der interaktiven Fläche 1000, 1000' zugeordnete Ober­ flächenbereich des dargestellten Objektes 100' auch sichtbar ist.
Um dieses Ziel zu erreichen, wird bei der Darstellung einer an­ deren Seite des Objektes die Definition der interaktiven Fläche 1000, 1000' durch einen Hidden-Line-Algorithmus verhindert. Zu diesem Zweck wird am einfachsten - wie in Fig. 10d dargestellt -, für die Modellfläche 1010 ein Normalenvektor n definiert. Hier­ durch ist es möglich, daß der Hidden-Line-Algorithmus die Flä­ chennormale n der Modellfläche 1010 in der Weise verwendet, daß eine Projektion der Modellfläche 1010 auf die darzustellende Objektansicht nur dann als interaktive Fläche 1000 definiert wird, wenn die Flächennormale zu einem Betrachter hin, d. h. aus der Bildebene hinaus weist. Allgemeiner gesagt, ist es zweckmä­ ßig, den Normalenvektor in der Weise zu verwenden, daß die in­ teraktiven Flächen 1000, 1000' immer dann inaktiviert werden, wenn der Normalenvektor außerhalb eines bestimmten Winkelbe­ reichs liegt.
Durch einen Hidden-Line-Algorithmus kann auch die (teilweise) Verdeckung eines Objektes durch ein anderes Objekt dargestellt werden, so daß im Falle ihrer Verdeckung interaktive Flächen ebenfalls inaktiviert werden. Es kann auch sinnvoll sein, die interaktiven Flächen als solche in der Darstellung, etwa beim "Überfahren" mit der Maus, sichtbar zu machen, um dem Betrach­ ter die vorhandenen Möglichkeiten zu verdeutlichen.
Sobald interaktive Flächen definiert sind, können mit ihnen beispielsweise Aktionen verbunden werden, welche das darge­ stellte Objekt 100' verändern. Zu diesem Zweck wird nach einer Betätigung der interaktiven Fläche 1000 eine erste Bildfolge durch eine zweite Bildfolge ersetzt. So ist es beispielsweise möglich, ein dargestelltes Auto in unterschiedlichen Farben oder mit oder ohne geöffneten Türen zu drehen, etc. Die zu in­ teraktiven Flächen gehörenden Aktionen können auch explizit durch Aufruf einer entsprechenden Funktion in Java-Script, JScript oder Visual Basic etc. ausgelöst werden.
Zusätzlich oder stattdessen können auch Aktionen von außerhalb der Darstellung ausgelöst werden. Beispielsweise können inter­ aktive Flächen in Form von Schaltleisten auch neben oder unter­ halb der Darstellung vorgesehen sein. In allen Fällen wird je­ weils eine Funktion im Java-Script (oder Jscript, Visual Basic) aufgerufen, ein Hyperlink ausgeführt oder die Seite neu gene­ riert etc. Auch ist es möglich, in anderen Seiten die Werte von Variablen in Javascript, Jscript oder VBScript zu verändern, um zwei Seiten miteinander zu verknüpfen. Beispielsweise ist es so möglich, in einer oder mehreren Seiten gewünschte Eigenschaften eines Autos zusammenzustellen und es dann in einer anderen Sei­ te darzustellen.
Ausführungsbeispiele Computersystem, Computerprogrammprodukt, Netzwerkserver und Netzwerkclient
Die Erfindung wurde in den bisherigen Ausführungen in der Form und im Umfeld eines Verfahrensbeispiels beschrieben. Wie schon gesagt, erfordert die Umsetzung eines solchen Verfahrens eine Abbildung des Verfahrens in Programmelemente, welche dann in einem Computersystem bzw. ganz oder teilweise auf einem Netz­ werkserver oder Netzwerkclient als Computerprogrammprodukt im­ plementiert werden. Anders ausgedrückt, erhält das jeweilige System durch die Implementierung des Computerprogrammproduktes die erfindungsgemäßen technischen Eigenschaften oder ist dem­ entsprechend angepaßt. Vor diesem Hintergrund versteht es sich, daß die Erfindung auch die derart ausgestatteten Systeme um­ faßt, welche im übrigen in der Beschreibung auch beispielhaft dargestellt sind.
Insbesondere umfaßt die Erfindung ein Computersystem zur Erzeu­ gung einer räumlichen Darstellung eines Objektes 100, 110, 120, 140, 150, 160 in veränderlicher Ansicht unter Verwendung eines Browsers 300, wobei das Computersystem einen ersten und einen zweiten Datenspeicher 230 und 240 bzw. 250, 260, 270 und/oder 280, Anzeigemittel 210 und Cursorpositionierungsmittel 220, insbesondere eine Maus, einen Track-Ball, ein Touch-Pad, einen Maus-Stick oder einen Touchscreen umfaßt, zum Betreiben eines Verfahrens der vorstehend beschriebenen Art.
Sodann umfaßt die Erfindung ein Computerprogrammprodukt, wel­ ches in einem Speichermedium gespeichert ist und welches Soft­ warecodeabschnitte umfaßt, mit denen Schritte für ein vorste­ hend beschriebenes Verfahren ausgeführt werden, wenn das Pro­ dukt auf einem Computer 200, 250, 260, 270 bzw. 280 läuft.
Ferner umfaßt die Erfindung einen Netzwerkserver 260 und insbe­ sondere einen Internetserver mit einem Speichermedium, auf wel­ chem ein Computerprogrammprodukt gespeichert ist, welches Soft­ warecodeabschnitte umfaßt, mit denen Schritte eines vorstehend beschriebenen Verfahrens ausgeführt werden, wenn das Produkt auf einem Computer 200 läuft; außerdem einen Netzwerkserver 260 und insbesondere Internetserver mit einem Speichermedium, auf welchem ein Computerprogrammprodukt gespeichert ist, welches Softwarecodeabschnitte umfaßt, mit denen Schritte eines vorste­ hend beschriebenen Verfahrens ausgeführt werden, wenn das Pro­ dukt auf einem Computer 200, 250, 260, 270 bzw. 280 läuft, wo­ bei das Computerprogrammprodukt zumindest teilweise auf einen anderen Computer 200, insbesondere auf einen Netzwerkclient und insbesondere einen Internetclient übertragbar und dort ausführ­ bar ist.
Schließlich umfaßt die Erfindung einen Netzwerkclient 200 und insbesondere Internetclient mit einem Speichermedium 230, 240, auf welchem ein Computerprogrammprodukt gespeichert ist, wel­ ches Softwarecodeabschnitte umfaßt, mit denen Schritte eines vorstehend geschilderten Verfahrens ausgeführt werden, wenn das Produkt auf dem Client läuft.
Die dargestellten Ausführungsbeispiele dienen der Erläuterung der Erfindung. Sie sind nicht als Einschränkung der Ansprüche zu verstehen. Vielmehr umfaßt die Erfindung auch alle anderen Ausführungsbeispiele, welche sich aus den Ansprüchen ergeben.
Allgemeine Vorteile der Ausführungsbeispiele
Die geschilderten Ausführungsbeispiele haben in den verschiede­ nen Varianten den allgemeinen Vorteil, daß eine veränderliche Darstellung eines Objektes, insbesondere in veränderlicher räumlicher Ansicht, in einer Browserseite eingefügt werden kann, ohne daß eine Virtual Machine oder ein Plug-In erforder­ lich ist. Dabei werden üblicherweise vorhandene Browserroutinen in bisher unbekannter Weise eingesetzt. Entgegen dem bestehen­ den Vorurteil nach dem Stand der Technik, stellt sich dabei heraus, daß für die Erzeugung einer solchen veränderlichen Dar­ stellung weder eine Virtual Machine noch ein Plug-In erforder­ lich ist. Damit sind nach dem beschriebenen Verfahren erstellte veränderliche Darstellungen einem erheblich größeren Kreis von Browsernutzern zugänglich, als Darstellungen nach bekannten Verfahren. Es werden somit beispielsweise die technischen Vor­ aussetzungen geschaffen, eine verbesserte, da weiter zugängli­ che, Möglichkeit der Internet-Werbung, sowie eine verbesserte Einrichtung von Schauflächen in Internet-Kaufhäusern zu erhal­ ten. Weitere Einsatzmöglichkeiten sind z. B. elektronische Hand­ bücher, Mitarbeiterschulungen, interaktive Navigationselemente etc. Stets besteht der Vorteil einer gegenüber dem Stand der Technik vereinfachten Nutzung, da keine Plug-Ins geladen und installiert werden müssen. Auch müssen keine Plug-Ins produ­ ziert, fortentwickelt ("gepflegt") oder distributiert werden. Stattdessen kann man sich Fortentwicklungen der Browser unmit­ telbar zu Nutze machen. Ein weiterer Vorteil von einem Java- Script Programm im Vergleich zu Plug-Ins oder Applets ist das kompakte Programm. Eine Java-Script Programm zur Umsetzung ei­ nes oben dargestellten Verfahrens kann in der Größenordnung von weniger als 5 kB liegen. Dadurch ist der Programmcode sehr schnell geladen. Ein weiterer Vorteil betrifft schließlich das geschilderte Verfahren zur Datenübertragung: sofern beispiels­ weise statt 24 Bildern 4 Bildstreifen übertragen werden, können Probleme mit Firewalls vermieden werden, welche mitunter den Abruf vieler Einzelfiles in kurzer Zeit verhindern.

Claims (12)

1. Verfahren zum Einbinden eines Programmelementes in eine Browserseite (320) bei welchem
  • a) der Code (310) der Browserseite (320) zunächst einen Platzhalter (800) mit einer Kennung zur Identifikati­ on des Platzhalters (800) enthält;
  • b) die Browserseite (320) in einem Bröwserfenster, sowie als Teil der Browserseite (320) der Platzhalter (800) in einem Bereich des Browserfensters dargestellt wer­ den;
  • c) bei Vorliegen der Ausführbarkeitsvoraussetzungen und/oder bei vollständiger Übertragung des Programme­ lementes, sowie von hierfür erforderlichen Daten (600-640) in einen Arbeitsspeicher (240) eine Einfü­ ge-Routine oder ein Teil einer Einfügeroutine akti­ viert wird;
  • d) der Browser (300) die Einfüge-Routine oder den Teil der Einfügeroutine ausführt, hierbei den Platzhalter (800) unter Verwendung der Kennung des Platzhalters (800) im Code (310) der Webseite (320) ausfindig macht; und
  • e) der Browser (300) das Programmelement ausführt und eine Darstellung im Bereich des Platzhalters (800) im Browserfenster durchführt.
2. Verfahren nach Anspruch 1, bei welchem das Programmelement zur Darstellung eines Objektes (100-160) in veränderlicher Ansicht unter Verwendung einer Mehrzahl von Bildern (400, 402, 404) dient.
3. Verfahren nach Anspruch 2, bei welchem als Platzhalter (800) ein Bild des darzustellenden Objektes (100-160) ver­ wendet wird.
4. Verfahren nach Anspruch 3, bei welchem der File-Name oder ein entsprechendes Identifikationsmerkmal des Bildes (800) als Kennung verwendet wird.
5. Verfahren nach einem der vorstehenden Ansprüche, bei wel­ chem die Einfüge-Routine als Javascript, Jscript oder VBScript vorliegt.
6. Verfahren nach einem der vorstehenden Ansprüche, bei wel­ chem das Programmelement von einem ersten Datenspeicher (230, 250, 260, 270, 280) in einem Netzwerkserver, insbe­ sondere einem Internetserver, auf einen zweiten Datenspei­ cher (240) in einem Netzwerkclient (200), insbesondere ei­ nem Internetclient, übertragen wird.
7. Verfahren nach Anspruch 7, bei welchem der zweite Daten­ speicher (240) ein Arbeitsspeicher ist.
8. Computersystem (200-280) zum Einfügen eines Programmele­ mentes in den Code (310) und in die Darstellung einer Browserseite (320), zum Betreiben eines Verfahrens nach einem der vorstehenden Verfahrensansprüche.
9. Computerprogrammprodukt, welches in einem Speichermedium (230, 240, 250, 250, 260, 270, 280) gespeichert ist und welches Softwarecodeabschnitte umfaßt, mit denen Schritte nach einem der vorstehenden Verfahrensansprüchen ausge­ führt werden, wenn das Produkt auf einem Computer (200, 250, 260, 270, 280) läuft.
10. Netzwerkserver (250, 260, 270, 280) und insbesondere In­ ternetserver mit einem Speichermedium, auf welchem ein Computerprogrammprodukt gespeichert ist, welches Software­ codeabschnitte umfaßt, mit denen Schritte nach einem der vorstehenden Verfahrensansprüchen ausgeführt werden, wenn das Produkt auf einem Computer (200, 250, 260, 270, 280) läuft.
11. Netzwerkserver (250, 260, 270; 280) und insbesondere In­ ternetserver mit einem Speichermedium, auf welchem ein Computerprogrammprodukt gespeichert ist, welches Software­ codeabschnitte umfaßt, mit denen Schritte nach einem der vorstehenden Verfahrensansprüchen ausgeführt werden, wenn das Produkt auf einem Computer (200, 250, 260, 270, 280) läuft, wobei das Computerprogrammprodukt zumindest teil­ weise auf einen anderen Computer (200), insbesondere einen Netzwerkclient und insbesondere einen Internetclient über­ tragbar und dort ausführbar ist.
12. Netzwerkclient (200) und insbesondere Internetclient mit einem Speichermedium (240), auf welchem ein Computerpro­ grammprodukt gespeichert ist, welches Softwarecodeab­ schnitte umfaßt, mit denen Schritte nach einem der vorste­ henden Verfahrensansprüchen ausgeführt werden, wenn das Produkt auf dem Client (200) läuft.
DE2000130765 2000-06-23 2000-06-23 Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite Withdrawn DE10030765A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2000130765 DE10030765A1 (de) 2000-06-23 2000-06-23 Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2000130765 DE10030765A1 (de) 2000-06-23 2000-06-23 Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite

Publications (1)

Publication Number Publication Date
DE10030765A1 true DE10030765A1 (de) 2002-01-10

Family

ID=7646638

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000130765 Withdrawn DE10030765A1 (de) 2000-06-23 2000-06-23 Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite

Country Status (1)

Country Link
DE (1) DE10030765A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014004177A1 (de) * 2014-03-22 2015-09-24 Audi Ag Verfahren und Vorrichtung zum Bereitstellen einer Auswahlmöglichkeit während eines Aufbaus eines Anzeigeinhalts
CN106648581A (zh) * 2016-09-13 2017-05-10 百度在线网络技术(北京)有限公司 页面显示方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MÜNZ, S.: SELFHTML, 1998 (recherchiert am 24.04.01), im Internet: <URL:http//carpacio.cs. tu-berlin.de/-jp/Muenz/selfhtml> Dateien selfhtml.htm, tbab.htm, tbae.htm, tid.htm, tecbbe.htm, tcga.htm *
STRUNCK, O.: Bilder austauschen, 05.03.2000 (recherchiert am 23.04.01) im Internet: <URL: http://www.webhilfen.de/javascript/notes_ grafik.html> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014004177A1 (de) * 2014-03-22 2015-09-24 Audi Ag Verfahren und Vorrichtung zum Bereitstellen einer Auswahlmöglichkeit während eines Aufbaus eines Anzeigeinhalts
US9727347B2 (en) 2014-03-22 2017-08-08 Audi Ag Method and device for providing a selection possibility while producing display content
CN106648581A (zh) * 2016-09-13 2017-05-10 百度在线网络技术(北京)有限公司 页面显示方法及装置

Similar Documents

Publication Publication Date Title
DE69410483T2 (de) Objektorientiertes aufgabensicheres rahmenwerk
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE69734048T2 (de) Erfassung und Betrieb von ferngeladener Software durch einen Applet-modifizierten Browser
DE69428647T2 (de) Verfahren und Gerät zur Erzeugung eines zweiten gemischten Bildsignals im räumlichen Kontext eines ersten Bildsignals
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE69432698T2 (de) Verfahren und Vorrichtung zur Aufnahme von Anmerkungen auf einen Anzeigeschirm ohne Überlappung
DE60110193T2 (de) System und Verfahren zur Analyse von Blickrichtungsmessungsdaten
DE69637125T2 (de) Optimaler zugriff auf elektronische dokumente
DE69406462T2 (de) Objekt-orientiertes graphisches system und dazu gehöriges verfahren
EP2350873B1 (de) Erfassung des visuellen inhalts von browserfenstern
DE69327632T2 (de) Mehrere graphische Benutzerschnittstellen auf einer einzigen Anzeige
DE60122298T2 (de) Dateneingabe
DE202009019145U1 (de) Hardware-beschleunigte Grafiken für Online-Applikationen mithilfe von nativen Code-Modulen
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
US20120150661A1 (en) System and Method to Enable any Internet-Compatible Advertisement to be Fully Shareable to a Wide Variety of Social Media Networks and Platforms
DE69416152T2 (de) Virtueller graphikprozessor und verfahren für eingebettete echtzeitanzeigesysteme
DE212012000266U1 (de) System zum Bereitstellen einer Scrollkarte
DE19741358A1 (de) Verallgemeinertes Verfahren zum Trennen von charakteristischen Multimediamerkmalen von einem Multimediatitel unter Verwendung einer Multimedia-Softwaremaschine
EP1241603A1 (de) Internet-Banner
DE69611099T2 (de) System und verfahren zur ferndatenvisualisierung
DE69624693T2 (de) Verfahren und vorrichtung zur ausführung eines anwendungsprogramms
DE69129339T2 (de) Graphisches ausgangssystem mit begrenzter aktualisierung.
DE69602769T2 (de) Rückkopplung mit expansionsauswahl und graphische wechselwirkung
EP2642359A1 (de) Entwicklungseinrichtung und Verfahren zum Erstellen eines Steuergeräteprogramms
DE10030765A1 (de) Verfahren, Computerprogrammprodukt, Computersystem, Netzwerkserver und Netzwerkclient zum Einbinden eines Programmelementes in eine Browserseite

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee