2015-05-02 4 views
1

У меня есть форма, в HTML5 холст, нарисованный с JavaScript:Как проверить, является ли точка частью квадратичной кривой Безье?

ctx.beginPath(); 
ctx.moveTo(25,0); 
ctx.quadraticCurveTo(50,50,40,100); 
ctx.lineTo(33,100); 
ctx.quadraticCurveTo(50,50,20,0); 
ctx.fill(); 
ctx.closePath(); 

Если нажать мой холст, как я могу определить, что я нажал эту форму?

canvas.addEventListener("click",function(e){ 
    alert(isItPartOfTheShape(e.clientX,e.clientY)); 
}) 

function isItPartOfTheShape(x,y){ 
    /* Here comes the code which detects is it part of the shape */ 
    return isIt; 
} 
+0

Возможный дубликат [H tml5 Canvas метод isPointInPath определяет только последний объект] (http://stackoverflow.com/questions/7984420/html5-canvas-method-ispointinpath-determines-only-the-last-object) – 6502

ответ

1

У вас есть два варианта

  1. реализовать код и кривая Безье вычисления точка-в-полигоне в Javascript
  2. вы можете использовать context.isPointInPath, что однако требует от вас, чтобы восстановить форму, когда вы делаете (эта функция проверяет указанную точку только по текущему пути, то есть по пути, который будет заполнен вызовом fill)
+0

Спасибо, isPointInPath - это то, что мне нужно:) – Tomato

Смежные вопросы