Ich habe einen Python-Webserver (cherrypy), und ich möchte, dass der Benutzer bestimmte Oberflächen dieses präzisen Typs berechnen kann. Dies kann ich aus Benutzereingaben generieren. Er gibt mir einige Parameter, ich berechne meine Sachen, erzeuge sie als PNG auf dem Server (matplotlib / numpy) und sende sie über eine JQuery-Last zurück.
Problem ist, das ist ziemlich lahm, und die Oberflächen können verschiedene Aspekte haben. Ich möchte in der Lage sein, ein tatsächliches Widget zu haben oder so, dass der Benutzer seine Oberfläche drehen könnte ...
Meine Haupteinschränkungen sind, dass es auf IE 7 arbeiten muss (8 wäre auch cool) und die Eingabe der Daten erlauben würde, die ich irgendwie berechne. Ich habe viele Dinge im Web gesehen, die nur parametrische Funktionen erlauben. Was ich brauche, ist in der Lage, Rohdatentriplets einzubringen.
Ich habe mir verschiedene Dinge angeschaut, Javascript wäre das beste, aber ich konnte etwas in JQuery oder ähnlichen nicht sehen. Ich habe ziemlich lange um WebGL herumgesehen und angefangen, Dinge zu implementieren ... von Grund auf ... aber viel zu langes und zufälliges Verhalten in IE manchmal.
Vielleicht verpasse ich etwas komplett, auf etwas Technologie oder Format, das mit meinem Python kompatibel ist, aber ich habe Tage gebraucht, bevor ich die vorübergehende Lösung des Plottens in PNGs angenommen habe.
Ich freue mich darauf, euch zu lesen, Vielen Dank im Voraus;)
Soweit ich weiß, wenn Sie IE7-Kompatibilität benötigen, funktionieren die meisten verfügbaren Bibliotheken in JS nicht für Sie - sie benötigen entweder canvas
oder SVG-Unterstützung. Sie bleiben mit statischen Bildern, Flash oder Java-Applets.
Ich würde mir die Verarbeitung ansehen, die eine gute 3D-Unterstützung bietet und Java-Applets für die Verwendung im Internet erstellen kann. Sehen Sie die 3D-Tutorials für gute Beispiele für interaktive 3D-Oberflächen.
Wenn Sie etwas Besonderes wünschen, können Sie möglicherweise auch processing.js für Browser anbieten, die das canvas
-Element unterstützen. Dies würde verhindern, dass ein Java-Applet für diese Browser geladen wird, was zu einer etwas glatteren Benutzeroberfläche führt und die Java-Abhängigkeit entfernt. Sie müssen die Browserkompatibilität überprüfen und dann entweder den Applet-Code oder den Code processing.js laden. Der Vorteil ist, dass Sie in beiden Fällen denselben Verarbeitungscode verwenden können.
Lassen Sie das Python-Skript die Vertices / Points des 3D-Modells im JSON-Format zurückgeben und verwenden Sie dann mrdoobs three.js, um ein live, JavaScript-gestütztes 3D-WebGL-Modell direkt im Browser zu erstellen.
Sehen Sie sich die threw.js hier an: Ссылка
(Schauen Sie sich die erstaunlichen Beispiele dort für Inspiration an, Sie können wahrscheinlich mrdoob für Einblicke auch gewinnen ...)
EDIT: Hoppla, habe gerade die IE7-Anforderung bemerkt. Kein WebGL für IE7 :(. Sie müssen Flash für 3D-Rendering verwenden. Unabhängig davon, oder haben Sie Ihr Python-Skript erstellen unterschiedliche Blickwinkel der Ansicht, die als Bilder im Browser geladen werden können (zum Beispiel klickt der Benutzer auf die rechte Schaltfläche) und das nächste Bild, das geladen wird, wird in einem bestimmten Winkel nach rechts gedreht).
EDIT: Sieht so aus, als würde IEWebGL webGL für IE7 aktivieren!
EIDT: processing.js sieht auch für Visualisierungen sehr gut aus!
Ich habe nach etwas ähnlichem (Konturdiagrammen in JS) gesucht und bin auf eines gestoßen, das aussieht, als ob es in IE6 funktioniert (unter Verwendung von Exkanvas): Ссылка
Es verwendet das Google Visualization API:
%Vor%vielleicht können Sie das mit Ihren Triplet-Daten laden.
Sie möchten Pre3d verwenden. Es verwendet nicht WebGL. Es verwendet ein Canvas-Element. Hier ist das Beispiel dafür Ссылка
Verwenden Sie explorecanvas, um Canvas-Unterstützung für IE hinzuzufügen.
Tags und Links python javascript web 3d