저는 현재 물리학 및 게임 엔진을 구축하기를 희망하는 기하학 엔진에서 작업하고 있습니다. 문제가 있습니다. 직사각형을 회전 시키면 정사각형이 먼저 다이아몬드 모양으로 변한 다음 거의 보이지 않게되고 다시 정사각형으로 돌아갑니다.회전 사각형으로 인해 늘어납니다.
for(int i = 0; i < fv.length; i++) {
double[] ve = fv[i];
ve[0] = ve[0] - getCMX();
ve[1] = ve[1] - getCMY();
double sin = Math.sin(getRot());
double cos = Math.cos(getRot());
ve[0] = ((cos * ve[0]) - (sin * ve[1]));
ve[1] = ((-sin * ve[0]) + (cos * ve[1]));
ve[0] = ve[0] + getCMX();
ve[1] = ve[1] + getCMY();
fv[i] = ve;
}
fv는 2D 이중 배열입니다. getCMX/CMY는 정사각형의 중심을 가져옵니다.
어떤 생각이라도 반가워요, 제 목표는 사각형을 회전시키면서 같은 면적을 유지하는 것입니다 ...?
안녕하세요. 코드에서 오류를 발견하도록 사람들에게 요청하는 것은 특히 생산적이지 않습니다. 디버거를 사용하거나 인쇄 문을 추가하여 프로그램의 진행 상황을 추적하고 발생 예상과 비교하여 문제를 격리해야합니다. 이 둘이 갈라지면 문제를 발견했습니다. (그리고 필요하다면 [최소 테스트 케이스] (http://sscce.org)를 구성해야합니다.) –
네, 이것은 코드 문제보다 수학이 더 낫다고 생각합니다. 기하학을 가르쳐 준 사람으로서, 나는 무엇을 기대해야할지 모르겠다. 그러나 나는 그것이 나를 얻는 것이 정확하지 않다고 가정하고있다. – user2507230