2009-11-20 3 views
2

이산 좌표 시스템을 나타 내기 위해 Apple 기반 키트에 적절한 구조가 제공됩니까? 나는 NSPoint의 필수 구성 요소를 사용할 수 있으며 규칙에 따라 이산 적으로 유지하거나 심지어 내 자신을 정의 할 수도 있습니다.CG/NSPoint와 같은 정수 튜플 유형입니까?

이미 올바르게 입력 된 문자가있는 경우에는 암시 적/명시 적 유형의 불필요한 것을 피하는 것이 좋습니다.

답변

5

나는 당신의 정확한 요구를 충족시키는 사람을 알고 있지 않습니다. CGPoint 또는 NSPoint을 확실히 사용할 수 있습니다. 그러나 값이 이산 정수가 될 것이므로 존재하지 않는 분수 부분의 정밀도를 낭비하는 이유는 무엇입니까? 또한 정수 값으로의 반복 된 캐스트는 빠르게 오래 걸립니다. 당신은 정수 타입을 사용하여 자신의 타입 정의를 만들과 같이하는 봉사 훨씬 더 좋을 것 : 당신이 값이 32 비트 범위를 초과하지 않습니다 알고있는 경우

typedef struct _DiscretePoint { 
    NSInteger x; 
    NSInteger y; 
} DiscretePoint; 

당신은 대신 NSIntegerint32_t을 사용할 수 있습니다 -이 것 64 비트 모드에서 일부 공간을 절약합니다. (NSInteger에 대한 자세한 내용은 this SO question을 참조하십시오.

+0

예, 동의합니다. 표준 API와 함께 제공되는 적절한 구조가 없습니다. 래스터 이미지/장치 치수 방법 , etc.) 일반적으로 점이나 이중 너비/높이 매개 변수 또는 접근자를 사용하거나 CGSize/CGPoint를 사용하여 모든 곳에서 떠 다니는 것을 발견했습니다. – groundhog