0
我正嘗試使用kinetic.js創建一個html5畫布繪畫應用程序,用戶可以在其中選擇各種形狀並在畫布上繪製它們。 當用戶選擇圓圈並嘗試繪製圓圈時,圓圈的半徑應取決於鼠標在畫布上的距離,現在問題是圓圈半徑增加時它可以正常工作,但當我減小圓圈時,圓圈保持不變相同的大小。 如果有人能指引我走向正確的方向,那將會很棒。 這是鏈接到小提琴。 http://jsfiddle.net/45fEn/在mousemove kineticjs上減小圓的半徑
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<div id="container"></div>
<script src="kinetic.js"></script>
<script src="js/jquery.js"></script>
<script defer="defer">
$(document).ready(function() {
var stage = new Kinetic.Stage({
container:'container',
width:300,
height:400
});
var layer = new Kinetic.Layer();
function drawCircle() {
var circle = new Kinetic.Circle({
x:initialX, y:initialY , radius:tangant , fill:'green'
});
layer.add(circle) ;
stage.add(layer);
}
stage.add(layer);
var painting =false , clicking = false ;
var initialX , initialY , finalX , finalY , tangant , newTangant ,storeTime;
$("canvas").mousedown(function(ev) {
initialX = ev.clientX;
initialY = ev.clientY;
painting = true;
clicking = true;
});
$("canvas").mousemove(function(ev) {
finalX = ev.clientX ;
finalY = ev.clientY ;
var diffX = initialX - finalX ;
var diffY = initialY - finalY ;
tangant = Math.sqrt (Math.pow(diffX,2) + Math.pow(diffY,2)) ;
console.log(tangant);
storeTime = setTimeout(function() { newTangant = tangant },200) ;
if(newTangant < tangant) { console.log("new tan:"+newTangant);
circle.remove();
drawCircle();
}
if(clicking == true) {
drawCircle();
}
});
$("canvas").mouseup(function(ev) {
painting = false;
clicking = false;
});
});
</script>
</body>
</html>
你是真棒! –