피타고라스의 정리 (Pythagorean theorem)
Javascript
Points: (sourceX, sourceY), (targetX, targetY)
var disX = sourceX - targetX;
var disY = sourceY - targetY;
distance = Math.sqrt(Math.abs(disX*disX) + Math.abs(disY*disY));
Example
Support only: Desktop webkit (chrome, safari)PS. Not Support Mobile Browser (모바일 브라우저에서는 아래 예제가 실행이 되지 않습니다.)
source
<div id="groundDiv" style="position:relative; width:100%; height:500px; border:1px solid red;">
<div id="distanceValueDiv" style="position:absolute; border:1px solid black;"></div>
<div id="lineDiv" style="position:absolute; border:1px solid blue; display:none;"></div>
</div>
<script type="text/javascript">
window.addEventListener('load', function(){
var x = 0, y = 0;
var dis = 0, disX = 0, disY = 0;
var ang = 0;
var clicked = false;
var groundDiv = document.getElementById('groundDiv');
groundDiv.addEventListener('mousedown', mouseDown);
groundDiv.addEventListener('mousemove', mouseMove);
groundDiv.addEventListener('mouseup', mouseUp);
var distanceValueDiv = document.getElementById('distanceValueDiv');
var lineDiv = document.getElementById('lineDiv');
lineDiv.style.webkitTransformOrigin = '0 0';
function mouseDown(e) {
clicked = true;
x = e.offsetX;
y = e.offsetY;
lineDiv.style.width = '0px';
lineDiv.style.height = '0px';
lineDiv.style.left = x + 'px';
lineDiv.style.top = y + 'px';
lineDiv.style.display = '';
}
function mouseMove(e) {
if (clicked) {
disX = e.offsetX - x;
disY = e.offsetY - y;
ang = Math.atan2(disX, disY) * 180 / Math.PI;
dis = Math.sqrt(Math.abs(disX*disX) + Math.abs(disY*disY));
lineDiv.style.height = dis + 'px';
lineDiv.style.webkitTransform = 'rotate(' + -ang + 'deg)';
distanceValueDiv.style.left = e.offsetX - 40 + 'px';
distanceValueDiv.style.top = e.offsetY - 40 + 'px';
distanceValueDiv.innerHTML = 'distance: ' + dis;
}
}
function mouseUp(e) {
clicked = false;
}
});
</script>



댓글
댓글 쓰기