Próbuję wykonać prostą aplikację farby i chcę, aby linie sortowały podgląd linii po określeniu punktu początkowego linii. Odpowiedni javascript jest taki:usunąć poprzedni skok (utworzyć tymczasową linię) - 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;
}
});
};
Oprócz tego mam powiązane płótno o nazwie myCanvas.
W zasadzie to, co robi, sprawia, że linie idą od tego punktu do mojego kursora, dopóki nie kliknę ponownie, a następnie zatrzyma się i teraz pozostaję z tym tylko kopcem linii.
W jaki sposób mogę uzyskać "tymczasowy" wiersz po kliknięciu raz przechodząc od tej klikniętej lokalizacji do mojego kursora, a następnie umieścić stały wiersz, w którym znajduje się moje drugie kliknięcie.
Możesz spróbować kliknąć, pokaż drugie płótno na górze pierwszego i wklej wewnątrz linii moussemove, po drugim kliknięciu usuniesz płótno i zrobisz linię na pierwszym z nich? – r043v
blit? Miałem podobny pomysł, aby płótno zagnieździło się wewnątrz płótna, a następnie na ruchy myszy, wyczyściłbym zagnieżdżone płótno, a następnie kliknięciem popchnęłbym linię na płótno zawierające. Chodzi o to, że nie wiem, jak wyczyścić płótno, a nawet gdybym to zrobił, miałbym wrażenie, że zajmie to dużo pamięci. – Funkyguy