Tôi đang cố tạo một ứng dụng vẽ đơn giản và tôi muốn các dòng sắp xếp xem trước dòng sau khi bạn chỉ định một điểm bắt đầu dòng. Javascript tương ứng giống như sau:loại bỏ đột quỵ trước đó (tạo dòng tạm thời) - 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;
}
});
};
Ngoài ra, tôi có một canvas liên quan được gọi là myCanvas.
Về cơ bản những gì nó làm là nó làm cho các đường đi từ điểm đó đến con trỏ của tôi cho đến khi tôi nhấp một lần nữa, sau đó nó sẽ dừng lại và bây giờ tôi còn lại chỉ với gò đất này.
Làm cách nào tôi có thể nhận được dòng "tạm thời" sau khi tôi nhấp vào một lần từ vị trí được nhấp vào con trỏ của tôi và sau đó đặt một dòng vĩnh viễn nơi nhấp chuột thứ hai của tôi.
bạn có thể thử nhấp chuột để hiển thị canvas tạm thời thứ hai trên đầu tiên và nhấp vào bên trong dòng moussemove, ở lần nhấp thứ hai, hãy xóa canvas và thực hiện dòng đầu tiên – r043v
blit? Tôi đã có một ý tưởng tương tự để có một canvas lồng nhau bên trong canvas và sau đó di chuyển chuột, tôi sẽ xóa canvas lồng nhau và sau đó nhấn vào tôi sẽ đẩy dòng lên canvas có chứa. Thing là tôi không biết làm thế nào để xóa một bức tranh và thậm chí nếu tôi đã làm, tôi cảm thấy như thế sẽ mất rất nhiều bộ nhớ. – Funkyguy