공간의 참조 점을 중심으로 규칙적으로 간격을 둔 문의 원을 만들어야합니다. 프로그램이 실행될 때마다 원안에 다른 수의 항목이 표시되므로 증가 된 항목 수를 수용하도록 자동으로 조정됩니다. 나는 이것이 프로그래밍 문제 라기보다 수학적 질문에 더 가깝다는 것을 알고 있지만, 나는 혼란 스럽다. 다음 코드는 내가 가진 것만 큼 가까이 있습니다 :점 주위를 원으로 객체 만들기
block->setPosition(core::vector3df(sin(segdeg*itemnumber)*radius+referencepoint.X,
0,
cos(segdeg*itemnumber)*radius+referencepoint.Z));
블록이 객체이며,이 코드는 각 항목에 대해 실행됩니다. segdeg는 360/항목 수입니다. 다시 말하면, SEGMENT DEGrees. 반지름은 중심점에서 얼마나 멀리 있어야하는지 나타냅니다. 항목 번호는 해당 항목의 색인입니다. 항목 번호는 어느 항목입니까?
이 코드는 각 문을 매우 가깝게하지만 여전히 약 10-15도 정도 떨어져 있습니다. (첫 번째 문은 항상 켜져 있습니다.) 항목은 모두 중심점에서 정확한 거리입니다. 나는 이것이 정말로 분명한 대답이 될 것이라 확신하지만, 몇 시간 동안 그것을 풀 수는 없었고 나는 내 엉덩이를 끈적 거리며 봤다.
누구든지 내 알고리즘을 수정할 수 있습니까?
성공! 라디안 트릭이 작동했습니다. 그러나 "2 * 3.14/etc"를 넣는 것은 매우 이상하게 만들었지 만, segdeg를 0.0174532925 (segdeg를 라디안으로 변환)만큼 곱하면 모두 잘됩니다. 마 히어로 : 3 – Magicaxis