2
Raphaeljs를 사용하여 다이어그램을 만들기위한 웹 응용 프로그램을 만듭니다. 모양 중 하나는 45도 회전 된 사각형 인 다이아몬드입니다. 원이 회전 된 이미지 내에 있는지 여부를 테스트해야하며 이동 방법을 알지 못합니다.회전 된 객체에 원이 있는지 테스트하는 방법
Raphaeljs를 사용하여 다이어그램을 만들기위한 웹 응용 프로그램을 만듭니다. 모양 중 하나는 45도 회전 된 사각형 인 다이아몬드입니다. 원이 회전 된 이미지 내에 있는지 여부를 테스트해야하며 이동 방법을 알지 못합니다.회전 된 객체에 원이 있는지 테스트하는 방법
당신은 다이아몬드가있는 경우 :
ny = rect_y + rect_w/2;
nx1 = rect_x + rect_w*(1-Math.sqrt(2))/2;
nx2 = rect_x + rect_w*(1+Math.sqrt(2))/2;
그런 다음 사용자가 만든
var diamond = paper.rect(rect_x, rect_y, size, size);
diamond.rotate(45);
그리고 가로에있는 두 개의 모서리 좌표 (NX1, 뉴욕)를 가지고 (NX2, 뉴욕)을, 원 안의 반지름만큼 작은 다이아몬드.
var circle = paper.circle(cx, cy, r);
nx1 += r*Math.sqrt(2);
nx2 -= r*Math.sqrt(2);
그런 다음 당신은 원의 중심이 다이아몬드의 네면 사이에 있는지 여부를 테스트 :
if (cy < ny - nx1 + cx &&
cy > ny - nx2 + cx &&
cy > ny + nx1 - cx &&
cy < ny + nx2 - cx)
{Circle is inside the diamond}
아, 지금은 너무 명백한 것 같습니다! 감사! – dave