「Xamarin.Mac/NSViewの座標系を左下原点から左上原点に変更する」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
3行目: 3行目:
 
[[エクセル]]のグラフなども基本はこれである。
 
[[エクセル]]のグラフなども基本はこれである。
  
しかし[[コンピューター]]および[[コンピューター・グラフィックス]]の世界ではなぜか古くから「左上が原点で下方向が+Yで右方向が+X」という座標系が一般的となっている。
+
しかし[[コンピューター]]の世界ではなぜか古くから「左上が原点で下方向が+Yで右方向が+X」という座標系が一般的となっている。
[[PC-9801]]の[[GRAM]]も[[Windows]]の[[GDI]]も[[DirectX]]も皆これである。
+
PC-9801のGRAMもWindowsのGDIもDirectXも皆これである。
このため[[Windows]]などから[[アプリ]]を[[移植]]する際にこの点を考慮しないで[[コピペ]]すると逆さま表示になる。
+
このためWindowsなどからアプリを移植する際にこの点を考慮しないでコピペすると逆さま表示になる。
  
 
しかし根本の[[ソースコード]]が壮大すぎて手を入れるのが難しい場合もある。
 
しかし根本の[[ソースコード]]が壮大すぎて手を入れるのが難しい場合もある。
 
そういうときはNSViewのIsFlippedプロパティをオーバーライドして常に「true」を返すようにすればよい。
 
そういうときはNSViewのIsFlippedプロパティをオーバーライドして常に「true」を返すようにすればよい。
この設定は、NSGraphcis系のみならず、[[CoreGraphics]]にも反映される。
+
この設定は、NSGraphcis系のみならず、CoreGraphicsにも反映される。
  
 
<source lang="csharp">
 
<source lang="csharp">
15行目: 15行目:
 
public partial class FlippedView : AppKit.NSView
 
public partial class FlippedView : AppKit.NSView
 
{
 
{
    // trueで左上原点
 
    // falseで左下原点
 
 
     public override bool IsFlipped { get { return true; } }
 
     public override bool IsFlipped { get { return true; } }
 
    // 描画
 
    public override void DrawRect(CoreGraphics.CGRect dirtyRect)
 
    {
 
        var cgContext = NSGraphicsContext.CurrentContext.GraphicsPort;
 
        cgContext.MoveTo(100, 100);
 
        cgContext.AddLineToPoint(200, 200);
 
        cgContext.StrokePath();
 
    }
 
 
}
 
}
 
</source>
 
</source>
39行目: 28行目:
 
* [[Xamarin.Mac/スクリーンキャプチャを撮る]]
 
* [[Xamarin.Mac/スクリーンキャプチャを撮る]]
 
* [[Xamarin.Mac/ディスプレイの物理サイズを取得する]]
 
* [[Xamarin.Mac/ディスプレイの物理サイズを取得する]]
* [[Xamarin.Mac/NSViewControllerからNSWindowを取得する]]
 
  
 
== 参考文献 ==
 
== 参考文献 ==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: