LoginSignup
3
2

More than 5 years have passed since last update.

アスペクト比を保った長方形の拡大縮小

Last updated at Posted at 2013-02-28

ここでいうアスペクト比とは長方形の高さに対する幅の長さのこと。

長方形の大きさだけが問題なのでCGSizeの関数を作る。

// アスペクト比の取得
CGFloat CGSizeGetAspect(CGSize size) {
    return size.width / size.height;
}

// sizeに内接する、アスペクト比がaspectの長方形の大きさを返す。
CGSize CGSizeMakeAspect(CGSize size, CGFloat aspect) {
    if (CGSizeGetAspect(size) >= aspect)
        return CGSizeMake(size.height * aspect, size.height);
    else
        return CGSizeMake(size.width, size.width / aspect);
}

// sizeに外接する、アスペクト比がaspectの長方形の大きさを返す。
CGSize CGSizeMakeAspectFill(CGSize size, CGFloat aspect) {
    if (CGSizeGetAspect(size) < aspect)
        return CGSizeMake(size.height * aspect, size.height);
    else
        return CGSizeMake(size.width, size.width / aspect);
}

関数名はAVFoundationを参考にした。
CGSize~っていう名前の関数を作ってもいいんだろうか? ObjCでいうカテゴリ的なものだと思えば問題無し……か?

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2