Moonlight,
составь уравнение 3 прямых, и составь неравенство, и каждый раз подставляй в эти неравенства... но по-пойму легче isPointInPath
У тебя прям такое нагруженное приложение, что ты так печешься?
Если ты не понял о чем я, то вот пример, с кругом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<canvas id='canvas'></canvas>
<script>
var _canvas = document.getElementById('canvas'),
canvas = _canvas.getContext('2d'),
x=50,y=50, radius = 30,
colors = ['255,0,0', '0,255,0', '0,0,255', '0,0,0'], i = 0;
canvas.strokeRect(0,0,_canvas.width,_canvas.height)
canvas.arc(x,y, radius, 0, Math.PI *2, true)
canvas.fill()
_canvas.addEventListener('mousemove', function (event) {
// Уравнение окружности: (x-x0)^2 + (y-y0)^2 = r^2
var mouseX = event.pageX, mouseY = event.pageY;
if ( Math.pow(radius,2) > Math.pow((x-mouseX),2) + Math.pow((y-mouseY),2)) {
canvas.clearRect(1,1,_canvas.width-2, _canvas.height-2)
canvas.fillStyle = 'rgb('+colors[i]+')'
canvas.arc(x,y,radius,0,Math.PI*2,true)
canvas.fill();
i == colors.length ? i = 0 : i++;
}
}, false)
</script>
<body>
</body>
</html>