モデリングとは

Similar documents
コンピュータグラフィックス第6回

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計

Chap3.key

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

Microsoft PowerPoint - [150428] CMP実習Ⅰ(2015) 橋本 CG編 第2回 ベジエ曲線とフラクタル.pptx

p tn tn したがって, 点 の 座標は p p tn tn tn また, 直線 l と直線 p の交点 の 座標は p p tn p tn よって, 点 の座標 (, ) は p p, tn tn と表され p 4p p 4p 4p tn tn tn より, 点 は放物線 4 p 上を動くこと

Microsoft Word - NumericalComputation.docx

Chap2.key

スライド 1

4STEP 数学 Ⅲ( 新課程 ) を解いてみた関数 1 微分法 1 微分係数と導関数微分法 2 導関数の計算 272 ポイント微分法の公式を利用 (1) ( )( )( ) { } ( ) ( )( ) ( )( ) ( ) ( )( )

パソコンシミュレータの現状

2018年度 東京大・理系数学

モデリングとは

PowerPoint Presentation

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

複素数平面への誘い

Phys1_03.key

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

Microsoft Word - 1B2011.doc

2011年度 筑波大・理系数学

2018年度 2次数学セレクション(微分と積分)

重要例題113

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

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx

PP(tt) = (1 tt) qq 0 +(1 tt) tt qq 1 +(1 tt) tt qq + tt qq (0 ttt1) ここで制御点 qq 0 = (1,1), qq 1 = (,4), qq = (,4), qq = (,1) から定まるベジェ曲線を PP(tt) とし制御点 qq

05 年度センター試験数学 ⅡB () において,cos q 0 であるから,P ( cos q, sin q) より, 直線 OP を表す方程式は y sin q sin q x cos q cos q x すなわち, (sin q) x - (cos q) y 0 ( ) ク 点 O,P,Q が

Microsoft Word - 微分入門.doc

< F2D30365F8EF68BC68CA48B E6A7464>

If(A) Vx(V) 1 最小 2 乗法で実験式のパラメータが導出できる測定で得られたデータをよく近似する式を実験式という. その利点は (M1) 多量のデータの特徴を一つの式で簡潔に表現できること. また (M2) y = f ( x ) の関係から, 任意の x のときの y が求まるので,

PowerPoint プレゼンテーション

Chap2

PowerPoint プレゼンテーション

テンソル ( その ) テンソル ( その ) スカラー ( 階のテンソル ) スカラー ( 階のテンソル ) 階数 ベクトル ( 階のテンソル ) ベクトル ( 階のテンソル ) 行列表現 シンボリック表現 [ ]

問 題

. 角の二等分線と調和平均 平面上に点 を端点とする線分 と を重ならないようにとる, とし とする の二等分線が線分 と交わる点を とし 点 から に垂直に引いた直線が線分 と交わる点 とする 線分 の長さを求めてみよう 点 から に垂直な直線と および との交点をそれぞれ, Dとする つの直角三

公式集 数学 Ⅱ B 頭に入っていますか? 8 和積の公式 A + B A B si A + si B si os A + B A B si A si B os si A + B A B os A + os B os os A + B A B os A os B si si 9 三角関数の合成 si

2017年度 信州大・医系数学

1 対 1 対応の演習例題を解いてみた 微分法とその応用 例題 1 極限 微分係数の定義 (2) 関数 f ( x) は任意の実数 x について微分可能なのは明らか f ( 1, f ( 1) ) と ( 1 + h, f ( 1 + h)

学習指導要領

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>

数学 Ⅲ 微分法の応用 大学入試問題 ( 教科書程度 ) 1 問 1 (1) 次の各問に答えよ (ⅰ) 極限 を求めよ 年会津大学 ( 前期 ) (ⅱ) 極限値 を求めよ 年愛媛大学 ( 前期 ) (ⅲ) 無限等比級数 が収束するような実数 の範囲と そのときの和を求めよ 年広島市立大学 ( 前期

2015-2017年度 2次数学セレクション(複素数)解答解説

Taro-数値計算の基礎Ⅱ(公開版)

Microsoft Word - 町田・全 H30学力スタ 別紙1 1年 数学Ⅰ.doc

スライド 1

学習指導要領

"éı”ç·ıå½¢ 微勃挹稉弑

Microsoft Word - 415Illustrator

Microsoft Word - mathtext8.doc

長尾谷高等学校レポート 回目 全枚. 関数 f() = について, 次の各問いに答えよ ( 教科書 p6~7, 副読本 p97) () 微分係数 f ( ) を定義に従って求めよ ただし, 求める過程を必ず書くこと () グラフ上の (, ) における接線の傾きを求めよ. 関数 ( ) = 4 f

Microsoft PowerPoint - H22制御工学I-2回.ppt

コンピュータグラフィックス第8回

Microsoft PowerPoint - H21生物計算化学2.ppt

ARCHITREND ZERO 汎用コマンド一覧

学習指導要領

2010年度 筑波大・理系数学

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - 講義資料-mlib

構造力学Ⅰ第12回

学力スタンダード(様式1)

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講?

2019 年 6 月 4 日演習問題 I α, β > 0, A > 0 を定数として Cobb-Douglas 型関数 Y = F (K, L) = AK α L β (5) と定義します. (1) F KK, F KL, F LK, F LL を求めましょう. (2) 第 1 象限のすべての点

Microsoft Word - 16wakui

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft PowerPoint - NA03-09black.ppt

2011年度 東京工大・数学

座標系.rtf

計算幾何学入門 Introduction to Computational Geometry

応用数学A

Microsoft Word - ミクロ経済学02-01費用関数.doc

Microsoft PowerPoint - ppt-7.pptx

Microsoft PowerPoint - ロボットの運動学forUpload'C5Q [互換モード]

Microsoft PowerPoint - 10.pptx

数学 IB まとめ ( 教科書とノートの復習 ) IB ということで計算に関する話題中心にまとめました 理論を知りたい方はのみっちー IA のシケプリを参考にするとよいと思います 河澄教授いわく テストはまんべんなく出すらしいです でも 重積分 ( 特に変数変換使うもの ) 線積分とグリーンの定理は

Microsoft Word - gnuplot

ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識

< 図形と方程式 > 点間の距離 A x, y, B x, y のとき x y x y : に分ける点 æ ç è A x, y, B x, y のとき 線分 AB を : に分ける点は x x y y, ö ø 注 < のとき外分点 三角形の重心 点 A x, y, B x, y, C x, を頂

2018年度 筑波大・理系数学

200_CAD(画面回りの機能)の基本操作

Microsoft PowerPoint - prog11.ppt

3D の作図ツールについて 3D 画面を表示すると 以下の新しい作図ツールが表示されます より多くのオプションを見るためには ボタンの右下の小さな矢印 をクリックして下さい 28

2015年度 岡山大・理系数学

グラフを作成

特殊なケースでの定式化技法

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

2017年度 金沢大・理系数学

Microsoft PowerPoint - ip02_01.ppt [互換モード]

1/17 平成 29 年 3 月 25 日 ( 土 ) 午前 11 時 1 分量子力学とクライン ゴルドン方程式 ( 学部 3 年次秋学期向 ) 量子力学とクライン ゴルドン方程式 素粒子の満たす場 y ( x,t) の運動方程式 : クライン ゴルドン方程式 : æ 3 ö ç å è m= 0

第1章 単 位

航空機の運動方程式

untitled

DVIOUT

平面波

講習No.9

計算機シミュレーション

Microsoft PowerPoint - ppt-1.pptx

Microsoft PowerPoint 電子情報理工学特論.pptx

Transcription:

コンピュータグラフィックス基礎 第 5 回曲線 曲面の表現 ベジェ曲線 金森由博

学習の目標 滑らかな曲線を扱う方法を学習する パラメトリック曲線について理解する 広く一般的に使われているベジェ曲線を理解する 制御点を入力することで ベジェ曲線を描画するアプリケーションの開発を行えるようになる C++ 言語の便利な機能を使えるようになる 要素数が可変な配列としての std::vector の活用

計算機による曲線の表現 求められるもの 意図した曲線を直観的に入力できる 曲線の品質がよい 数学的に厳密に ( 任意の精度で ) 再現できる 滑らかである ( 連続性 微分可能 ) 例 : フォント Illustrator などのドローソフト これらは どのようのデータを持ち どのような方法で画面に描画されるだろうか?

折れ線による曲線の近似表現 折れ線 ( ポリライン ) で近似表現する 細かく分割することで 曲線らしく見せる

曲線の数学的表現 陽関数表現 陰関数表現 パラメトリック表現 ( 媒介変数表現 ) 数式で表されるので どこまで拡大しても滑らか 実際の描画は 点の集まり ( 折れ線近似 ) なので滑らかさの程度をプログラムでコントロールする

陽関数表現 yy = ff xx の形で表現される 例 : y = x y = ( x 1) 長所 : 実装が容易 短所 : 表現力が乏しい 1 つの x の値に対して 1 つの y の値しか定まらない

陽関数表現の実装例 glbegin(gl_line_strip); for(double x = ; x < 1.; x +=.1) { glvertexd(x, f(x)); } glend();

陰関数表現 ff xx, yy = の形で表現される x と y の値が陽に求まらない 数式で空間を + 領域と - 領域に区分し その境界を表現したもの 例 :xx + yy 1 = 陽関数を陰関数で表現することもできる例 : yy = xx xx yy = 長所 : 複雑な曲線を表現できる短所 : 方程式を解かなくてはならない ( 次数が高くなると解を求めるのが困難 )

陰関数表現されたグラフの描画 例えば x 1 4 = + y 次元を 1 つ上げて z の場合 4 = x + y 1 とする zz >, zz < の領域の境界が求めるグラフとなる http://www.lems.brown.edu/~tt/dfitting/ipcurves.html

http://www.flickr.com/photos/dullhunk/6447/

パラメトリック表現 x y = = f f x y ( t) ( t) の形で表される関数 個々の座標値がパラメータ ( 媒介変数 ) で表現される パラメータ t の値が与えられれば x, y 座標が求まる 例 : x y = r cos( t) = r sin( t) ( t π ) 長所 : 実装が容易 t の値の刻み幅で曲線の正確さを制御できる

パラメトリック表現の実装例 一般に t の値は から 1 とすることが多い x y = r cos( t) = r sin( t) ( t π ) x y = r cos(πt ) = r sin(πt ) ( t 1) glbegin(gl_line_strip); for(double t = ; t <= 1.; t +=.1) { glvertexd(fx(t), fy(t)); } glend();

パラメトリック曲線 広く使われているパラメトリック表現による曲線 ベジェ曲線 ( 今週の内容 ) B スプライン曲線 ( 来週の内容 ) 制御点 という概念を用いて形状を容易にコントロール ( 制御 ) できる

ベジェ曲線

ベジェ曲線の図形的理解 (1 次 ) P1 P t Q 1-t Q = ( 1 t) P + tp ( t 1) 1 t の 1 次式 つの制御点 直線

ベジェ曲線の図形的理解 ( 次 ) P1 P t Q 1-t t R 1-t t Q1 1-t Q Q 1 = (1 t) P 1 = (1 t) P + tp + tp R = ( 1 t) Q + tq R = + ( 1 t) P + t(1 t) P1 t P 1 1 P ( t ( 問 t =,.5, 1 のときの位置は?) 1) t の 次式 つの制御点 次曲線

ベジェ曲線の図形的理解 ( 次 ) P Q t 1-t P1 t R R 1 1-t R t t Q1 S = (1 t) = (1 t) 1-t P P 1 1-t t R1 + t(1 t) P + t(1 t) P S = ( 1 t) R + tr 1-t 1 P 1 t + t + t Q S = + 1-t ( 1 t) P + t(1 t) P1 + t (1 t) P t P P P P ( t 1) t の 次式 4 つの制御点 次曲線

ベジェ曲線の数式表現 ( まとめ ) 1 次 P ( t) = (1 t) P + tp 1 次 P + ( t) = (1 t) P + t(1 t) P1 t P 次 P + ( t) = (1 t) P + t(1 t) P1 + t (1 t) P t P 一般的な CAD 系ソフトウェアで用いられている (Adobe Illustrator も )

次ベジェ曲線の性質 S + ( t) = (1 t) P + t(1 t) P1 + t (1 t) P t P S() S(1) = = ds ( t) dt ds () dt ds (1) dt = = = 問 : 上記の値を求めよ また赤線で示した各制御点の係数の和を求めよ

次ベジェ曲線の性質 S + ( t) = (1 t) P + t(1 t) P1 + t (1 t) P t P S ( ) = P ( 1) P ds( t) dt = (1 t) d S( t) = 6(1 t) P dt P + (9t ds() = P + = dt ds(1) = P + P = dt S = 最初と最後の制御点を通る + (18t P1 P P 1t 1) P 1 P P + ) P 1 1 + ( 18t + ( 9t + 6) P + 6t) P + t 第 1, 制御点と第, 4 制御点で接線の向きが決まる + 6tP P

次ベジェ曲線の凸包性 制御点の凸包の内部に含まれる

複数セグメントの連結 Illustrator での作図 P P1 P P' P'1 P つのセグメントで端点を共有する ( 制御点位置の共有, C 1 階微分が接続点で同値連続 ) つのセグメントで接線を共有する ( 制御点が同一直線上で等距離,C 1 連続 )

N 次ベジェ曲線 ( ベジェ曲線の一般化 ) P( t) n i n i = nci t (1 t) i= P i n C i = n! i!( n i)! さらなる一般化 P n = n n i n i ( t) B i Pi Bi = n Ci t (1 t) i= n i 項係数 と表記することもある ある比率で各制御点の座標を混ぜ合わせる! 混合比 ( 和は 1 になる ) 混合比を関数で表したものを 基底関数 とよぶ

ベジェ曲線の基底関数 バーンスタイン基底関数 B n i 次の場合 B B = C t t) n = ( 1 t) 1 = t(1 t) B = t (1 t) B = t i i n i ( 1 n は次数を表す

次ベジェ曲面 : 双 次ベジェ曲面 4 4 の格子状に並んだ 16 個の制御点 Pij と つのパラメータ u, v によって定義される 4 隅の位置は制御点と一致する S(u, v) = P ij B i (u)b j (v) i= j=

課題 入力された制御点を使って 次の Bezier 曲線を描画する 法線 ( 接線に垂直な線 ) を描画する 解答例デモ

サンプルコード マウスの左クリックで制御点を追加 右クリックで削減する 制御点を連結した折れ線を表示する

C++ 言語で使用できる STL STL の vector クラスが便利 配列の代わりに使える 最初にサイズを指定する必要がない 要素の追加と削除が簡単 [C 言語 ] #define MAX_ELEMENT_NUM 1 int numpoint = ; // 要素の数を記録 double x[max_element_num ]; double y[max_element_num ]; x[] = 1.; y[] =.; x[1] =.; y[1] = 4.; numpoint = ; [C++] #include <vector> std::vector<vectord> points; points.push_back(vectord(1.,.)); points.push_back(vectord(., 4.)); // C++11 なら // points.emplace_back(1.,.); // points.emplace_back(., 4.);

STL の vector の使用例 #include <vector> std::vector<vectord> points; // 追加 points.push_back(vectord(1.,.)); points.push_back(vectord(., 4.)); points.push_back(vectord(5., 6.)); // 末尾の削除 points.pop_back(); // 要素数の確認 unsigned int n = points.size(); // 要素の取得 Vectord v = points[]; Vectord v1 = points[1]; // 要素の全削除 points.clear();