PowerPoint プレゼンテーション

Similar documents
PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

C#の基本

C#の基本2 ~プログラムの制御構造~

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

スライド 1

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

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

(一日目前半)2017SV演習C++CLI

Microsoft Word - VB.doc

ICONファイルフォーマット

スライド 1

コンピュータグラフィックス基礎              No

Microsoft Word - 92.doc

Word2007 Windows7 1 パンジーを描こう 暮らしのパソコンいろは 早稲田公民館 ICT サポートボランティア

パラパラ漫画

プロセス間通信

ウィンドウ操作 応用

グラフィックス

Microsoft Word - サンプル _図面編集_.doc

< F2D D E6A7464>

Microsoft Word - Grspes…~…j…}…j…–…A…‰6.0.doc

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

Windows (L): D:\jyugyou\ D:\jyugyou\ D:\jyugyou\ (N): en2 OK 2

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

Processingをはじめよう

PowerPoint プレゼンテーション

Autodesk Revit Structure 2014

医用工学概論  Medical Engineering (ME)   3年前期の医用工学概論実習と 合わせ、 医療の現場で使用されている 医用機器を正しく安全に使用するために必要な医用工学(ME)の 基礎知識を習得する。

Chart3D for WPF/Silverlight

Graphical User Interface 描画する

4 横髪と模様を描きます (1) 基本図形 月 を選び 図形を描きます 調整ハンドルを横方向いっぱいまでドラッグします 図形を細長く変形します 塗りつぶしの色 黒 (2) 線 曲線 を選び 下図の図形を描きます 黒い頂点の位置を確認しましょう 図形の塗りつぶし 標準の色 赤 コピー 変形 縮小 を繰

PowerPoint プレゼンテーション

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

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

Mapmakerfor の手順下絵を準備 作者の設定した大きさで作成する場合 下絵にする地図を挿入 トリミングと大きさの調整 大きさを調整した画像を保存 下絵を背景に設定 作成画面の大きさを調整 1 自分で用意した下絵を背景にする場合 下絵を背景に設定 作成画面の大きさを調整 画像が大きい場合シート

Microsoft Word - zoom-it-man.doc

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

PowerPoint Presentation

JavaScript 演習 2 1

貼り付け コピーを貼り付ける ( ホームタブ ) 書式のコピー/ 貼り付け 同じ様式で 他の図形を同じ色や線で適用します ( ホームタブ ) グループ化( オブジェクトのグループ化 ) 複数の図形をまとめて一つの図形にする ( ページレイアウトタブ グループ化 または描画ツール 書式 グループ化 )

画像参照画像送り 5 画像下部に再生ボタンが表示されます 再生ボタンをクリックすると 自動コマ送りされます 1

XAML Do-It-Yourself シリーズ 第 1 回 XAML 概要 -1-

Java言語 第1回

このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更

A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3,

情報システム設計論II ユーザインタフェース(1)

VB.NET解説

14.event-handling

データ構造とアルゴリズム論

XAML の勉強上要! WPF アプリケーションは作れます

3D回転体プログラム

ファイル操作

Microsoft Word - gnuplot

ルーレットプログラム

基本作図・編集

基本作図・編集

基本作図・編集

UMLプロファイル 機能ガイド

Transcription:

1 02 グラフゖックで簡単な図形を描く図形描画プログラム 1 今回作成するゕプリケーションの概要 ボタンをクリックすると図形を描くプログラム 行われる動作 [1] ボタンをクリック [2] そのボタンに対する図形を描く これを使用者とコンピュータの関係で描くと [ 使用者 コンピュータ ] ボタンをクリック [ 使用者 コンピュータ ] 図形を描画して見せる 使用者がコンピュータにすること ボタンをクリック Button コントロール コンピュータがすること 図形を描く コンピュータが使用者にすること 描いた図形を示したい! PictureBox コントロール 必要なコントロールは次の通り Button コントロール ( コンピュータにどの図形を描くかを示す ) PicuterBox コントロール (BMI を表示する ) コントロールをどのように配置するか概略を描くと 図形描画プログラム ここをクリックすると円を描く (Button コントロール ) ここをクリックすると四角形を描く (Button コントロール ) ここをクリックすると三角形を描く (Button コントロール ) 図形を描画するところ PictureBox コントロール ここをクリックするとらせんを描く (Button コントロール )

2 2 Visual Studio 2010 の起動と新規プロジェクトの作成 前回やったとおり Visual Studio 2010 を起動 [1] スタート [2] すべてのプログラム [3] Visual Studio 2010 のフォルダ [4] Visual Studio 2010 のゕコン 新規プロジェクトも前回の手順で作成 [1] メニュー フゔル [2] 新規作成 [3] プロジェクト [4] Visual C# [5] Windows フォームゕプリケーション [6] プロジェクト名 を入力 ( 今回は JKJ02) [7] 参照 をクリックして プロジェクトを保存する場所を選択 [8] ソリューションのデゖレクトリを作成 のチェックははずす [9] OK をクリック 3 コントロールの配置 PictureBox コントロール 1 個 Button コントロール 1 個をツールボックスからドラッグ & ドロップして配置 場所は後で調節するので適当に配置 ボタンは 1 個だけ配置 残りのボタンはあとで配置する PictureBox コントロール Button コントロール

3 下の図の通り コントロールのプロパテゖを設定し 配置を調整する Name Form1 Text 図形描画プログラム Name btncircle Text 円 Name pbcampus Size 300, 300 位置はマウスでドラッグして だいたいこのあたりに配置する このあたりをドラッグすると フォームの大きさを変えることができる だいたいこれぐらいの大きさにする 4 グラフゖック描画の準備のプログラムの入力 (1) ソリューションエクスプローラーの Form.cs で 右クリック (2) コードの表示をクリック (1) 右クリック (2) 左クリック

4 (3) Form.cs のプログラムが表示される using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace JKJ02al public partial class Form1 : Form public Form1() InitializeComponent(); 利用するコンポーネントを列記 Form クラスから継承された Form1 クラスということ ここで変数を宣言すると どのメンバ関数でも参照できるメンバ変数になる Form1 クラスのコンストラクタ Form1 が作成されたとき 実行 } } } このフォームを利用するときに真っ先に動作してほしいプログラムをここに書く デザナで配置 設定されたコントローラをプログラム上にとりこむ関数 消してはいけない (4) メンバ変数を宣言する部分に 以下のプログラムを入力する public partial class Form1 : Form Bitmap bmpcampus; Graphics gracampus; Pen pendraw; public Form1() この 3 行を入力 絵を描くキャンパス Bitmap 絵を描く人 Graphics 絵を描く Pen これらのンスタンスをメンバ変数として生成し どの関数 どのベントからもゕクセスできるようにしている

5 (5) コンストラクタの部分に以下の 4 行を入力 public Form1() InitializeComponent(); bmpcampus = new Bitmap(pbCampus.Width, pbcampus.height); pbcampus.image = bmpcampus; gracampus = Graphics.FromImage(pbCampus.Image); pendraw = new Pen(Color.Black, 3); } この 4 行を入力 bmpcampus = new Bitmap(pbCampus.Width, pbcampus.height); pbcampus と同じ大きさのビットマップを作成する pbcampus bmpcampus pbcampus.height プロシージャウゖンドウの Size で設定した値 pbcampus.width pbcampus.image = bmpcampus; pbcampus の Image に bmpcampus を関連付ける pbcampus こうすれば ウゖンドウの再描画の処理を pbcampus に任せることができる bmpcampus

6 gracampus = Graphics.FromImage(pbCampus.Image); gracampus は pbcampmus の Image に描くようにする pendraw = new Pen(Color.Black, 3); ペンの設定を 黒色 で 太さ 3 にする 5 円 ボタンを押されたときのプログラムを入力 (1) From1.cs [ デザン ] タグをクリックして フォームのデザンするタグへ戻る (2) 円 ボタン (btncircle) をダブルクリック (1) 左クリック (2) ダブルクリック (3) プログラムを入力するタグに移動し 自動的に btncircle_click 関数が作られる この btncircle_click 関数の中身を次のように入力する private void btncircle_click(object sender, EventArgs e) gracampus.clear(color.white); gracampus.drawellipse(pendraw, 50, 50, 200, 200); pbcampus.refresh(); } この 3 行を入力

7 gracampus.clear(color.white); gracampus は Graphics.FromImage(pbCampus.Image) で作成されているので これのメソッド ( メンバ関数 ) を呼び出すことは pbcampus にグラフゖックを描くことになる Graphics のメソッド Clear は指定された色でグラフゖックを消去する すなわち gracampus.clear(color.white); は pbcampus を白色で塗りつぶすということを行う gracampus.drawellipse(pendraw, 50, 50, 200, 200); DrawEllipse メソッドは楕円を描く 楕円の縦方向と横方向の長さが等しければ円になる 描くときの線の色や太さは Pen クラスで示す 今回はすでに生成しておいた pendraw ( 黒色で太さ 3) を使う 50, 50 は楕円を囲む四角形の左上の座標 (Left, Top) 200, 200 は楕円を囲む四角形の幅 Width と高さ Height Left Top Height Width pbcampus.refresh(); 描かれたグラフゖックスは適当なタミングを見計らって表示される 自分で意図的に描画結果を表示させたいときは Refresh() を呼び出す必要がある

8 6 円 ボタンを押したときの動作確認 (1) 緑の三角をクリックしてプログラムをコンパルして 起動 (2) 円 ボタン (btncircle) をクリック (3) 円が描画されるのを確認 (4) をクリックしてプログラムを止める (1) 緑の三角をクリック (2) 円 ボタンをクリック (3) 円が描けたか確認 (4) をクリックして終了 7 四角 三角 らせん ボタンの配置 Button コントロールを 3 つ図のように配置し プロパテゖを設定する Name Text Name Text Name Text btnrectangle 四角 btntriangle 三角 btnspiral らせん

9 8 四角 ボタンを押されたときのプログラムを入力 四角 ボタンをダブルクリックして btnrectangle_click 関数を自動的に生成して 以下のプログラムを入力する private void btnrectangle_click(object sender, EventArgs e) gracampus.clear(color.white); gracampus.drawrectangle(pendraw, 50, 50, 200, 200); pbcampus.refresh(); } この 3 行を入力 gracampus.drawrectangle(pendraw, 50, 50, 200, 200); DrawRectangle メソッドは四角形を描く 縦と横の長さが等しければ正方形になる 描くときの線の色や太さは Pen クラスで示す 今回はすでに生成しておいた pendraw ( 黒色で太さ 3) を使う 50, 50 は四角形の左上の座標 (Left, Top) 200, 200 は四角形の幅 Width と高さ Height Left Top Height Width

10 9 三角 ボタンを押されたときのプログラムを入力 三角 ボタンをダブルクリックして btntriangle_click 関数を自動的に生成して 以下のプログラムを入力する 三角形を描く関数はないので 3 本の線を引いて三角形を描いている private void btntriangle_click(object sender, EventArgs e) gracampus.clear(color.white); gracampus.drawline(pendraw, 150, 50, 50, 250); gracampus.drawline(pendraw, 150, 50,250, 250); gracampus.drawline(pendraw, 50,250,250, 250); pbcampus.refresh(); } この 5 行を入力 gracampus.drawline(pendraw, 150, 50, 50, 250); DrawRectangle メソッドは線を描く 描くときの線の色や太さは Pen クラスで示す 今回はすでに生成しておいた pendraw ( 黒色で太さ 3) を使う 150,50 は線の始点の座標 (xs, ys) 50, 250 は線の終点の座標 (xe, ye) である 座標の原点 (0, 0) は左上 始点の座標 (xs, ys) 終点の座標 (xe, ye)

11 10 らせん とは r θ 左の図のように 原点から遠ざかりながら離れていく点の軌跡を描いたものが らせん である 回転角度を θ 原点と回転移動する点との距離を r とすると r = a θ になる ここで a は定数である 原点からの距離 r と角度 θ で表されている点の座標は極座標形式 r これをグラフゖックで表現するためには直交座標系形式に変換する必要がある x = r cos θ y = r sin θ θ r cos θ r sin θ

12 11 曲線を描くゕルゴリズム らせんの曲線を描くために 多くの曲線上の点を計算する この多くの点を短い直線で結んで 曲線を表現する (0) まず 計算される点と描かれる曲線が次のようだとする (x0,y0) (1) 最初の点 (x0,y0) を計算し (xs, ys) の座標へ格納 (x0,y0) =(xs,ys) (x1,y1) (x2,y2) (x3,y3) (x4,y4) (2) 次の点 (x1,y1) を計算し (xe, ye) の座標へ格納 (xs,ys) と (xe, ye) の間で直線を描く (x0,y0) =(xs,ys) (x1,y1)=(xe,ye) (3) (xs, ys) を (xe, ye) で置き換える (x1,y1)=(xe,ye)=(xs,ys) (4) 次の点 (x2,y2) を計算し (xe, ye) の座標へ格納 (xs,ys) と (xe, ye) の間で直線を描く (x1,y1)=(xs,ys) (x2,y2)=(xe,ye) (5) (xs, ys) を (xe, ye) で置き換える (x2,y2)=(xe,ye)=(xs,ys) (6) これを繰り返して 曲線を描く

13 12 らせん ボタンを押されたときのプログラムを入力 三角 ボタンをダブルクリックして btnspiral_click 関数を自動的に生成して 以下のプログラムを入力する private void btnspiral_click(object sender, EventArgs e) gracampus.clear(color.white); double r, xs, ys, xe, ye; double a = 4; xs = 150.0; ys = 150.0; for (double theta = 0.0; theta < 10.0 * Math.PI; theta += 0.02 * Math.PI) r = a * theta; xe = r * Math.Cos(theta) + 150.0; ye = r * Math.Sin(theta) + 150.0; gracampus.drawline(pendraw, (float)xs, (float)ys, (float)xe, (float)ye); xs = xe; ys = ye; } pbcampus.refresh(); } この部分を入力 Math.PI : 円周率 Math.Cos(theta) : theta ラジゕンのときの cos Math.Sin(theta) : theta ラジゕンのときの sin 数学関連の関数や定数は Math で始まる

14 13 らせん ボタンを押したときの実行結果 (1) らせん ボタンをクリック (3) らせんが描けたか確認

15 14 まとめ PictureBox にグラフゖックを描くために [1] Bitmap を用意する [2] 用意した Bitmap を PictureBox の Image に関連付ける [3] Graphics のンスタンスを PictureBox の Image により生成 [4] Graphics のメソッド ( メンバ関数 ) を利用してグラフゖックを描く フォームのメンバ変数とコンストラクタのプログラムを入力するために [1] ソリューションエクスプローラーの Form.cs で 右クリック [2] コード の表示をクリック 今回使ったコントロール Button コントロール ( クリックすることで何かベントを生じさせる ) PictureBox コントロール ( 画像を表示したり 描画を管理したり )NEW! 今回使った Graphics のメソッド ( メンバ関数 ) DrawEllipse : 楕円を描く DrawRectangle : 四角形を描く DrawLine : 線を描く Clear : ぶらふぃっくを消去する 今回使った算術関係の定数と関数 Math.PI : 円周率 Math.Cos(theta) : theta ラジゕンのときの cos Math.Sin(theta) : theta ラジゕンのときの sin 15 追加課題 1 TextBox を追加して そこの値によって図形の大きさを指定できるようにする 2 3 ウゖンドウの大きさを変更したら それに合わせて picturebox, Button の場所や大きさが変化するようにする picturebox の大きさが変更したら 合わせてグラフゖックの表示も変更になるように 五角形 のボタンを追加する このボタンが押されたら正五角形を描くようにプログラムも追加する