<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>補講B グラフィックス on 2024年度 発展プログラミング演習（春学期）</title>
    <link>https://ksuap.github.io/2024spring/advanced02/index.html</link>
    <description>Recent content in 補講B グラフィックス on 2024年度 発展プログラミング演習（春学期）</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <atom:link href="https://ksuap.github.io/2024spring/advanced02/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>グラフィックス</title>
      <link>https://ksuap.github.io/2024spring/advanced02/graphics/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced02/graphics/index.html</guid>
      <description>グラフィックス EZ.java 楕円の描画 座標系 例題 1. 楕円の描画の変更 その他の図形の描画 例題 2. 楕円以外の図形の描画 アニメーション 練習問題 まとめ EZ.java 本日のプログラムを実行するには EZ.javaが必要です． これから書くプログラムと，同じディレクトリにこのEZ.javaを置いてください．
EZ.java は正式には，EZ Graphics と呼びます． このプログラムは，ハワイ大学マノア校の Advanced Visualization and Applications 研究室 Dylan Kobayashi によって開発されたソフトウェアです． 1 つのファイルを同じディレクトリに置くことで図形の描画が容易に扱えるようになります． 公式サイトからもダウンロードできますが， この授業向けに少し修正していますので，ここからEZ.javaをダウンロードして利用してください．
楕円の描画 ダウンロードしたら，早速プログラムを書いていきましょう． 書き終えたら，コンパイル，実行してみましょう． 実行結果を確認できれば，値を変更して再度，コンパイル，実行してみましょう． どこを変更すると，どう変わるのかを確認してください．
import java.awt.Color; public class DrawOval{ void run(){ EZ.initialize(400, 400); // 画面の大きさを決める． // 円を描く．(中心座標x, y, 幅，高さ，色，塗りつぶし) EZCircle circle1 = EZ.addCircle( 100, 100, 200, 200, Color.BLUE, true); EZCircle circle2 = EZ.addCircle( 200, 200, 200, 200, Color.</description>
    </item>
    <item>
      <title>アニメーション</title>
      <link>https://ksuap.github.io/2024spring/advanced02/animation/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced02/animation/index.html</guid>
      <description>グラフィックス アニメーション アニメーションの基礎 例外機構（Exception Architecture） 検査例外と非検査例外 例外の責任転嫁 InterruptedExceptionの責任転嫁 throws節 例題 3. アニメーション 例題 4. 鉛直投げ上げ運動のアニメーション 練習問題 まとめ アニメーションの基礎 アニメーションは基本的にパラパラ漫画と同じ原理で行います． EZ Graphics では，EZ.addCircleやEZ.addLineなどで 追加して返される実体の位置を変更し，EZ.refreshScreen()を呼び出すと画面を更新します．
また，Java で一定時間スリープするのは，Thread.sleepメソッドを利用します． sleepメソッドに スリープする時間（ミリ秒）を渡します． 次の例では，100 ミリ秒（0.1 秒）スリープしています．
次の例で確認してみましょう．
import java.awt.Color; public class RoundTrip{ void run(){ EZ.initialize(400, 400); EZCircle circle = EZ.addCircle( 100, 100, 5, 5, Color.BLUE, true); this.roundTrip(circle); } void roundTrip(EZCircle circle){ Integer deltaX = 10; while(true){ // 無限ループ Integer newX = circle.getXCenter() + deltaX; circle.translateTo(newX, circle.</description>
    </item>
    <item>
      <title>練習問題</title>
      <link>https://ksuap.github.io/2024spring/advanced02/assignments/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced02/assignments/index.html</guid>
      <description>グラフィックス アニメーション 練習問題 図形の描画 サイン波の描画 コッホ曲線 (Koch Curve)の描画 コッホ曲線（Koch Curve）のアニメーション描画 斜方投射 アニメーション アナログ時計 まとめ 1. 図形の描画 次の図になるようにプログラムを作成してみましょう． 色は必ずしもこの通りでなくて構いません． プログラム名は，DrawShapes2としてください．
図形の描画の完成形 2. サイン波の描画 $0 \leq x \leq 2\pi$ の範囲でサイン波を描画してみましょう．クラス名は SineCurve としてください．
サイン波 ヒント プログラム全体の構成 上の図は，399 本の直線で描画されています． x=0から400未満まで繰り返し，v = Math.sin(i * delta) * s で $(x_i, y_i)=(i, v)$を得ます． $((x_{i-1}, y_{i-1}), (x_i, y_i))$に線を追加することで上記のサイン波が描画できます．
なお，delta（ $\delta$）は横幅，s（ $s$）は高さを表しています． EZ.initialize(400, 400) で初期化した時， delta が $\delta = \frac{2\pi}{400}$，sは 150としてください（ $-1 \leq \sin\theta \leq 1$であり，この値を -150〜150に割り当てるため）． また，中央に寄せるため，y 軸方向に +200 としてください．</description>
    </item>
    <item>
      <title>まとめ</title>
      <link>https://ksuap.github.io/2024spring/advanced02/summary/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced02/summary/index.html</guid>
      <description> グラフィックス EZ.java 楕円の描画 座標系 例題 1. 楕円の描画の変更 その他の図形の描画 例題 2. 楕円以外の図形の描画 アニメーション アニメーションの基礎 例外機構（Exception Architecture） 検査例外と非検査例外 例外の責任転嫁 InterruptedExceptionの責任転嫁 throws節 例題 3. アニメーション 例題 4. 鉛直投げ上げ運動のアニメーション 練習問題 図形の描画 サイン波の描画 コッホ曲線 (Koch Curve)の描画 コッホ曲線（Koch Curve）のアニメーション描画 斜方投射 アニメーション まとめ まとめ Java のグラフィックス描画の方法の一つに，EZ Graphics がある． 具体的な描画方法は，API ドキュメントを参照のこと． https://www2.hawaii.edu/~dylank/ics111/doc/ 例外機構 実行時エラーの通知機構として近年のプログラミング言語に採用されている． 例外は，検査例外と非検査例外の２種類が存在する． 検査例外は例外が発生した時の処理をプログラム中に明示しなければならない． 代表的な検査例外 IOException: 入出力エラーが起こった時． InterruptedException: スリープ中に割り込みが発生した時． 非検査例外は例外発生時の処理を書かなくても良い． 十分にデバッグされたプログラムでは発生しない例外であるため． 対応処理を書いていない場合，例外が発生した時プログラムが落ちる． 代表的な非検査例外 NullPointerException: 参照先の実体が存在しない変数に対して操作を行なった時． IndexOutOfBoundsException: 有効な範囲を超えてリストにアクセスしようとした時． NumberFormatException: 文字列を数字に変換する処理で，変換に失敗した時． 例外が発生した時，その場で対応するか，呼び出し元に対応を任せるかの２通りの対処法がある． 例外が発生した時の責任をメソッド呼び出し元に任せるには，メソッドのシグネチャに throws 節を追加する． 返り値の型 メソッド名(メソッドの引数) throws 例外名{ メソッドのボディ } 例外が発生した時，その場で対応するには，try-catch構文を利用する． この授業では扱わない． 使う場合には，自分で調べること． </description>
    </item>
  </channel>
</rss>