0
基本上,我嘗試使用JavaScript,因此當頁面上按下按鈕時,它將開始監聽畫布上的下一個觸摸。觸摸時,會觸發一個函數,獲取觸摸的X和Y座標並在那裏繪製一個圓。圓圈也需要標記,因此請提示您獲取標籤。這裏是我的嘗試和一些背景:在觸摸位置在HTML5畫布上繪製圓形
<input type="button" value="Add Symptom" onClick="touch_init();">
當上述輸入按鈕被按下時觸發如下:
function touch_init(){
var canvas = document.getElementById("mediCanvas");
canvas.addEventListener("touchstart", drawSymptomCircle, false);
}
function drawSymptomCircle(event) {
var canvas = document.getElementById("mediCanvas");
if (canvas.getContext){
var ctx = canvas.getContext("2d");
var x = new Number();
var y = new Number();
var radius = 100;
var symptomName=prompt("Please enter the name of your symptom:");
x = event.targetTouches[0].pageX;
y = event.targetTouches[0].pageY;
x-=canvas.offsetLeft;
y-=canvas.offsetTop;
ctx.beginPath();
ctx.arc(x, y, radius, 0, 2 * Math.PI, false);
ctx.fillStyle = "rgb(0,128,255)";
ctx.fill();
ctx.lineWidth = 2;
ctx.strokeStyle = "black";
ctx.stroke();
ctx.font = '15pt Calibri';
ctx.fillStyle = 'black';
ctx.textAlign = 'center';
ctx.fillText(symptomName, x, y);
canvas.removeEventListener("touchstart", drawSymptomCircle, false);
}
}
編輯:這畫的圈子其實畫布裏面,不只是在0 ,0,但他們沒有在正確的地方畫出來。他們爲什麼不在正確的地方?
你的代碼看起來對我來說基本上是正確的。當你說圈子「不是在正確的地方畫出來的」時,你的意思是什麼?它們是否與觸摸位置有一些偏移?在隨機職位?總是處於相同但錯誤的位置?並且,是否已將x和y的值記錄到控制檯或使用調試器來確保它們看起來合理? – dgvid
感謝您的回覆。在過去的幾分鐘裏,增加了一個警報來報告座標,並且假定畫布的左上角應該是0,0(我認爲這是原點通常在哪裏),x座標已經被大約630,而y由100 ....... – user3411407