クリッピング領域

Similar documents
VB.NET解説

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

グラフィックス

アプリケーション

データアダプタ概要

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

PowerPoint プレゼンテーション

intra-mart Accel Platform — 招待機能プログラミングガイド   初版  

バスケットボール

ブロック パニック

PowerPoint プレゼンテーション

要旨 : データステップ及び SGPLOT プロシジャにおける POLYGON/TEXT ステートメントを利用した SAS プログラムステップフローチャートを生成する SAS プログラムを紹介する キーワード :SGPLOT, フローチャート, 可視化 2

チア ダンス

Microsoft PowerPoint - OOP.pptx

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

プロシード

PsychoPy Builderにおける 実験の動的な制御の方法

プロバイダ ユーザーズガイド

ルーレットプログラム

PowerPoint プレゼンテーション

Microsoft PowerPoint ppt

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

GS1-128 の描画 DLL について (ver. 2.3) 動作環境など動作環境 WindowsXP Windows Vista Windows7 Windows8/8.1 Windows10 上記 OS について すべて日本語版を対象としております 32bit アプリケーションから呼び出される

NotifyIconコントロール

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

manua6.PDF

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

Graphical User Interface 描画する

ガイダンス

正規表現応用

ファイル操作

簡単ラベル作成 印刷マニュアル

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

ガイダンス

Delphi/400でFlash動画の実装

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

ICONファイルフォーマット

Android Layout SDK プログラミング マニュアル


ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

StarBoard Software ユーザーズガイド 目次 1. 教育用端末 (imac) の起動と,StarBoard Software の起動 電子黒板の起動 電子黒板の終了 StarBoard Software の使い方..

CONTEC DIOプロバイダ ユーザーズガイド

PowerPoint プレゼンテーション

TestDesign for Web

CocoaDrawingGuide

ブロック崩し風テニス

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

ファイル操作-バイナリファイル

Microsoft Word - as3_errata.doc

印刷

目次 1. アニメーションの仕組み 3 2. ワードアートでムービーのタイトルを作成 7 3. まとめ 課題にチャレンジ 19 [ アニメーション ] 機能 PowerPoint に搭載されている [ アニメーション ] 機能を使用すると 文字や図形にアニメーション ( さまざまな動きや

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

C#の基本

ドッグファイト

14.event-handling

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

工程’S 9 ヘルプ Excelバーチャート

Microsoft PowerPoint P演習 第5回 当たり判定(2)【課題】.pptx

Javaプログラムの実行手順

JavaScript 演習 2 1

<B54CB5684E31A4E9C0CBA4E5AA6BC160BEE3B27AA544A5552E706466>

Create!Form V11 - Excel 出力設定

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライト スプライト Pygame では pygame.sprite を用いる事でスプライトの管理 描画 衝突判定等を簡単に行う事が出来る 此れを利用してキャラクター操作に関する各種機能をスプライトクラスとして 1 個

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

単語の比較とスペルチェック COMPARA Word のテキスト内にある単語を抽出し 異なり語のリストを作成するプログラムです また Word のテキスト内の単語 ( または単語リスト ) を 先に作成した単語リストと照合して その異同を確かめます フォーム 単語リスト単語集計同語検索異語検索同語リ

情報基礎A

ファイル操作-インターネットキャッシュ

UI コントロール機能一覧通常の記録機能でコントロールが Unknown と記録された場合 UI コントロールをご使用頂くと動作可能となります 命令や例を参考に 行いたい操作に合う UI コントロール機能をご使用ください また 行いたい操作が一覧にない場合は お問い合わせください 注意 通常の記録機

Microsoft Word - VB.doc

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

< F2D D E6A7464>

XAML Do-It-Yourself シリーズ 第 12 回 3D グラフィックス -1-

Microsoft Word - 415Illustrator

情報資源組織演習B:

触覚マウスライブラリを使った 触覚付き Web ページの作り方 ver 富士ゼロックス株式会社 -1-

Create!Form V11 - インポート

ListViewコントロール

4D Progress( 進捗バー ) 4D には新しい組み込みコンポーネント 4D Progressが含まれます このコンポーネントを使用して (Mac OSのFinderのように ) 1つ以上の進捗バーを同じウィンドウに表示することができます 各進捗バーにはProgress Newメソッドから自

intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  

スライド 0

スライド 1

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

Java言語 第1回

Prog2_12th

3D回転体プログラム

PowerPoint プレゼンテーション

ガイダンス

Microsoft PowerPoint - chap10_OOP.ppt

sinfI2005_VBA.doc

Cisco Jabber for Windows のカスタマイズ

構造体

[ 学習動画 ] 一覧 学習の閲覧や質問の際にご利用ください 閲覧が終了した動画をチェックして 学習の進行状況を確認しましょう! グラフィックリファレンス 閲覧チェック 動画タイトル 時間 ( 計 20 時 10 分 ) Step1 Illustratorの基本操作 Illustratorの起動と基

< 目次 > 1. プロジェクト作成 1 2. 環境設定 2 3. 帳票レイアウト作成 3 (1) ページサイズの設定 (2) プレ印刷 / 背景画像の設定 (3) 印字項目の配置 (4) プレビュー表示 4. 可変データ定義 7 (1) 入力ファイル設定 (2) 入力フィールド設定 (3) 変換フ

XAML Do-It-Yourself シリーズ 第 11 回 2D グラフゖックス -1-

ToDo: 今回のタイトル

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

Microsoft Word - Meta70_Preferences.doc

Transcription:

グラフィックス 領域の利用 GDI+ での領域 領域は 出力デバイスのディスプレイ範囲の一部です 単純な領域 ( 単一の四角形 ) と複雑な領域 ( 複数の多角形と閉じた曲線の組み合わせ ) があります 四角形から構築された領域とパスから構築された領域を次の図に示します 領域の使用 領域は クリッピングとヒットテストに使用されることがよくあります クリッピングでは ディスプレイ範囲の特定の領域 ( 通常は更新が必要な部分 ) だけに描画を制限します ヒットテストでは マウスボタンが押されたときにカーソルが画面上の特定の領域内にあるかどうかを判断します 四角形またはパスから領域を構築できます 既存の領域を組み合わせて複雑な領域を作成することもできます Region クラスでは 領域を組み合わせるためのメソッドとして Intersect Union Xor Exclude および Complement が用意されています 2 つの領域の積集合は 両方の領域に属しているすべての点の集合です 和集合は いずれか一方または両方の領域に属しているすべての点の集合です 1 つの領域の補集合は その領域に属していないすべての点の集合です 上記の図にある 2 つの領域の積集合と和集合を次の図に示します Xor メソッドは 2 つの領域に対して適用され いずれか一方の領域にだけ属しているすべての点を含む領域を生成します Exclude メソッドは 2 つの領域に対して適用され 1 番目の領域には属しているが 2 番目の領域には属していないすべての点を含む領域を生成します このトピックの最初に示した 2 つの領域に対して Xor メソッドと Exclude メソッドを適用して生成された領域を次の図に示します -1-

領域を塗りつぶすには Graphics オブジェクト Brush オブジェクト および Region オブジェクトが必要です Graphics オブジェクトには FillRegion メソッドが用意されており Brush オブジェクトには色やパターンなど 塗りつぶしの属性が格納されます 純色で領域を塗りつぶす例を次に示します mygraphics.fillregion(mysolidbrush, myregion) mygraphics.fillregion(mysolidbrush, myregion); GDI+ での描画サーフェイスの制限 クリッピングでは 特定の四角形または領域だけに描画を制限します 文字列 "Hello" をハート形の領域に合わせてクリップした例を次の図に示します 領域のクリッピング 領域はパスから構築でき パスは文字列のアウトラインを含むことができるため テキストのアウトラインをクリッピングに使用できます 複数の同心楕円をテキスト文字列の内部に合わせてクリップした例を次の図に示します クリッピングを使用して描画するには Graphics オブジェクトを作成し このオブジェクトの Clip プロパティを設定してから 同じ Graphics オブジェクトの描画メソッドを呼び出します mygraphics.clip = myregion mygraphics.drawline(mypen, 0, 0, 200, 200) mygraphics.clip = myregion; mygraphics.drawline(mypen, 0, 0, 200, 200); クリッピング領域 Graphics クラスのプロパティの 1 つとしてクリップ領域があります 指定の Graphics オブジェク -2-

トによって行われるすべての描画は その Graphics オブジェクトのクリップ領域に限定されます クリップ領域を設定するには SetClip メソッドを呼び出します 使用例 1 つの多角形だけから成るパスを作成する例を次に示します このコードは 次に そのパスに基づいて領域を作成します 作成された領域は Graphics オブジェクトの SetClip メソッドに渡され 2 つの文字列が描画されます クリップされた文字列を次の図に示します ' Create a path that consists of a single polygon. Dim polypoints As Point() = { _ New Point(10, 10), _ New Point(150, 10), _ New Point(100, 75), _ New Point(100, 150)} Dim path As New GraphicsPath() path.addpolygon(polypoints) ' Construct a region based on the path. Dim [region] As New [Region](path) ' Draw the outline of the region. Dim pen As Pen = Pens.Black e.graphics.drawpath(pen, path) ' Set the clipping region of the Graphics object. e.graphics.setclip([region], CombineMode.Replace) ' Draw some clipped strings. Dim fontfamily As New FontFamily("Arial") Dim font As New Font( _ fontfamily, _ 36, _ FontStyle.Bold, _ GraphicsUnit.Pixel) Dim solidbrush As New SolidBrush(Color.FromArgb(255, 255, 0, 0)) -3-

e.graphics.drawstring( _ "A Clipping Region", _ font, _ solidbrush, _ New PointF(15, 25)) e.graphics.drawstring( _ "A Clipping Region", _ font, _ solidbrush, _ New PointF(15, 68)) // Create a path that consists of a single polygon. Point[] polypoints = { new Point(10, 10), new Point(150, 10), new Point(100, 75), new Point(100, 150)}; GraphicsPath path = new GraphicsPath(); path.addpolygon(polypoints); // Construct a region based on the path. Region region = new Region(path); // Draw the outline of the region. Pen pen = Pens.Black; e.graphics.drawpath(pen, path); // Set the clipping region of the Graphics object. e.graphics.setclip(region, CombineMode.Replace); // Draw some clipped strings. FontFamily fontfamily = new FontFamily("Arial"); Font font = new Font( fontfamily, 36, FontStyle.Bold, GraphicsUnit.Pixel); SolidBrush solidbrush = new SolidBrush(Color.FromArgb(255, 255, 0, 0)); e.graphics.drawstring( "A Clipping Region", font, solidbrush, new PointF(15, 25)); e.graphics.drawstring( "A Clipping Region", font, -4-

solidbrush, new PointF(15, 68)); 前述の例は Windows フォームと一緒に使用することが想定されていて PaintEventHandler のパラメータである PaintEventArgs e が必要です 領域でヒットテスト ヒットテストの目的は アイコンやボタンなどの特定のオブジェクト上にカーソルが配置されているかどうかを確認することです 使用例 2 つの四角形の領域の交差させることにより 十字型の領域を作成する例を次に示します 変数 point が 最新のクリック位置を保持しているとします このコードは point が十字型の領域内にあるかどうかを確認します point が保持している位置が領域内にある場合は 領域が不透明な赤いブラシで塗りつぶされます 領域内にはない場合 領域は半透明の赤いブラシで塗りつぶされます Dim point As New Point(60, 10) ' Assume that the variable "point" contains the location of the ' most recent mouse click. ' To simulate a hit, assign (60, 10) to point. ' To simulate a miss, assign (0, 0) to point. Dim solidbrush As New SolidBrush(Color.Black) Dim region1 As New [Region](New Rectangle(50, 0, 50, 150)) Dim region2 As New [Region](New Rectangle(0, 50, 150, 50)) ' Create a plus-shaped region by forming the union of region1 and region2. ' The union replaces region1. region1.union(region2) If region1.isvisible(point, e.graphics) Then ' The point is in the region. Use an opaque brush. solidbrush.color = Color.FromArgb(255, 255, 0, 0) Else ' The point is not in the region. Use a semitransparent brush. solidbrush.color = Color.FromArgb(64, 255, 0, 0) End If e.graphics.fillregion(solidbrush, region1) Point point = new Point(60, 10); // Assume that the variable "point" contains the location of the -5-

// most recent mouse click. // To simulate a hit, assign (60, 10) to point. // To simulate a miss, assign (0, 0) to point. SolidBrush solidbrush = new SolidBrush(Color.Black); Region region1 = new Region(new Rectangle(50, 0, 50, 150)); Region region2 = new Region(new Rectangle(0, 50, 150, 50)); // Create a plus-shaped region by forming the union of region1 and // region2. // The union replaces region1. region1.union(region2); if (region1.isvisible(point, e.graphics)) { // The point is in the region. Use an opaque brush. solidbrush.color = Color.FromArgb(255, 255, 0, 0); } else { // The point is not in the region. Use a semitransparent brush. solidbrush.color = Color.FromArgb(64, 255, 0, 0); } e.graphics.fillregion(solidbrush, region1); 前述の例は Windows フォームと一緒に使用することが想定されていて PaintEventHandler のパラメータである PaintEventArgs e が必要です -6-