top of page
執筆者の写真Hwang Il Seok

Report :: クロソイド曲線を用いたバイオリンモデル設計と自動化プロセス

更新日:2022年3月12日


バイオリンデザインにおいて、マルチクロソイド曲線を使用する利点と適用方法について考えてみます。また、その自動化プログラムを作成して実現可能性を確認します。



 

PDFで読む


 

PDF版ダウンロード


 

ヴァイオリンボディのラインをデザインする方法は大きく3つあります。1つ目は、他の楽器のラインをそのままコピーすることであり、2つ目は、他の楽器のラインをコピーした後、必要な部分だけ修正することです。これら2つの方法は、便利さと作業速度の面で優れているため、現在のほとんどのヴァイオリン制作者が使用している方法でもあります。最後の3番目は、自分でデザインすることであります。これは自分が望むラインを得ることができ、自分だけのユニークなモデルを得られるという点で大きな意味がありますが、複雑で難しため、満足できる結果を得るまでは大変な努力が必要になります。


楽器の理解という観点から、モデルを自分でデザインしてみることは非常に重要です。他の楽器をコピーするときは分からなかった様々な問題を自分でデザインする過程で理解できるようになることも多く、また以前のヴァイオリンがそのようにデザインされるしかなかった理由を分かるようになることも多くあるでしょう。


個人的に、自分の固有モデルがないというのは、「制作者」でなく「コピー機」の道を歩くと同様であると思っているので、自分だけの考えが込められた、最初から最後まで自分でデザインしたモデルがないといけないと思います。他の楽器のラインを軽く修正した場合も独自のモデルであると言えるでしょうが、できれば最初から最後まで自分でデザインしてみるのが良いでしょう。


デザインの勉強を進めながら既存のさまざまな方法をすべて試してみましたが、すべていくつかの問題をもっていて実際の制作に使用するには適してないことが分かりました。共通の問題としては、複雑すぎて難しいこと。そして、完成後一部だけの修正がまたも難しいということです。しかし、最大の問題と考えられるのは、( 数学的表現で )曲線上に不連続点が存在することです。簡単に言えば、曲線が滑らかではないということです。さらに、楽器のサイズと幅などのサイズが同じであれば、曲線はそれ以上変形できないという問題であります。つまり、同じサイズのモデルはすべて形状が同じになるということです。これらの問題に対処するために、クロソイド曲線を使用した自動化プログラムの開発を試みましたが、いくつかの重要な技術の限界で約10年を成果なしで過ごしてしまいましたが、今ようやく自動化プログラムを完成させることができました。


このレポートでは、バイオリンモデルを設計するための既存の方法について簡単に説明し、それらが持っている問題点について調べます。その後、その問題点の解決策として使用するクロソイド曲線とはなにか、またそれをバイオリンデザインに適用する方法について学びます。そして、これらの設計作業を自動化するためのプログラムについてまとめて見ます。完成したヴァイオリンデザインオートメーションプログラムは、ユーザーマニュアルとともに別途投稿します。


 

1. 既存のヴァイオリン設計方法と問題点


 

1.1. 既存の設計方法と特徴


現在、バイオリンの設計方法は約 5つ程度が知られています。比較的古い方法としてはSacconi, Navne, Pigoliさんの方法があり、最近は Francois Denisさんの方法が注目されているようであります。Pigoliさんの方法は緩和曲線を使うという点で個人的にお勧めしたい方法でもあり、Denisさんの方法はいくつかのパラメータを変えることで様々なモデルを比較的自由にデザインできるという点と、他の方法に比べて少し簡単であるという点で素晴らしい方法だと言えと思います。


最後に、Sergei Muratovさんの方法は、クロソイド曲線を使用するという点でこのレポートの内容と似ており、上記の方法の中で実際の楽器ラインと最も似ている方法だと思います。しかし、手では作図が不可能で、CADプログラムを使用する場合には優れたプログラミングの実力がなければ実現できない方法であります。


 

1.2. 既存設計方法の共通問題


複雑で難しい設計プロセス

上記デザイン方法のいずれも、手で直接作図する場合と、CADプログラムを利用して作図する場合、どちらも容易なことではありません。作図過程が複雑であるため教材を見ながら一つ一つついていくことも難しいと感じられます。


デザイン完成後、部分変更が難しい

楽器デザインは、一発で満足できる結果を得ることはできません。完成したデザインで初めて楽器を製作してみると、デザインの一部を少し修正しなければならない場合がほとんどであります。このように、デザインの一部だけ修正したい場合には、複雑な作図過程のためにそれは新しくデザインするのとほぼ同様の努力が必要になります。


同じサイズのモデルなら、ライン変更が難しい

例えば、C-boutの場合、C-boutの最も狭い場所の位置とU/L-corner ( U/L : Upper/Lower) の位置を変えずに C-bout曲線を変更することは不可能であります。上記方法のすべてが、これらの点の位置が同じで、関連する他の点の位置(またはサイズ)も同じである場合、C-boutの曲線は1つの曲線しか作成できません。


不連続点の存在と不自然な曲線

実際のバイオリンが持っている曲線は「現実世界の曲線」であるのに対し、上記の方法(クロソイド曲線を用いた方法は除く)によって設計された曲線は「理想世界の曲線」と言えます。つまり、現実には存在しない、または存在できない曲線ということです。


例えば、上記の方法は(クロソイド曲線を用いた方法を除く)全て、半径 a の弧を作図し、その弧の端から再び半径bの弧を作図し、再びその端から半径 c の弧を作図するという方法で、異なる半径の弧をつなぎ合わせて楽器全体の曲線を完成する方式です。しかし、そのような曲線は現実世界には存在しません。私たちが生きる現実世界の曲線は、決していずれかの点で半径が a から b に、または b から c に瞬時に変化しないということです。数学では、このような点を「不連続点」と呼びますが、私たちが生きる現実世界の曲線にはそのような不連続点はありえません。あえて数学的原理に従わなくても、曲線を注意深く見ると、2つの弧が続く点を境界に、2つの弧の接続が滑らかでないことが分かります。


Figure 1 は左からSacconi, Pigoli, Denisさんの方法で描いた C-boutの例です。赤い円を見ると、そこで少し折れたような感じがします。それはそこで突然円弧の半径が変わるためであり、ここがまさに不連続点が存在するところであります。緑円にも不連続点がありますが、半径が比較的大きく、繋がる二つの弧の半径差が大きくないため目立たないだけであります。


Figure 1: C-boutの不連続点


コーナー部分の過度の曲率

4つのコーナーは先端が尖っています。この頂点に異なる半径を持つ円弧を突き合わせてコーナーを生成します。この場合、2つの円弧を使用するため、その端(コーナーの頂点)はかなり尖っており、その頂点からすぐに曲線が生成されます。実際のコーナー作業では横板を丸く曲げて貼り付けますが、横板の厚さのため実際の頂点端は完全な円弧でなく、少し平らなラインになります。つまり、上記の5つの方法とも、コーナー頂点付近の曲率が実際の楽器に比べて曲がり過ぎていると言えます。


以上で5つの共通の問題点を調べましたが、個人的には、不連続点の存在と不自然な曲線が一番大きい問題であると考えています。プロセスが複雑で難しいという問題は努力で解決できますが、これは設計方法が持つ根本的な問題であるため、努力では解決できないからです。


 

1.3. 既存設計法の問題を解決するための方法


前章の問題点は、以下の方法ですべて解決できます


複雑で難しい設計プロセス、デザイン部分変更の難しさ

これら 2つの問題は、設計自動化プログラムがあれば解決できます。


不連続点の存在と不自然な曲線

これはクロソイド曲線を適用することで解決できます。


同じサイズのモデルでのライン変更の難しさ、コーナーの過度な曲率

2つの点を結ぶクロソイド曲線は、始点と終点の曲線方向が同じである場合、基本的には1つのクロソイド曲線しか存在しないため、これらの問題は単純なクロソイド曲線では解決できません。本研究では、この問題を複数のクロソイド曲線をつなぐ(以下「マルチクロソイド曲線」)ことで解決します。


つまり、既存の問題は、マルチクロソイド曲線を適用した自動化プログラムが存在すればすべて解決できます。


次の章では、これらのクロソイド曲線について調べ、またどのようにバイオリンデザインに適用するか調べます。


 

2. クロソイド曲線を用いた設計


 

2.1. クロソイド曲線


「クロソイド曲線」とは、辞書では、曲線長が増加するほど曲率が大きくなる曲線と定義します。つまり、曲線の曲率がどんどん大きくなっていて、より丸く巻き込まれる様子の曲線というものです(Euler spiral, Cornu spiralともいう)。 - Figure 2 -


Figure 2: クロソイド曲線


これらのクロソイド曲線は、主に高速道路のカーブ区間の緩和曲線として使用されています。Figure 3 の赤い線がクロソイド曲線です。高速道路の例として、青い直線道路から緑色の円形道路に入ろうとする時、クロソイド曲線に沿って徐々に回転半径を減らすことができます。


Figure 3: C高速道路のクロソイド曲線


数学では、下記の式(1)、(2)などで表されます。




 

2.2. バイオリンデザインにクロソイド曲線を適用するためのアイデア


クロソイド曲線をバイオリンデザインに適用する基本的な原理は、Sergei Muratovさんの説明を参照すればいいと思います。Sergei Muratovさんは「The Art of the Violin Design ( http://zhurnal.lib.ru/m/muratow_s_w/violin_design.shtml )」にて、バイオリン本体だけでなく、ヘッドとスクロール、F-Holeまでヴァイオリンが持っているほぼすべての曲線をクロソイド曲線で解析しており、個人的にはこれまでの解析の中で最も実際に近い解析法だと考えています。Figure 4 ( http://zhurnal.lib.ru/m/muratow_s_w/violin_design.shtml から抜粋 ) は、Sergei Muratovさんが解釈するバイオリンのクロソイドモデルです。


Figure 4: Sergei Muratovさんのヴァイオリンデザイン


Sergei Muratovさんのデザイン方法を「解析法」と書いた理由は、あるデザインを解釈するには便利ですが、直接デザインするには難しいため、デザイン方法よりは解釈方法に近いと考えられるためです。例えば、点Cから点 F1 に至る曲線は、点Cから F1 に向かう1つのクロソイド曲線と、点 S から点 F1 を通るクロソイド曲線が点 C と点 F1 の間どこかで会うことでU-boutのラインを作ります。しかし、問題は、それらの 2つのクロソイド曲線が出会う点を特定するのが非常に難しいことです。同様に、U-bout の下端である点F1から点 T につながる曲線は、S から F1 に向かうクロソイド曲線と、F1とTの真ん中から始まってTに向かうクロソイド曲線の出会いから成ります。その二つのクロソイドが出会う点を特定することが難しいです。したがって、このようなクロソイド曲線を使用して実際に設計するには、何か別のアイデアが必要になります。以下では、この問題を解決するための2つのアイデアを見ます。



2.2.1. 制御点の指定


上記のように、隣接する 2つのクロソイド曲線が出会うポイントの位置を正確に知ることは、バイオリンデザインにとって非常に大事です。実はこれを知らないと何もできません。2つの曲線が出会う点を「制御点」と言い、制御点の位置を変更すれば、楽器の長さや幅など楽器のサイズや形を変えることができるようにします。


Figure 5 は制御点の位置を記述します。楽器の長さを決定できるように、まず上下の中央に1つずつ指定し(点A, Z)、楽器の幅を決定できるように U/L-bout の最も広い場所に 1つずつ指定します(点U1, L1)。この点 U1, L1 は、U/L-bout の幅だけでなく曲線形態にも影響を及びます。U-boutの場合、U1のx座標はそのままにしてy座標だけ上に上げると、つまり点を垂直上に上げるとU-bout の形状は肩がより生きている形になり、逆に下げれば丸い肩を持つようになります。( U1 の位置を変えずに肩を生かしたり、丸い肩にするなどの曲線形状を変えるには曲率を変えてもよい)


Figure 5: 制御点の指定


同様に、C-bout の最も狭い場所にも指定します(点M1)。コーナー頂点も制御点でそれぞれ指定します(点X1, Y1)。最後に、U/L-bout の最も広い点からコーナーに向かう曲線上に、その曲線の方向が変わる点(Corner joint)を制御点として定めます(点P1, Q1)。この制御点は、xy座標で見ると、コーナーのx座標と同じx座標を持ちます。つまり、コーナー頂点から垂直線を描いたときに曲線と出会う点になります。このように設定された制御点をクロソイド曲線で繋ぐことになります。


2.2.2. マルチクロソイド曲線の適用


上記では制御点の位置を指定しました。これらの制御点をすべてクロソイド曲線で結び付けると、バイオリンの外観が現れるはずです。しかし現実はそうでありません。ある2点をクロソイド曲線で繋ぐ場合、各点における曲線の方向が同じであれば、その2点を繋ぐクロソイド曲線はだった1つしか存在しないからです。


例えば、Figure 6 の (a) のように、A点とB点を結ぶクロソイド曲線がある場合、Aから西方向に出発して B に到着する時は南方向に向かいます。A と B の位置が変わらないとすると、Aから、または B での方向(角度)を変えると、無数のクロソイド曲線 ( Figure 6 の (b) )を描くことができます。


(a) 1つのクロソイド曲線

(b) 異なる角度のクロソイド曲線

Figure 6: 点 A から B を結ぶクロソイド曲線



しかし、残念ながら、バイオリンの設計では、上記の制御点の一部は変えられない1つの方向(角度)のみ許可され、一部は非常に狭い範囲のなかで角度を変えられるため、正しいバイオリンの外観を期待することはできません。


この問題では、2つの制御点間に複数のクロソイド曲線を使用することで問題を解決します。詳しくは、両方の制御点を3つのクロソイド曲線をつなぎ合わせて接続することです。これにより、点 A と B での角度をそのまま維持したまま、さまざまな形状の曲線を作ることができるようになります。Figure 7 は点 A と B を3つのクロソイド曲線をつなげて連結したものであります。(3つのクロソイドはそれぞれ異なる色で表現した)


Figure 7: 3つのクロソイド曲線


クロソイド曲線の連結は、数学的に「G2エルミット補間(G2 Hermite interpolation)」という技術を用いて完成します(数学的内容に興味がある方は参考文献を確認してください)。Figure 8 は「G2エルミット補間」を適用した3つのクロソイド曲線(本書では単に「マルチクロソイド曲線」と呼びます)を用いて点 A, B で方向(角度)を変えずに様々な形状の曲線を描いたのです。


Figure 8: 点Aから点Bを結ぶ方向が同じマルチクロソイド曲線


このようにバイオリンデザインにおいてすべての制御点の間にマルチクロソイド曲線を使用すれば、不連続点がなく、数学的、また美学的にも美しい、非常に滑らかなラインを作ることができるようになります。また、制御点の位置を変更せずに曲線の形状を変えることも可能になります。



 

3. マルチクロソイド曲線によるバイオリン設計の自動化プロセス


バイオリン設計のための自動化プログラム制作において最も重要なキーは、「G2エルミット補間」を適用した3つのクロソイド曲線をプログラム上でどのように実装するかという問題である。幸いなことに、これは「pyclothoids」という素晴らしいモジュールがあり、簡単に処理できるようになりました。


バイオリンモデルは左右が対称なので左右どちらか一方だけ作図すれば反対側は対称コピーして簡単に完成できます。私はヴァイオリンの左行だけを書いて、右は対称コピーして完成します。プログラムで線を表示するには座標が必要なので、ヴァイオリンフォームの最下段の正中点を座標 (x, y)=(0,0) に設定し、フォームの最上段の正中点から下に降りながら順に曲線を描きます。


以下では、実際にプログラム上でどのようにヴァイオリンフォームデザインを完成するかみます。プログラミング言語には「python3」を使用し、上記の pyclothoids モジュールを必要とします(コードはコアのみ表記)


 

3.1. 制御点の指定


前章で述べたように、制御点の位置によって楽器のサイズと形状が決められます。したがって、あらかじめ自分が望む楽器のサイズを決めておかなければなりません。設定した楽器のサイズに基づいて制御点のxy座標を入力します。


まず、楽器サイズはTable 1 のように設定した。そして、それに対応する座標を入力します。ちなみに、本体の長さが 355mm のバイオリンならば、横板の厚さやエッジ幅などを考慮して、実際のフォームの長さと幅を入力します。私は、横板の厚さを 1.2mm、横板から外に飛び出した部分の幅を 2.8mm と仮定し、フォームの総長は 347mm ( = 355 - 2 * ( 1.2 + 2.8 ) )に設定しました。座標設定は、U-bout の制御点であるU1の場合、x 座標は U-bout 幅の半分で、符号は '-'になることに注意します。下の灰色のテキストボックスはプログラムコードです。


Table 1: 楽器サイズの決定


Ax = 0
Ay = 347
U1x = -160/2
U1y = 281.1
P1x = -148.6/2
P1y = 251.7
...

 

3.2. クロソイド曲線の作成


曲線は常に上側の点から出発して下側の点で終わることを原則とします。pyclothoids モジュールの3つの繋がったクロソイド曲線を描く関数は、2つの点の座標と各点の方向(角度)と曲率を必要とします。曲率は一度 '0' を入力し、次に少しずつ値を変えながら修正することにします。


点の座標は、前章で設定した点の座標を入力します。曲線の方向は東を`0'度、西は180度(または -180度)、北は90度、南は -90度です。曲率は、クロソイド曲線が曲がった程度を示すパラメータであり、曲率が大きいと曲線がより多く曲がります。方向と曲率を変えることで、さまざまな形の曲線を描くことができます。曲率設定において注意すべき点は曲率の符号であります。曲率の符号が '+'なら曲線は反時計回りに曲がり、符号が '-'なら曲線は時計方向に曲がります。


AとU1を結ぶ曲線の場合、点Aでは西に向かって出発するので角度は 180度(または -180度)になり、到着点であるU1では南に向かってきたので -90度になります(U1で曲線を見る角度(+90)ではない)。


フォームの左側には合計 8個の区間があり、各区間には 3個ずつのクロソイド曲線が入ります。グラフには、各クロソイド曲線が異なる色で表示されます。初期値は、おおよその値を入力してグラフを直接確認した後、少しずつ修正して完成する方法に進みます。


第 1 区間. : A ~ U1

始点Aでの方向は 180度、終点U1での方向は -90度です。この2つの値は固定です。点 Aでは、曲線は水平でなければならないため、必ず 180度でなければなりません。点 U1は、U-bout の最も広い点であるため、この点で曲線は垂直でなければならないため、必ず -90度にします。曲率は一度 '0' にしておきます。(残りの区間も同じ)

clothoid_1 = pc.SolveG2(Ax, Ay, pi, 0, U1x, U1y, -pi/2, 0)
for i in clothoid_1:
    plt.plot( *i.SampleXY(500) )

第 2 区間. : U1 ~ P1

第2区間の始点における方向は、第1区間の終点における方向と同じでなければなりません。つまり、U1では2つのクロソイド曲線が出会い、その2つの曲線の方向は当然同じでなければなりません。そうでないと、この点で曲線が折れることになります。したがって、U1の方向は必ず -90度でなければなりません。点 P1 ではおおよそ南南東を向いているので、一度 -70度くらいで入力します。

clothoid_2 = pc.SolveG2(U1x, U1y, -pi/2, 0, P1x, P1y, -70*pi/180, 0)
for i in clothoid_2:
plt.plot( *i.SampleXY(500) )

第 3 区間. : P1 ~ X1

第3区間の始点での方向は、第2区間の終点での方向と同じでなければならないので、上記のように -70度で入力します。終点X1では、ほぼ南西を向くので、-110度を入力します。(以下、コード省略)


第 4 区間. : X1 ~ M1

第4区間の始点はコーナー頂点であるため、第3区間の終点と方向を共有しません。X1 では、ほぼ東北の方向に向かって出発するため、角度は約 10度程度に設定します。終点で M1 は C-bout の最も狭い点であるため、ここでは必ず垂直でなければなりません。従って角度は -90度です。


第 5 区間. : M1 ~ Y1

第5区間の始点は、第4区間の終点と方向が同じでなければなりません。したがって、-90度を入力します。終点では西西北の方向を向くので 170度で入力します


第 6 区間. : Y1 ~ Q1

第6区間の始点は、第5区間の終点と方向を共有しません。南南東に向かっているので -70度で入力し、終点は南南西に向かうので -110度で入力します。


第 7 区間. : Q1 ~ L1

第7区間の始点は、第6区間の終点と方向が同じでなければなりません。したがって、-110度を入力します。終点では垂直でなければならないため、-90度を入力します。


第 8 区間. : L1 ~ Z

第8区間の始点は、第7区間の終点と方向が同じでなければなりません。したがって、-90度を入力します。終点では完全な水平でなければならず、また東を向きなので '0'度を入力します。


以上で入力を終えてグラフで確認するとFigure 9 のような様子を見ることができます。


Figure 9: 結果グラフ


残念ながら、まだヴァイオリンとは言えないようです。次の章では、角度と曲率を少しずつ変えて、ヴァイオリンに近い形に変えてみます。


 

3.3. 曲線の修正


意図する線を得るためには、2点での方向と曲率という4つのパラメータによって曲線がどのように変化するかを正確に理解しておく必要があります。特に本報告書は「両端点が固定されているマルチクロソイド曲線」を対象としているため、一方の端点のみ固定されている単一クロソイド曲線とは変化の様相が異なることに留意すべきであります。


3.3.1. 方向(角度)による曲線の変化


始点の角度に関しては混同することはないが、終点の角度は注意しなければなりません。まず、Figure 10 のような曲線を描きたい場合、始点 A での方向は南を向いているので、角度は -90度でしょう。しかし、終点 B での角度はいくらでしょう?終点から見ると曲線が南東にあるので約 -45でしょうか?


そうではありません。常に曲線の進行方向を基準にしないといけません。曲線は始点 A から南に向かって来て、徐々に西方向に変わり、終点 B では北西方向に向かった状態で止まります。したがって、終点での方向は北西方向でありません。よって、終点Bの角度は135度であります。


Figure 10: 終点での角度


3.3.2. 曲率符号による曲線の変化


前述のように曲率が '+'の場合、曲線は反時計回りに曲がり、'-'の場合は時計回りに曲がります。Figure 11 は、同じ曲線を始点 A での曲率だけ変化させたものであります。始点と終点が固定されている状態で始点の曲率符号だけが異なるため、始点Aを出発した直後に一つは時計回りに曲げ、もう一つは反時計回りに曲がっていて、その後二つとも同じように終点に向かって行きます。



Figure 11: 曲率符号による曲線方向の変化、Aの曲率 = -0.2(左)、0(中央)、+0.2(右)



3.3.3. 曲率の大きさによる曲線の変化


曲率の絶対値が小さいと(最小値=0)、曲線は徐々に巻き込まれ、曲率の絶対値が大きいと急激に巻き込まれます。 Figure 12 は、始点Aの曲率は同じで、終点Bでの曲率を変えたものです。曲率 0.4 の左曲線は点B付近で大きく曲がっています。ここで注意点は、曲率の絶対値が大きくなるとクロソイド曲線の長さが短くなることであります(左曲線の赤色線)。これは、特にコーナーデザインの際、大きい影響を及ぼすので確実に覚えておく必要があります。


Figure 12: 曲率の絶対値による曲線の変化、Bの曲率 = 0.4(左)、0(右)


曲率の絶対値の大きさが`1'より大きい場合、その点に隣接するクロソイド曲線は非常に短くなり、3つのクロソイドでなく2つのクロソイド曲線のように見えます。Figure 13 を見ると、(a) の C-bout 上部曲線に3つ(緑、空、紫) のクロソイド曲線があるが、(b) には頂点に接する緑曲線がほとんど見えません。しかし、実際にはまだ3つのクロソイド曲線があります。(c) は (b) の頂点付近を拡大したもので、緑色の曲線の長さが約 0.6mm 程度に短くなったことが分かります。したがって、3つではなく2つのクロソイド曲線だけでデザインしたい場合は、理論的には始点または終点の曲率を無限に増やせばいいです。プログラムの場合、曲率を約 10より大きくすると、クロソイド曲線は目では分からないほど短くなります。


(a) 曲率 = −0.07

(b) 曲率 = −1

(c) 画像 (b) の拡大

Figure 13: 曲率の大きさによる曲線の変化


上記のような性質を利用してコーナー頂点付近を軽く平らにすることもでき、丸くすることもできます。Figure 14 では、C-bout 上部曲線の頂点の曲率を変えることで頂点付近の曲線(緑色)がどのように変わるかを示しています。


(a) 曲率 = 0

(b) 曲率 = −0.1

Figure 14: コーナー頂点の曲線変形



3.3.4. 曲率の大きさが方向(角度)に与える影響


Figure 13 をもう一度みましょう。(a) と (b) は、C-boutの上部曲線の角度が等しく、曲率のみ異なるものです。しかし、同じ角度を入力したにもかかわらず、目で見ると2つの角度が異なります。しかし、(b) を拡大してみると、始点の角度が同じであることが分かります。つまり、曲率の大きさを大きくするほど曲線は大きく曲がって短くなる。ということで巨視的に見ると角度が変わったように見えることです。この現象は、上記のコーナー頂点付近の設計において曲率を上げると場合は角度も変えなければならないことを意味します。




 

4. デザイン結果と部分修正


Figure 15 は、Table 2 の値を使用して作成したヴァイオリンフォームデザインです。


Table 2: パラメータ


Figure 15:完成したデザイン


非常に美しいラインのフォームが完成されました。角度と曲率の修正だけで素晴らしいラインが得られるようになりました。


では、前章で述べた部分修正を行ってみましょう。他のはそのままにして C-bout の幅だけ左右にそれぞれ 2mm ずつ広げてみます。この場合には、C-bout の最も狭い位置を指す制御点 M1 を 2mm 広げればいいです。すなわち、M1 座標を左に 2 だけ移動させればよい。その結果、修正されたデザインは左右に合計 4mm が広くなります。- Figure 16 -


Figure 16: C-boutを拡張した様子


C-bout を広げる前と広げた後の結果を比較してみましょう。Figure 17 から分かるように、他の所はまったく変わってなく、C-bout の幅だけ広くなりました。そして、それに合わせて C-bout の曲線がスムーズに変更されたことがわかります。


Figure 17: C-bout 拡張前後の比較


もう一歩進んで、今度は肩とお尻を生かしてみます。Figure 18 は、A と Z の曲率を '0'とし、U1 と L1 の曲率を少しだけ下げたものであります


Figure 18: 肩とお尻を修正したモデル



肩とお尻を修正した姿と修正前の姿を比較します。- Figure 19 -


Figure 19: 肩とお尻の修正前後の比較


最後に、最初の姿と C-bout と肩、お尻を修正した後の姿を比較します - Figure 20 -


Figure 20: 修正前と最終修正後の比較



 

5. 結論と考察


これまで、既存の設計方法が持つ問題点を見て、G2 エルミット補間法を適用した3つのクロソイド曲線で制御点を繋ぐことで、ヴァイオリンフォームデザインを完成でき、また部分修正も非常に簡単に実施できることを証明しました。この方法は、バイオリンだけでなくビオラとチェロのデザインにも数字だけを変えることで同様に適用することができます。


完成したプログラム(Figure 21)と使用説明書は、本人のホームページ ( http://www.hisviolins.com ) から無料でダウンロードできます。



Figure 21: Violin Designer, v.2.3.0



 

参考文献


[1] E. Bertolazzi and M. Frego, “On the g2 hermite interpolation problem with clothoids.”,

Journal of Computational and Applied Mathematics, no. 341, pp. 99–116, 2018.







閲覧数:86回0件のコメント

Comments


bottom of page