애니메이션 원형 차트에 레이블을 지정하려고하는데 회전 된 객체가 삼각 함수로 배치 된 객체와 정렬되도록하는 데 많은 어려움을 겪고 있습니다. 따라서, 예를 들어, 내가 중간의 파이 조각이 있으면 것은 각 (9)이며, 트윈 회전 N도되었고, 나는 다음과 같은 코드로 레이블을 배치하려고 :DisplayObject.rotation이 trig 함수와 일치하지 않습니다.
이label.x = center.x + Math.cos((theta + n)/180 * Math.PI) * radius;
label.y = center.y + Math.sin((theta + n)/180 * Math.PI) * radius;
라벨이 자주 파이 슬라이스의 중심과 정렬되지 않습니다. 또한 파이 차트를 크게 확대하고 있기 때문에 오류가 상당 부분 발생하여 가끔 라벨에 파이 조각이 누락 될 수 있습니다. 오류는 상대적으로 예측할 수없는 것처럼 보이며 반올림 오류와 같이 대단한 것처럼 보입니다. 그러나 trig 함수는 소수점 이하 10 자리까지 평가됩니다. 여기서는 충분하지 않아야합니다.
레이블을 올바르게 배치하려면 어떻게해야합니까?
메모 : 회전을 사용하여 주위에서 레이블을 이동해도 잘 작동하지 않습니다. 중복 된 레이블을 방지하는 알고리즘을 작성할 때 다시 문제가 발생하기 때문입니다. 아! – futuraprime
theta + n은 원형 차트의 중심 주위에서 원형 조각의 회전입니까? – jestro
theta는 파이 조각의 중간 부분입니다. (첫 번째 조각이 25 %를 나타내면 세타가 45 도가되고 두 번째 조각이 50 %를 나타내면 세타는 180 도가됩니다.) 전체 원형은 애니메이션에 의해 n도 회전합니다. – futuraprime