差分

ナビゲーションに移動 検索に移動
ページの作成:「NSViewでは標準で「左下が原点で右が+Xで上+Y」となっている。 いわゆる小学校の算数で習う座標系だ。 エクセルのグラフな...」
NSViewでは標準で「左下が原点で右が+Xで上+Y」となっている。
いわゆる小学校の算数で習う座標系だ。
[[エクセル]]のグラフなども基本はこれである。

しかし[[コンピューター]]の世界ではなぜか古くから「左上が原点で下方向が+Yで右方向が+X」という座標系が一般的となっている。
PC-9801のGRAMもWindowsのGDIもDirectXも皆これである。
このためWindowsなどからアプリを移植する際にこの点を考慮しないでコピペすると逆さま表示になる。

しかし根本の[[ソースコード]]が壮大すぎて手を入れるのが難しい場合もある。
そういうときはNSViewのIsFlippedプロパティをオーバーライドして常に「true」を返すようにすればよい。
この設定は、NSGraphcis系のみならず、CoreGraphicsにも反映される。

<source lang="csharp">
// アンチエイリアス無効化
public partial class FlippedView : AppKit.NSView
{
public override bool IsFlipped { get { return true; } }
}
</source>

== 関連項目 ==
* [[Xamarin.Mac/CoreGraphicsの基本的な使い方]]
* [[Xamarin.Mac/CoreGraphicsでアンチエイリアスの有効無効を設定する]]
* [[Xamarin.Mac/CGImageをNSImageに変換する]]
* [[Xamarin.Mac/CGImageをファイルに保存する]]
* [[Xamarin.Mac/NSOpenGLViewを使う]]
* [[Xamarin.Mac/NSOpenGLViewをRetina Displayに対応させる]]
* [[Xamarin.Mac/スクリーンキャプチャを撮る]]
* [[Xamarin.Mac/ディスプレイの物理サイズを取得する]]

== 参考文献 ==
{{reflist}}

{{stub}}

[[category: Xamarin.Mac]]
[[category: Core Graphics]]
匿名利用者

案内メニュー