Ich arbeite an einem Projekt auf Svg mit dem Plugin SVG.JS. Ich möchte den Kreis dem Pfad folgen lassen, wenn er gezogen wirdMachen Sie einen Kreis ziehbar entlang eines Pfades Svg
0
A
Antwort
0
Interessante Frage. Ich habe eine Geige für Sie erstellt, die die gewünschte Funktionalität zeigt: https://jsfiddle.net/4ac7o8r6/18/
Ich habe das ziehbare Plugin mit einer Constraint-Funktion verwendet. Normalerweise gibt diese Funktion ein Constraint-Feld oder einen booleschen Wert zurück, der entscheidet, ob etwas gezogen wird oder nicht. Ich kehre immer falsch und bewegen Sie den Kreis selbst:
var canvas = SVG('container')
var path = canvas.path('M200,300 Q400,50 600,300 T1000,300').stroke('black').x(10).fill('none')
var length = path.length()
var circle = canvas.circle(20).draggable(function(x, y) {
var p = getPointAtX(x)
circle.center(p.x, p.y)
return false
})
definiere ich dann eine Funktion, die den Punkt auf einem Pfad für einen gegebenen x zurückgibt. Ich muss dies näherungsweise tun, weil es dafür keine Funktion gibt. Ich mache es mit verschachtelten Intervallen:
var start = path.node.getPointAtLength(0)
circle.center(start.x, start.y)
var precision = 1/length
function getPointAtX(x) {
var p, pos = 0.5, interval = pos/2
while(p = path.node.getPointAtLength(pos*length)) {
if(p.x > x) {
pos -= interval
} else {
pos += interval
}
interval /= 2
// should be one pixel
if(interval < precision) break
}
return p
}
Und voila bewegt sich der Kreis auf dem Pfad beim Ziehen. Ganz nett ist es nicht?
Verwandte Themen
- 1. SVG So machen Sie einen Teil des Pfades ziehbar/erweiterbar
- 2. finden Entfernung entlang eines Pfades IGRAPH r
- 3. Messen Sie die Länge eines SVG-Pfades?
- 4. Verschieben einer Bildansicht entlang eines Pfades
- 5. Android, Bitmap entlang eines Pfades verschieben?
- 6. Paper JS: Wellenlinie, Pinsel entlang eines Pfades
- 7. Cocos2d: Bewege einen Sprite entlang eines Pfades/Beziers?
- 8. SVG ziehbar mit JQuery und Jquery-Svg
- 9. Einen SVG-Text ziehbar machen mit d3.js
- 10. Wie ändere ich die Strichbreite entlang eines Pfades/einer Linie?
- 11. Three.js Bewegen der Kamera entlang eines Pfades nach Klickereignis
- 12. SceneKit belebtes Knoten entlang des Pfades
- 13. iphone Kakao: Wie man ein Bild entlang eines Pfades zieht
- 14. Swift: Gradient entlang eines Bezier-Pfades (mit CALayers)
- 15. Weg zum Platzieren (Duplizieren) von Objekten entlang eines Pfades
- 16. So berechnen Sie die Fläche eines SVG-Pfades C#
- 17. Vector ziehbar als Kreis dargestellt
- 18. UITabBarView machen Bild einen Kreis
- 19. SDL2: Wie bewege ich ein Bild entlang eines quadratischen Pfades?
- 20. Schnittpunkt des SVG-Pfades finden
- 21. Hover-Titel über einen SVG-Kreis
- 22. SVG Animation entlang Pfad mit Raphael
- 23. Draw Threejs TextGeometry entlang des Pfades
- 24. Wie übersetzt man SVG-Elemente entlang der y-Achse?
- 25. Wie zielen Attribute eines SVG-Pfades mit JavaScript?
- 26. Positionieren von Text entlang Svg Pfad
- 27. Reduzierung des Pfades in SVG
- 28. SVG-Bild im Kreis
- 29. Wie berechnet man einen Abstand zwischen zwei Punkten entlang eines Pfades?
- 30. Label in die "Mitte" eines SVG-Pfades setzen