================ BEZIER4 ================ Mathematicaを用いた練習を行います。 Mathematica は毎回使いますから、GNOMEパネルの ランチャーに登録しておきましょう。 Mathematica は 「センターメニュー」-「アプリケーション」-「Mathematic数式処理」 にあります。 適当にプログラムの中の数字などを変更して試してみてください。 以下の説明の中で*****ではさまれた部分は Mathematica に入力する文字列です。自分で入力し Shift+Enter(Return) キーで実行します。 上から順に,すべて実行するようにしてください。 上で定義した関数を後で利用すること があります。 ベジエ曲線を用いて、文字を描いてみましょう。 まず、次を入力してください。 ****** Needs["Graphics`Colors`"] Cn[s_] := n!/(s!*(n - s)!) Bn[s_, u_] := Cn[s]*(u^s)*((1 - u)^(n - s)) SS[n_] := Sum[b[j]*Bn[j, t], {j, 0, n}] L[n_] := Table[(1 - t)*b[i] + t*b[i + 1], {i, 0, n - 1}] B2Poly := ParametricPlot[Evaluate[L[n]], {t, 0, 1}, AspectRatio -> Automatic, Axes -> True, PlotStyle -> {Thickness[0.005]}] Bezier[pt_, color_] := ParametricPlot[Evaluate[SS[n]], {t, 0, 1}, AspectRatio -> Automatic, Axes -> True, PlotRange -> All, PlotStyle -> {Thickness[pt], color}] ****** 文字『ゆ』を描いてみましょう。 少しずつつなぎ合わせて描くようにします。 ****** yy = 0.08 RR = Blue n = 3 b[0] = {0.1, -0.3} b[1] = {-0.2, -2} b[2] = {-0.2, -2} b[3] = {0, -4} p1 = B2Poly o1 = Bezier[yy, RR] ****** yy は線の太さを調整するためのものです。 RR に線の色を指定します。いまはBlueとしています。 次の部分を描きます。各々の部分に名前o1, o2, o3 などの名前をつけておきます。 ****** n = 4 b[0] = {0, -4} b[1] = {0, -2.5} b[2] = {0, -2.5} b[3] = {1.5, -0.5} b[4] = {3, -0.5} p2 = B2Poly o2 = Bezier[yy, RR] ****** ****** n = 3 b[0] = {3, -0.5} b[1] = {4, -0.5} b[2] = {5, -0.9} b[3] = {5, -2.5} p3 = B2Poly o3 = Bezier[yy, RR] ****** ****** n = 3 b[0] = {5, -2.5} b[1] = {5, -4} b[2] = {4, -4.5} b[3] = {3, -4.5} p4 = B2Poly o4 = Bezier[yy, RR] ****** ****** n = 3 b[0] = {3, -4.5} b[1] = {2.0, -4.5} b[2] = {1.5, -3.5} b[3] = {1.3, -2.8} p5 = B2Poly o5 = Bezier[yy, RR] ****** ****** n = 4 b[0] = {2.7, 0.2} b[1] = {3, -3} b[2] = {3, -4.8} b[3] = {2.5, -5.1} b[4] = {1.5, -5.3} p6 = B2Poly o6 = Bezier[yy, RR] ****** では、全体を表して見ましょう。 ****** bb = Show[o1, o2, o3, o4, o5, o6, Axes -> False] ****** 座標を入れておきましょう。 ****** Show[bb, Axes -> True] ****** ベジエ多角形も描いておきましょう。 ****** aa = Show[p1, p2, p3, p4, p5, p6] ****** ベジエ多角形とベジエ曲線を一緒に描きましょう。 ****** Show[aa, bb] ****** では、配付した文字を作って見ましょう。いくつかの 部分に分けて描けばよいかまず考えて見て下さい。 座標をどうしたらよいかを考えましょう。 なめらかにつなぐときは、 接線が同じになるようにベジエ点の配置を工夫してください。 文字『さ』を描いてみましょう。 ****** yy=0.05 RR=Blue n=3 b[0]={0.4, 4.5} b[1]={1,4.1} b[2]={3,4.4} b[3]={4.2,5} p1=B2Poly o1=Bezier[yy, RR] n=3 b[0]={2.2,5.6} b[1]={2.3,5} b[2]={3,3.5} b[3]={4,2.5} p2=B2Poly o2=Bezier[yy, RR] n=4 b[0]={4,2.5} b[1]={3,3.1} b[2]={1,3} b[3]={0.5,2.5} b[4]={0.5,1.9} p3=B2Poly o3=Bezier[yy, RR] n=4 b[0]={0.5,1.9} b[1]={0.5,1.3} b[2]={1,0.8} b[3]={3,0.7} b[4]={4,1.1} p4=B2Poly o4=Bezier[yy, RR] aa=Show[p1,p2,p3, p4] bb=Show[o1,o2,o3, o4, Axes\[Rule]True] Show[bb, aa] ******