Ich zeichnete viele Punkte in meinem Programm mit webgl. Jetzt möchte ich einen beliebigen Punkt auswählen und diesen Punkt um eine neue Position verschieben. Der Fall ist, ich weiß nicht, wie man Punkt auswählt. Soll ich also Actionlistener zu jedem Punkt hinzufügen?Beweglicher Punkt mit Maus
Antwort
WebGL is a rasterization library. Es hat kein Konzept von beweglichen, anklickbaren Positionen oder Punkten. Es zeichnet nur Pixel, wo Sie es fragen.
Wenn Sie Dinge verschieben möchten, die Ihnen überlassen sind, um Ihre eigenen Daten zu erstellen, verwenden Sie diese Daten, um zu entscheiden, ob die Maus auf etwas geklickt wurde, aktualisieren Sie die Daten, um zu reflektieren, wie die Maus sie änderte, und verwenden Sie schließlich WebGL -Render etwas basierend auf den Daten.
Beachten Sie, dass keiner dieser Schritte, außer dem letzten, WebGL involviert. WebGL hat kein Konzept eines Actionlisteners, da WebGL keine Aktionen hat, die Sie hören könnten. It just draws pixels based on what you ask it to do. Das ist es. Alles andere liegt bei Ihnen und außerhalb von WebGL.
verwenden Sie zu dieser Bibliothek wären wäre, eine Bibliothek wie three.js oder X3D oder Unity3d aber in diesem Fall Ihre Frage über die spezifische Bibliothek als alle Eingabe/Maus/Objektposition Fragen spezifische Vielleicht (weil wieder, WebGL zeichnet nur Pixel)
- 1. Beweglicher Punkt zum angeklickten Punkt in ChartJS (Radardiagramm)
- 2. Leinwand zoom in Maus Punkt mit einer Drehung
- 3. deaktivieren automatische Punkt schweben, wenn Diagramm mit der Maus eingeben
- 4. beweglicher Griff des unity3d Schiebers
- 5. Beweglicher Punkt bis zum Ende der letzten Zeile ohne Neuausrichtung des Puffers
- 6. Beweglicher Streifen, der den Wert ändert
- 7. Vectorize-Methode für N-Periode beweglicher Steigung
- 8. Wie befinden sich Speicherreferenzen in einer Implementierung von beweglicher Speicherbereinigung?
- 9. TransformBack einen Punkt mit RotateTransform
- 10. Vergleich einzelner Punkt mit dem Punkt davor
- 11. Shiny: Interaktive ggplot mit Vertical Line und Datenbeschriftungen an Maus Hover Punkt
- 12. Mit Maus gesteuerte Formzeichnung
- 13. Implementierung einer Maus-Begrenzungskante
- 14. Punkt ([Punkt] [Leerzeichen] [Dateiname])
- 15. Wie zeichne ich einen Punkt jedes Mal an dem Punkt, an dem die Maus in Matplotlib angeklickt wird?
- 16. .. (Punkt Punkt) in URLs
- 17. Drehen einer Kugel von Punkt zu Punkt
- 18. OpenGL Translate Point mit Maus Drag
- 19. Vim visueller Modus Backspace löscht statt beweglicher Cursor
- 20. Simulieren Mausklick - Maus nicht bewegt
- 21. Folgenden Punkt mit Kraft
- 22. Freimarker - Variablenname mit Punkt
- 23. Punkt Blick auf Punkt
- 24. Punkt-zu-Punkt-Protokoll
- 25. Move Browser mit der Maus
- 26. Zoomen mit der Maus: Auswahlfarbe
- 27. Trigger JXCollapsiblePane mit Maus über
- 28. Objekte mit der Maus ziehen
- 29. Pfeile von Punkt zu Punkt
- 30. Punkt-Zoom auf Mandelbrot-Set in C# - Es funktioniert, außer wenn die Maus bewegt wurde
Verwenden Sie ein Framework oder eine Engine? Kurz gesagt, Sie möchten einen Ereignis-Listener (Klick) nur im Canvas hinzufügen. Dann möchten Sie Raycast (einfach mit 2D, härter mit 3D) verwenden und verarbeiten, welchen Punkt Sie ausgewählt haben. Danach können Sie es verschieben. Es gibt keine Aktion Listener in Webgl. Sie müssen Ihr eigenes Muster codieren oder Engine verwenden. –
Ich schreibe meinen Code in erhabenen Test und ich soll nur Javascript und Webgl verwenden. – dummy