Ich bin auf der Suche nach einer Möglichkeit, "live" zeichnen Rechtecke oder Kreise auf einer Leinwand.Javascript Leinwand Zeichnen Rechtecke oder Kreise
Ich habe verschiedene Möglichkeiten mit fillRect()
gefunden, um Rechtecke zu zeichnen, aber nicht leben. Was ich meine ist, in der Lage zu mouseDown()
auf einen Punkt und verschieben Sie es an einen anderen Punkt in der Zeichenfläche, die die Größe der Zeichenfläche, wie zum Beispiel in Microsoft Paint, OneNote und so weiter definiert.
Kann mir jemand helfen und mir einen Rat geben, wie ich anfangen soll? Ich könnte von einer Art und Weise zu denken, wie es zu tun, ohne das Rechteck zu sehen (oder Kreis) Größenänderung, so etwas wie:
$("canvas").mousedown(function(event){
var ctx = this.getContext("2d");
ctx.clearRect(0,0,$(this).width(),$(this).height());
var initialX = event.clientX - this.getBoundingClientRect().left;
var initialY = event.clientY - this.getBoundingClientRect().top;
$(this).mousemove(function(evt) {
ctx.strokeRect(initialX, initialY, evt.clientX - event.clientX, evt.clientY - event.clientY);
});
});
Aber ich will es live sehen, so wie die Rechtecke Größe ändert, wenn die Benutzer bewegt die Maus.
Verwenden Sie 'window.requestAnimationFrame()', um das Canvas oft zu aktualisieren – frozen
@ randnum-1 und? Du willst die Leinwand alle 50ms oder so ähnlich in 'setInterval()' bis 'mouseUp' neu zeichnen? – nameless
Ich nehme an, Sie wollen etwas wie diese https://jsfiddle.net/jk607fqn/3/ klicken Sie auf Leinwand, um rotes Quadrat – slackOverflow