네 모서리에서 점의 그리드를 생성하려고합니다. 이 모서리를 자유롭게 배치 할 수 있으므로 그리드에 원근감이있는 것처럼 보입니다. 나는 구석이 시계 방향으로 순서대로 처리에서 다음 코드를 작성했습니다네 모서리에서 원근감있는 그리드 만들기
이것은 보간 된 포인트 그리드를 생성
PVector[][] setGrid(PVector[] corners, int cols, int rows) {
PVector[][] grid = new PVector[rows][cols];
for(int y = 0; y < rows; y++) {
float fY = (float)y/(rows - 1);
PVector p1 = PVector.lerp(corners[0], corners[3], fY);
PVector p2 = PVector.lerp(corners[1], corners[2], fY);
for(int x = 0; x < cols; x++) {
grid[y][x] = PVector.lerp(p1, p2, (float)x/(cols-1));
}
}
return grid;
}
(- 왼쪽부터), 그러나 그것은 일치하지 않습니다 원근감있는 격자. 모든 인라인 포인트는 등거리이며 가장 가까운 포인트는 먼 것보다 분리되어야합니다. 가능하면
나는
내 대답을 명확히하기 위해 편집
자바/처리에서, 어떤 방향을 부탁드립니다. 나는 4 개의 임의의 코너 포인트를 정의하고, perspective deformed grid을 생성하는 모든 포인트를 얻고 싶습니다. 원근법 dX1! = dX2뿐만 아니라 dY1! = dY2이기 때문에주의하십시오. 내가 썼던 코드는이 효과가 없다. (나는 이것을 안다. 그러나 내가 원하는 것을 어떻게하는지 모른다.) 포인트가 보간 될 때 dX1 = dX2 = ... = dXi이고 dY1 = dY2 = ... = dYi
원근감 변환에 대해 읽었지만 이미지를 변환 할 필요가 없습니다. 단지 grid points coordinates이 필요합니다.
난 정말 모르겠어요 무엇을 너는 묻고있어. 연결이 끊어진 기능 대신 [mcve]를 게시 할 수 있습니까? 당신이하려고하는 것을 모의 게시 할 수 있습니까? 어떤 코드 줄이 예상 한 것과 다른 방식으로 작동합니까? –
나는 나 자신을 조금 더 잘 설명하려고 노력했고, 내가 원하는 결과의 그림을 추가했다. – markusand