Как получить соотношение сторон разрешения экрана в приложении Mac - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь получить соотношение сторон для разрешений экрана ниже, мой код, из которого я получаю высоту ширины и частоту обновления

-(void)getSupportedDisplays{

    NSArray* theref  =  (__bridge NSArray *)(CGDisplayCopyAllDisplayModes ( CGMainDisplayID(), nil ));

    NSMutableArray * rezes = [[NSMutableArray  alloc]init];

    for (id aMode  in theref) {
        CGDisplayModeRef  thisMode = (__bridge CGDisplayModeRef)(aMode);
        size_t theWidth = CGDisplayModeGetWidth( thisMode );
        size_t theHeight = CGDisplayModeGetHeight( thisMode );
        double refresh = CGDisplayModeGetRefreshRate(thisMode);
        NSString *theRez = [NSString stringWithFormat:@"%zux%zu %d Hz",theWidth,theHeight,(int)refresh];

        if (![rezes containsObject:theRez]) {
            [rezes addObject:theRez];
        }
    }

    NSLog(@" display deatails = %@", rezes);


}

Я хочу, чтобы соотношение сторон для каждого разрешения было примерно таким:

like this

Есть предложения?

Заранее спасибо !!!

1 Ответ

1 голос
/ 08 апреля 2019

Вы можете получить соотношение сторон по ширине и высоте. Все, что вам нужно, это найти Величайший общий коэффициент для ширины и высоты.

static int gcd (int a, int b) {
    return (b == 0) ? a : gcd (b, a%b);
}

это вернет Величайший общий фактор

  int commanDivideFactor = gcd(theWidth, theHeight);

  NSLog(@"%d : %d", theWidth/commanDivideFactor, theHeight/commanDivideFactor);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...