현재 내 프로그램에서는 사각형 격자의 사각형을 왼쪽 위 모서리로 정의했습니다. 정의를 변경하여 정사각형이 중심으로 정의되도록하고 싶습니다. 그러나 사각형의 X 및 Y 값은 반드시 라운드 숫자 여야합니다.점이있는 정사각형의 중심 찾기
점이되어 정방형의 상부 좌측 코너를 발견하기위한 방법
public Vector2 InSquare(Vector2 vector)
{
int x = (int)vector.X, y = (int)vector.Y;//floor of vector coordinates
x -= x % SquareSize;
y -= y % SquareSize;
return new Vector2(x, y);
}
SquareSize int 형식의 속성된다 (그것은 홀수하고있다). Vector2는 float X 및 Y 속성이있는 XNA 벡터입니다. SquareSize는 사각형의 가장자리 길이입니다.
정사각형의 정의를 중심점으로 변경할 수 있지만 중심점을 둥근 좌표로 유지하려면 어떻게해야합니까?
감사를
은 (는 이해하기 XNA 경험을 필요로하지 않기 때문에 나는 XNA로이 질문에 태그를하지 않았다).는 편집 : 내가해야 할 노력은 무엇
는 균일 한 사각형 격자와 게임의 수준을 표현하는 것입니다. 그리드의 사각형은 왼쪽 위 모서리에 의해 정의되었습니다. 그러나 어느 사각형이 레벨의 텍스처를 반복하여 차단되었는지, 각 점에 행렬을 적용한 다음 점이있는 사각형을 차단했는지, 왼쪽 위 모서리로 정의 된 사각형은 각 차단 된 사각형이 약간 벗어 났음을 의미합니다. 그것이 예정되었던 곳에서 왼쪽으로. 각 정사각형을 중심점으로 정의하면 장애물이있는 위치에 가까운 각 정사각형을 가질 수 있습니다.
문제가 더 잘 설명되기를 바랍니다.
그/그녀의 대답에 대해 고맙습니다. 현재 방법 :
public Vector2 InSquare(Vector2 vector)
{
float x = vector.X, y = vector.Y;//floor of vector coordinates
x -= x % SquareSize - (SquareSize/2);
y -= y % SquareSize - (SquareSize/2);
return new Vector2(x, y);
}
저는 Square 크기를 float로 변경했습니다.
난 정말 당신이 달성하려고 무엇을 이해하지 못하고는, 할 수있다 당신은 질문을 다시 형식화하는데 약간의 노력을 기울여야합니까? –
포인트는 정수일 수 있지만 PointF는 부동 소수점 숫자 일 수 있습니다. – jdweng
@WillemVanOnsem 불쌍한 질문을 보내서 유감입니다. 나는 졸리면서 스트레스를 받으면서 그것을 썼다. 그리고 다시 그것을함으로써 누군가의 시간을 낭비하지 않을 것이다. – user1461837