개체의 캔버스에 네 가지 모양이 렌더링되어 있다고 가정 해 봅니다.캔버스의 모양 지정 및 식별
var shapes = [
{ shape1 : 'A cool Triangle', structure: triangle(40,40,40,40,40,40) },
{ shape2 : 'A cool Rectangle', structure: rect(220,220,220,220) },
{ shape3 : 'Another cool rectangle', structure: rect(140,140,140,140) }
]
그런 다음 우리는 (간결함을 위하여, 내가 포함되지 않습니다) 우리의 셋업 코드에 간단한 for
루프를 사용하여 렌더링합니다.
for(let shape in shapes){
// Really shouldn't be using for...in on this array for obvious reasons
shape.structure
}
이제 캔버스에 세 가지 모양이 있습니다.
캔버스에서 어떻게 든 모양을 식별 할 수있는 inbuilt 메서드가 있는지 알고 싶습니다. 삼각형을 클릭하면 'A cool Triangle'
을 반환합니다. P5에 대한 기본 기능을 대신
, 나는의 조정 짓을했습니다 단순히 나에게 x와 마우스 클릭의 y 좌표를 줄 것이다
sketch.mousePressed = function(){
var mouseXCoord = mouseX;
var mouseYCoord = mouseY;
console.log("x:" + mouseXCoord + "y:" + mouseYCoord)
}
하고 나는 좋겠 사용자 지정 함수를 실행하여 클릭 된 좌표에있는 모양을 찾습니다. 문제는, 이것은 항상 방탄하지 않습니다 - 예를 들어 삼각형의 경우 경계 내에서 마우스 클릭이 항상 삼각형을 반환하지는 않을 것입니다 ... 어떻게 든 모양 영역을 계산해야합니다 (비록 사용자 정의 함수가 필요함), 그리고 이것은 단지 견과류처럼 보인다.
캔버스에서 요소를 식별 할 수있는 기본 함수가 있습니까?
2d 캔버스 이벤트에 https://konvajs.github.io/가 있습니다 – Slai
이것이 자주해야 할 일이라면 캔버스에서 SVG로 전환하는 것이 좋습니다. SVG의 요소에 클릭 핸들러를 쉽게 추가 할 수 있습니다. – david