2

私はCocoaでの描画にまったく慣れておらず、六角形のグリッドを含む実験的なアプリに取り組んでいます。これを簡単にするために、Y軸が左に30度回転するように座標系を傾斜させたいと思います。私はこれをAppleのCocoaDrawingGuideで見つけました。これは、それが可能であることを示しています。

不均一なスケーリング変換と回転変換を組み合わせることで、コンテンツに歪んだ効果を与えることもできます。

ただし、これがどのように機能するかを理解することも、例を見つけることもできません。

X軸が水平のままで、Y軸が反時計回りに30度回転するように、NSAffineTransformを設定するにはどうすればよいですか?

4

1 に答える 1

2

残念ながら、変換や回転などの場合のように、これを行う簡単な方法はありません。

変換行列を作成する必要があります。

0            tan(skewy)   0
tan(skewx)   0            0
0            0            1

で使用setTransformStruct:するNSAffineTransformStruct

typedef struct _NSAffineTransformStruct {
  CGFloat m11, m12, m21, m22;
  CGFloat tX, tY;
} NSAffineTransformStruct;

スキューの場合、m11、m22、tx、およびtyはゼロです。m12はtan(skewx)で、m21はtan(skewy)です。

Appleのドキュメントには、マトリックスに関する詳細情報があります:https ://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Transforms/Transforms.html#//apple_ref/doc/uid/TP40003290- CH204-BCIIICJI

お役に立てれば!

于 2012-10-05T18:56:51.333 に答える