Ich versuche, eine einfache Malanwendung zu machen, und ich möchte, dass die Zeilen eine Vorschau der Zeile nach dem Festlegen eines Zeilenanfangspunkts sortieren. Das entsprechende Javascript ist wie folgt:entfernen Sie einen vorherigen Strich (eine temporäre Linie erstellen) - Javascript/HTML5
var Edges = new Array();
var Vertecies = new Array();
var Mouse = {x:0, y:0}
function findPos(obj) {
var curleft = 0, curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return { x: curleft, y: curtop };
}
return undefined;
}
function addEdge() {
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var i=0;
var Start = { x:0, y:0}
var End = { x:0, y:0}
var Line = (Start, End);
var temp = new Array();
$("#myCanvas").mousemove(function(e){
console.log("mouse is movin!");
if(i==1)
{
var pos = findPos(this);
console.log("I = 1 AHHHH")
ctx.moveTo(Start.x, Start.y);
ctx.lineTo(e.clientX-pos.x, e.clientY-pos.y);
ctx.stroke();
}
else{
}
})
$("#myCanvas").click(function(event){
var pos = findPos(this);
var x = event.pageX - pos.x;
var y = event.pageY - pos.y;
if (i==0)
{
Start = {x:x,y:y}
i++;
}
else if(i==1) {
End = {x:x,y:y}
ctx.moveTo(Start.x , Start.y);
ctx.lineTo(End.x , End.y);
ctx.stroke();
Line = (Start, End);
Edges.push(Line);
i++;
}
while(i==2) {
Start = {x:0, y:0};
End = {x:0, y:0};
i=0;
}
});
};
Abgesehen davon habe ich eine verwandte Leinwand namens myCanvas.
Grundsätzlich macht es Linien von diesem Punkt zu meinem Cursor gehen, bis ich wieder klicke, dann wird es aufhören und jetzt bin ich nur mit diesem Hügel von Linien.
Wie kann ich eine "temporäre" Linie bekommen, nachdem ich einmal geklickt habe, von dieser angeklickten Stelle zu meinem Cursor und dann eine permanente Linie, wo mein zweiter Klick ist.
können Sie versuchen, klicken Sie auf eine zweite temporäre Leinwand über die erste und Blit innerhalb der MousseMove-Linie, beim zweiten Klick entfernen Sie die Leinwand und machen Sie die Linie auf der ersten – r043v
Blit? Ich hatte eine ähnliche Idee, eine Leinwand in der Zeichenfläche geschachtelt zu haben und dann, wenn ich mich bewegte, löschte ich die verschachtelte Leinwand und dann klickte ich auf die enthaltene Leinwand. Die Sache ist, dass ich nicht weiß, wie man eine Leinwand löscht, und selbst wenn ich das täte, denke ich, dass das eine Menge Erinnerung erfordern würde. – Funkyguy