(57)【要約】【課題】多角形メッシュの分割を細かくすることなく、当該多角形メッシュの２端点を結ぶ線分を曲線補間することによって得られる曲線が大きく湾曲するといった湾曲現象の発生を防止できるようにする。【解決手段】線分の両端点をＰ30，Ｐ03、中間制御点をＰ21，Ｐ12、曲線の曲率パラメータをｃ、０≦ζ≦１をパラメータとして、次の３次多項式により線分を曲線補間することにより、ベジエ曲線の次数を３次に拡張した３次多項式により線分が曲線補間されるようにして、中間制御点が線分に対して大きく横にずれてしまうことを防ぐことができるようにする。ｘ(ζ)＝Ｐ30(１−ζ)3＋Ｐ21・３(１−ζ) 2ζ＋Ｐ12・３(１−ζ)ζ2＋Ｐ03ζ3  ここで、  Ｐ21＝(ｘ0＋２Ｐ11)／３，Ｐ21＝(２Ｐ11＋ｘ1)／３  Ｐ11＝(ｘ0＋ｘ1)／２−ｃ／２【選択図】図２
2014219789.tif 000002
【特許請求の範囲】
【請求項１】
多角形メッシュの各頂点と中間制御点とから多角形メッシュの辺を滑らかに補間した曲線または内部を滑らかに補間した曲面を描画する曲面描画装置であって、
上記線分の両端点をＰ30，Ｐ03、上記中間制御点をＰ21，Ｐ12、上記両端点の位置ベクトルをｘ0，ｘ1、上記曲線の曲率パラメータをｃ、０≦ζ≦１をパラメータとして、次の３次多項式によって上記線分を曲線補間する曲線演算部と、
ｘ(ζ)＝Ｐ30(１−ζ)3＋Ｐ21・３(１−ζ) 2ζ＋Ｐ12・３(１−ζ)ζ2＋Ｐ03ζ3
ここで、
Ｐ30＝ｘ0 ，Ｐ03＝ｘ1
Ｐ21＝(ｘ0＋２Ｐ11)／３，Ｐ21＝(２Ｐ11＋ｘ1)／３
Ｐ11＝(ｘ0＋ｘ1)／２−ｃ／２
上記曲線演算部により求められた上記曲線を描画する曲線描画部とを備えたことを特徴とする曲面描画装置。
【請求項２】
上記曲線演算部は、上記線分を含み、上記線分の始点Ｐ30を通り当該始点Ｐ30の単位法線ベクトルに直交する始点側接平面に直交する第１平面と、上記線分を含み、上記線分の終点Ｐ03を通り当該始点Ｐ03の単位法線ベクトルに直交する終点側接平面に直交する第２平面との２等分平面のうち、上記第１平面と上記第２平面となす角が小さい方を曲線平面として選択し、上記線分の両端点Ｐ30，Ｐ03および上記中間制御点Ｐ21，Ｐ12を上記曲線平面上に配置することを特徴とする請求項１に記載の曲面描画装置。
【請求項３】
上記多角形メッシュの各線分について上記曲線演算部により算出された複数の枠線と、上記多角形メッシュの各頂点と、当該各頂点間の各線分に関する上記中間制御点とを用い、１つの枠線とそれに対向する枠線との組合せから１次式補間されるベジエ曲面を全ての組合せについて足し合わせるとともに、上記多角形メッシュの各頂点から１次補間で定義されるベジエ曲面を差し引いてクーンズ曲面を算出する曲面演算部と、
上記曲面演算部により求められた上記クーンズ曲面を描画する曲面描画部とを更に備えたことを特徴とする請求項１に記載の曲面描画装置。
【請求項４】
上記多角形メッシュが三角形メッシュであり、当該三角形メッシュの３頂点をＰ003，Ｐ300，Ｐ030、当該３頂点間を結ぶ３つの線分に関する３組の上記中間制御点を(Ｐ102，Ｐ201)，(Ｐ210，Ｐ120)，(Ｐ012，Ｐ021)、０≦ζ≦η≦１をパラメータとして、上記曲線演算部は、次の３式により３本の枠線を算出し、
ｘ(η,0,１−η)＝Ｐ003(１−η)3＋Ｐ102・３(１−η)2η＋Ｐ201・３(１−η)η2＋Ｐ300η3
ｘ(１−ζ,ζ,0)＝Ｐ300(１−ζ)3＋Ｐ210・３(１−ζ)2ζ＋Ｐ120・３(１−ζ) ζ2＋Ｐ030ζ3
ｘ(0,η,１−η)＝Ｐ003(１−η)3＋Ｐ012・３(１−η)2η＋Ｐ021・３(１−η)η2＋Ｐ030η3
上記曲面演算部は、上記３式のうち第１式と第３式との組合せから１次式補間される第１のベジエ曲面をＳ1、上記３式のうち第２式と第３式との組合せから１次式補間される第２のベジエ曲面をＳ2、上記３式のうち第１式と第２式との組合せから１次式補間される第３のベジエ曲面をＳ3、上記３頂点から１次補間で定義されるベジエ曲面をＳ4、上記三角形メッシュの中央に位置する制御点をＰ111とした場合、
Ｓ＝（Ｓ1＋Ｓ2＋Ｓ3−Ｓ4）／２
Ｐ111＝｛（Ｐ201＋Ｐ021）／４｝＋｛（Ｐ012＋Ｐ210）／４｝＋｛（Ｐ102＋Ｐ120）／４｝−｛（Ｐ003＋Ｐ300＋Ｐ030）／６｝
により上記クーンズ曲面Ｓを算出することを特徴とする請求項３に記載の曲面描画装置。
【請求項５】
多角形メッシュの各頂点と中間制御点とから多角形メッシュの辺を滑らかに補間した曲線または内部を滑らかに補間した曲面を描画するための曲面描画用プログラムであって、
上記線分の両端点をＰ30，Ｐ03、上記中間制御点をＰ21，Ｐ12、上記両端点の位置ベクトルをｘ0，ｘ1、上記曲線の曲率パラメータをｃ、０≦ζ≦１をパラメータとして、次の３次多項式によって上記線分を曲線補間する曲線演算手段、および
ｘ(ζ)＝Ｐ30(１−ζ)3＋Ｐ21・３(１−ζ) 2ζ＋Ｐ12・３(１−ζ)ζ2＋Ｐ03ζ3
ここで、
Ｐ30＝ｘ0 ，Ｐ03＝ｘ1
Ｐ21＝(ｘ0＋２Ｐ11)／３，Ｐ21＝(２Ｐ11＋ｘ1)／３
Ｐ11＝(ｘ0＋ｘ1)／２−ｃ／２
上記曲線演算手段により求められた上記曲線を描画する曲線描画部手段
としてコンピュータを機能させるための曲面描画用プログラム。
【請求項６】
上記多角形メッシュの各線分について上記曲線演算部により算出された複数の枠線と、上記多角形メッシュの各頂点と、当該各頂点間の各線分に関する上記中間制御点とを用い、１つの枠線とそれに対向する枠線との組合せから１次式補間されるベジエ曲面を全ての組合せについて足し合わせるとともに、上記多角形メッシュの各頂点から１次補間で定義されるベジエ曲面を差し引いてクーンズ曲面を算出する曲面演算手段、および
上記曲面演算手段により求められた上記クーンズ曲面を描画する曲面描画手段
としてコンピュータを更に機能させるための請求項５に記載の曲面描画用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、曲面描画装置および曲面描画用プログラムに関し、特に、多角形メッシュの各頂点と中間制御点とから多角形メッシュの辺や内部を滑らかに補間した曲線または曲面を描画する曲面描画装置に用いて好適なものである。
【背景技術】
【０００２】
通常、有限要素法（ＦＥＭ）による数値シミュレーションでは、対象領域を離散的な格子点群で近似して計算を行う。これに伴い、領域内に含まれる対象物表面形状は、三角形や四角形から構成される多面体モデル（三角形メッシュ、四角形メッシュ）で表される。
【０００３】
一方、ＣＡＤ（Computer Aided Design：コンピュータ支援設計）分野では、伝統的に滑らかな曲面モデルが使われてきた。近年では、計測情報処理の発達により、多面体モデルと曲面モデルとを混在させた形状処理が行われるようになってきている。このような混在モデルでは、多面体表面を構成する各三角形や四角形の辺および内部を簡便な曲面式により滑らかに補間したい場面が生ずる。
【０００４】
例えば、曲面を三角形メッシュに多面体近似し、その三角形メッシュを数値シミュレーションで変形した後、変形されたメッシュに合わせて曲面を滑らかに変形するという処理を考えると、多面体の頂点位置で算出される変形量を頂点間の中間位置にも滑らかに補間する計算が必要になる。従来、補間によって曲線や曲面を描画する技術が数多く提供されている（例えば、特許文献１，２参照）。
【０００５】
ところで、理化学研究所のＶＣＡＤプロジェクトの中で長田隆氏により創案された曲面式として、「長田パッチ」と呼ばれるものがある。長田パッチは、三角形メッシュ、四角形メッシュの各頂点に付与された法線ベクトル（形状表面に直交する方向）から、曲面の丸みを簡便に補間するのに有効な技術である。以下に、この長田パッチの概要を説明する。
【０００６】
長田パッチでは、多角形（三角形または四角形）の各頂点と、その各頂点に与えられた単位法線ベクトルとから、２次多項式により多角形領域内に丸みを持って補間する曲面式を定義している。なお、以下では説明の簡略化のため、三角形領域の補間に限定して説明する。長田パッチで基本となるのは、多角形の各辺（線分）を、２つの端点と各端点での単位法線ベクトルとから２次多項式で曲線補間する曲線式である。以下、この曲線式で得られる曲線を「長田セグメント」と呼ぶ。
【０００７】
図１０に示すように、線分の始点をＰ0、終点をＰ1、各々の位置ベクトルをｘ0，ｘ1、単位法線ベクトルをｎ0，ｎ1とする。この場合、長田パッチでは、０≦ζ≦１をパラメータとして、次の形の２次多項式(1)でｘ0，ｘ1，ｎ0，ｎ1を補間する。
ｘ(ζ)＝ｘ0＋(ｄ−ｃ)ζ＋ｃζ2・・・(1)
ここに、ｘは曲線の線上点を表す位置ベクトル、ｄは始点から終点に向かう差ベクトル（ｄ＝ｘ1−ｘ0）である。また、ｃはｘ0，ｘ1，ｎ0，ｎ1から算出される「曲率パラメータ」と呼ばれる未知定数ベクトルであり、曲線の膨らみを規定する。
【０００８】
さて、位置ベクトルｘ0，ｘ1を結ぶ弦（線分）の中点の位置ベクトルをｘm（＝ｘ0＋ｄ／２）とし、中点ｘmからベクトル（−ｃ／２）だけ移動した位置をＰm（＝ｘm−ｃ／２）とする。また、ｘj（ｊ＝０，１）を通り法線ベクトルｎjに直交する平面を｛ｘj，ｎj｝で表す。この平面は曲線が接するべき平面なので、「接平面」とよぶ。
【０００９】
ここで、点Ｐmは、始点側接平面｛ｘ0，ｎ0｝上にも、終点側接平面｛ｘ1，ｎ1｝上にもなければならない。すなわち、両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝が交線を持つ場合には、点Ｐmは交線上になければならない。また、両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝が交線を持つ場合には、ｎ0×ｎ1は交線の方向ベクトルと平行なので、ベクトルｃは交線と直交しなければならない。したがって、両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝が交線を持つ場合、点Ｐmは弦の中点ｘmから交線に下した垂線の足ということになる。
【００１０】
長田パッチでは、線分の各端点Ｐ0，Ｐ1の位置ベクトルｘ0，ｘ1と、点Ｐmの位置ベクトルとから、各端点Ｐ0，Ｐ1を結ぶ線分を２次多項式で曲線補間する。この曲線補間の２次多項式(2)として、ＣＡＤでよく使われる図１１のようなベジエ曲線を用いることが可能である。すなわち、２次ベジエ曲線を
ｘ(ζ)＝Ｐ20(１−ζ)2＋Ｐ11・２(１−ζ)ζ＋Ｐ02ζ2・・・(2)
として、Ｐ20＝ｘ0（始点Ｐ0の位置ベクトル）、Ｐ02＝ｘ1（終点Ｐ1の位置ベクトル）、Ｐ11＝（ｘ0＋ｘ1）／２−ｃ／２（中間制御点Ｐmの位置ベクトル）のように当て嵌めることができる。
【００１１】
長田セグメントは２次多項式曲線であり、放物線の一部を切り取った形状であるため、平面曲線である。曲線が乗っている平面は始終点ｘ0，ｘ1を結ぶ弦を含む平面であり、これを「曲線平面」と呼ぶ。長田セグメントの２次多項式曲線を２次ベジエ曲線として表現する場合には、中間制御点Ｐmの位置を選ぶことにより、曲線平面が定まる。
【００１２】
しかしながら、始終点ｘ0，ｘ1に与えられる単位法線ベクトルｎ0，ｎ1の方向が平行に近いとき、図１２に示すように、２次ベジエ曲線で表されるパッチ形状が乱れる（曲線が大きく湾曲する）場合があるという問題があった。曲線の湾曲現象は、単位法線ベクトルｎ0，ｎ1が平行に近く、始点側接平面｛ｘ0，ｎ0｝と終点側接平面｛ｘ1，ｎ1｝とが始終点ｘ0，ｘ1を結ぶ弦から大きく隔たった位置に交線を持つ場合に発生する。このとき、弦の中点ｘmから接平面交線に下した垂線の足に当たる中間制御点Ｐmは、弦に対して大きく横にずれ、結果として２次ベジエ曲線は湾曲するに至る。すなわち、曲線平面が接平面と平行に近い状態まで倒れるため、長田セグメントの湾曲が起きる。
【００１３】
長田パッチでは、このような問題が生じるのは始終点ｘ0，ｘ1の間隔が大き過ぎるためであるとして、精度を満たすまで三角形メッシュの分割を細かくすることが推奨されている。確かにメッシュを十分に細分すると、法線ベクトルｎ0 ，ｎ1と弦は直交に近づくので、曲率パラメータｃ＝０で長田セグメントが弦と一致しても、法線直交条件は破綻しない。しかし、現実の応用では三角形メッシュを随意に細かくすることができず、与えられた粗さのメッシュで処理を進めなければならない場合も多い。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平５−３１４２６８号公報
【特許文献２】特開平９−８１７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明は、このような問題を解決するために成されたものであり、多角形メッシュの分割を細かくすることなく、当該多角形メッシュの２端点を結ぶ線分を曲線補間することによって得られる曲線が大きく湾曲するといった湾曲現象の発生を防止できるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
上記した課題を解決するために、本発明では、線分の両端点をＰ30，Ｐ03、中間制御点をＰ21，Ｐ12、両端点の位置ベクトルをｘ0，ｘ1、曲線の曲率パラメータをｃ、０≦ζ≦１をパラメータとして、次の３次多項式によって線分を曲線補間するようにしている。
ｘ(ζ)＝Ｐ30(１−ζ)3＋Ｐ21・３(１−ζ) 2ζ＋Ｐ12・３(１−ζ)ζ2＋Ｐ03ζ3
ここで、
Ｐ30＝ｘ0 ，Ｐ03＝ｘ1
Ｐ21＝(ｘ0＋２Ｐ11)／３，Ｐ21＝(２Ｐ11＋ｘ1)／３
Ｐ11＝(ｘ0＋ｘ1)／２−ｃ／２
【発明の効果】
【００１７】
上記のように構成した本発明によれば、ベジエ曲線の次数を３次に拡張した３次多項式により線分が曲線補間されるので、中間制御点はＰ21，Ｐ12の２つとなり、当該中間制御点Ｐ21，Ｐ12が線分に対して大きく横にずれてしまうことを防ぐことができる。これにより、多角形メッシュの分割を細かくすることなく、当該多角形メッシュの２端点を結ぶ線分を曲線補間することによって得られる曲線が大きく湾曲するといった湾曲現象の発生を防止することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態による曲面描画装置の構成例を示す機能ブロック図である。
【図２】本実施形態の曲線演算部による処理内容を説明するための図である。
【図３】本実施形態において採用する曲線平面を説明するための図である。
【図４】図３に示した曲線平面を用いるだけの対策を施した場合に生じる問題点を説明するための図である。
【図５】図３に示した曲線平面を用いるだけの対策を施した場合に生じる問題点を説明するための図である。
【図６】本実施形態による補正制御点の求め方を説明するための図である。
【図７】本実施形態によるクーンズ曲面の求め方を説明するための図である。
【図８】本実施形態によるクーンズ曲面の求め方を説明するための図である。
【図９】本実施形態によるクーンズ曲面の求め方を説明するための図である。
【図１０】従来の長田パッチによる処理内容を説明するための図である。
【図１１】従来の長田パッチによる処理内容を説明するための図である。
【図１２】従来の長田パッチによる処理で生じる問題点を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本実施形態による曲面描画装置の構成例を示す機能ブロック図である。図１に示すように、本実施形態の曲面描画装置は、多角形メッシュの各頂点と中間制御点とから多角形メッシュの辺を滑らかに補間した曲線または内部を滑らかに補間した曲面を描画するものであり、その機能構成として、曲線演算部１、曲面演算部２、曲線描画部３、曲面描画部４および表示制御部５を備えて構成されている。
【００２０】
上記各機能ブロック１〜５は、ハードウェア、ＤＳＰ（Digital Signal Processor）、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック１〜５は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶された曲面描画用プログラムが動作することによって実現される。
【００２１】
したがって、上記各機能ブロック１〜５の機能は、曲面描画用プログラムをＣＤ−ＲＯＭのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。曲面描画用プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、ＤＶＤ、不揮発性メモリカード等を用いることができる。また、曲面描画用プログラムをインターネットを介してコンピュータにダウンロードすることによっても実現できる。
【００２２】
図２は、曲線演算部１による処理内容を説明するための図である。図２に示すように、曲線演算部１は、線分の両端点をＰ30，Ｐ03、中間制御点をＰ21，Ｐ12、両端点Ｐ30，Ｐ03の位置ベクトルをｘ0 ，ｘ1、両端点Ｐ30，Ｐ03における単位法線ベクトルをｎ0，ｎ1、求める曲線の曲率パラメータをｃ、０≦ζ≦１をパラメータとして、次の３次多項式(3)によって線分を曲線補間する。
ｘ(ζ)＝Ｐ30(１−ζ)3＋Ｐ21・３(１−ζ) 2ζ＋Ｐ12・３(１−ζ)ζ2＋Ｐ03ζ3・・・(3）
ここで、
Ｐ30＝ｘ0 ，Ｐ03＝ｘ1
Ｐ21＝(ｘ0＋２Ｐ11)／３，Ｐ21＝(２Ｐ11＋ｘ1)／３
Ｐ11＝(ｘ0＋ｘ1)／２−ｃ／２：２次多項式で曲線補間する場合の中間制御点
【００２３】
曲線描画部３は、曲線演算部１により求められた曲線を描画する。表示制御部５は、曲線描画部３により描画された曲線をディスプレイ（図示せず）に表示させる。多角形メッシュの各線分に対して曲線演算部１、曲線描画部３および表示制御部５の処理を行うことにより、各多角形メッシュの辺を滑らかに補間した曲線をディスプレイに表示させることが可能である。
【００２４】
以下に、曲線演算部１の処理内容を詳しく説明する。従来技術について説明したように、長田セグメントの湾曲現象は、当該長田セグメントの曲線が乗っている曲線平面が線分の両端点における接平面と平行に近い状態まで倒れるために起きる。そこで、曲線の湾曲を防止する対策の出発点として、曲線平面を両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝に対して可能な限り直交に近づける。
【００２５】
具体的には、図３に示すように、始終点ｘ0，ｘ1を結ぶ線分を含み、当該線分の始点ｘ0を通り始点側接平面｛ｘ0，ｎ0｝に直交する平面を第１平面Π0とする。また、上記線分を含み、当該線分の終点ｘ1を通り終点側接平面｛ｘ1，ｎ1｝に直交する平面を第２平面Π1とする。そして、第１平面Π0と第２平面Π1とを等角で２等分する２等分平面のうち、第１平面Π0と第２平面Π1となす角が小さい方を曲線平面Πとして選択する。
【００２６】
なお、図１２に示したように 両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝の交線が線分（弦）から大きく隔たっている場合には、上記のように曲線平面Πを選択するだけでは問題は解決しない。式(2)のような２次多項式で線分を曲線補間する場合、始終点ｘ0，ｘ1で各接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝に接する２次ベジエ曲線を得るには、中間制御点Ｐ11は両接平面上にあるべきなので、曲線平面Πと両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝の交線との交点位置に中間制御点Ｐ11を配置しなければならない。このため、接平面交線の位置が弦に対して不適切な位置にあると、図４に示すように、中間制御点Ｐ11が、弦の両端点での直交平面で挟まれた範囲の外に出てしまうことが起きる。
【００２７】
図４の状況を２次ベジエ曲線の数式として表現すると、
(Ｐ11−Ｐ20，Ｐ02−Ｐ20)＜０または(Ｐ02−Ｐ11，Ｐ02−Ｐ20)＜０・・・(4)
である。中間制御点Ｐ11と弦の端点Ｐ20，Ｐ02との差ベクトルは、端点Ｐ20，Ｐ02での曲線の接線の方向に対応しているので、式(4)の前半の不等式は、始点Ｐ20での接線方向が弦の方向（始点Ｐ20から終点Ｐ02に向かう方向）と逆行していることを表している（図５（ａ）参照）。また、式(4)の後半の不等式は、終点Ｐ02での接線方向が弦の方向と逆行していることを表している（図５（ｂ）参照）。
【００２８】
このように、両接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝の交線が弦から大きく隔たっていると、接線方向と弦の方向が逆行するという問題は、２次ベジエ曲線である以上、避けられない。すなわち、各端点Ｐ20，Ｐ02での曲線への接線は、曲線平面Πと各接平面｛ｘ0，ｎ0｝，｛ｘ1，ｎ1｝との交線である。中間制御点Ｐ11はこの接線上に位置するが、相手端点の接平面との交点位置が弦の方向と逆行する場合、逆行を回避するには中間制御点を接線上、相手端点側に配置しなければならない。しかしながら、これは２次ベジエ曲線では不可能である。そこで、本実施形態では、ベジエ曲線の次数を３次に拡張し、上述した３次多項式(3)により線分を曲線補間することとする。
【００２９】
なお、４個の制御点Ｐ30，Ｐ21，Ｐ12，Ｐ03は同一平面上にあるとは限らないので、一般に３次ベジエ曲線は平面曲線とは限らない。そこで、本実施形態では、図２に示すように、線分の両端点ｘ0＝Ｐ30，ｘ1＝Ｐ03および２つの中間制御点Ｐ21，Ｐ12を曲線平面Π上に配置することで、平面曲線として考える。ただし、３次ベジエ曲線では中間制御点がＰ21，Ｐ12の２個になり、その決め方を別途案出する必要が生じる。本実施形態では、２次ベジエ曲線の形状を可能な限り継承する手法を採用する。以下にこの手法を説明する。
【００３０】
２次多項式は、３次の項＝０の場合の特別な３次多項式と言えるので、２次ベジエ曲線を３次ベジエ曲線の特別形と考えたときの制御点を計算する。これは、「ベジエ曲線の次数上げ」として知られた手法を用いて、２次ベジエ曲線の２次多項式(2)に定数１を表す恒等式１＝(１−ζ)＋ζを掛けて、形式的に３次式にすればよい。なお、次数上げしても、曲線の形状は変化しない。
【００３１】
３次ベジエ曲線の多項式(3)と、２次ベジエ曲線の多項式(2)を３次に次数上げした曲線の多項式との関係式から、以下の関係式が得られる。
Ｐ30＝Ｐ20（＝ｘ0）・・・(5)
Ｐ21＝(Ｐ20＋２Ｐ11)／３・・・(6)
Ｐ21＝(２Ｐ11＋Ｐ02)／３・・・(7)
Ｐ03＝Ｐ02（＝ｘ1）・・・(8)
【００３２】
ただし、線分の両端点での座標値と法線とから曲線を作るので、接線方向の正負は必要に応じて反転しても構わない。そこで、図５に示したように２次ベジエ曲線の接線方向が弦の方向と逆行している場合には、逆行しない側に補正した制御点から３次ベジエ曲線の制御点を決めることとする。
【００３３】
すなわち、次の式(9),(10)のように補正制御点Ｐ11(0)，Ｐ11(1)を定める。
Ｐ21＝(Ｐ20＋２Ｐ11(0))／３・・・(9)
Ｐ21＝(２Ｐ11(1)＋Ｐ02)／３・・・(10)
この補正制御点Ｐ11(0)，Ｐ11(1)は、逆行が起きていない場合には２次ベジエ曲線の制御点Ｐ11に一致する。一方、逆行が起きている場合には、２次ベジエ曲線の各端点の接線上で相手側（始点側接線では終点側、終点側接線では始点側）の接線を曲線平面上で弦について線対称に配置して得られる交点とする。
【００３４】
このことを、図６を用いて始点側を例に説明する。図６において、始点Ｐ20から両接線の交点Ｐ11に向かう方向は弦の方向と逆行しているので、交点Ｐ11自体を不採用とする。拘束条件は制御点が接線上にあることであり、接線と弦とのなす角度を維持するため、相手＝終点側接線を弦について線対称（上向きの白抜き矢印）に配置して始点側接線と交点Ｐ11(0)を求める。逆に、始点側接線を弦について線対称（下向きの白抜き矢印）に配置して終点側接線と交点Ｐ11(1)を求めてから、式(9),(10)で３次ベジエ曲線の制御点Ｐ21，Ｐ12を決めると、逆行が回避される。
【００３５】
以上のような演算を行うことにより、多角形メッシュの分割を細かくすることなく、当該多角形メッシュの２端点を結ぶ線分を曲線補間することによって得られる曲線が大きく湾曲するといった湾曲現象の発生を防止することができる。すなわち、オリジナルの長田パッチで面質良好な場合には同等の面質を与え、オリジナルの長田パッチでは面形状が乱れる場合でも面形状の乱れを抑止することができる。
【００３６】
次に、与えられた枠線だけから曲面内部を内挿する方法について述べる。当該内挿の手法としてよく知られているものとして、クーンズ曲面がある。クーンズ曲面は、図７に示すように、１つの枠線とそれに対向する枠線との組合せから１次式補間される線織面（ruled surface）を全ての組合せについて足し合わせ、境界条件の余分を調整して定義される曲面である。枠線間の１次補間から“ピンと張った”曲面が得られる特性があるので、長田パッチ定義式を拡張する曲面式に適している。
【００３７】
図１の曲面演算部２は、多角形メッシュの各線分について曲線演算部１により算出された複数の枠線と、多角形メッシュの各頂点と、当該各頂点間の各線分に関する中間制御点とを用い、１つの枠線とそれに対向する枠線との組合せから１次式補間されるベジエ曲面を全ての組合せについて足し合わせるとともに、多角形メッシュの各頂点から１次補間で定義されるベジエ曲面を差し引いてクーンズ曲面を算出する。
【００３８】
曲面描画部４は、曲面演算部２により求められたクーンズ曲面を描画する。表示制御部５は、曲面描画部４により描画されたクーンズ曲面をディスプレイ（図示せず）に表示させる。例えば、３次元形状を構成する複数の多角形メッシュに対して曲面演算部２、曲面描画部４および表示制御部５の処理を行うことにより、各多角形メッシュの内部を滑らかに内挿した曲面をディスプレイに表示させることが可能である。
【００３９】
なお、以下では、多角形メッシュの一例として三角形メッシュをとりあげ、曲線演算部１により生成した３本の枠線（曲線）で囲まれた曲線三角形領域を内挿する三角クーンズ曲面について説明する。本実施形態では、上述したように、長田パッチの３本の枠線を３次ベジエ曲線に変更したので、ベジエ形式での曲面式は３次の三角ベジエ曲面を用いなければならない。
【００４０】
例えば、図８のように、３つの頂点Ｐ003，Ｐ300，Ｐ030とそれらを結ぶ３本の枠線（曲線）とがある場合、３次三角ベジエ曲面は、μ，ν，ωを三角形の重心座標と考えたとき、０≦μ，ν，ω≦１（μ＋ν＋ω＝１）をパラメータとして、次の式(11)により表される。
ｘ(μ，ν，ω)＝Ｐ003・ω3＋Ｐ102・３μω2＋Ｐ201・３μ2ω＋Ｐ300・μ3
＋Ｐ012・３νω2＋Ｐ111・６μνω＋Ｐ210・３μ2ν
＋Ｐ021・３ν2ω＋Ｐ120・３μν2＋Ｐ030・ν3・・・(11)
この式(11)から明らかなように、３次三角ベジエ曲面を描画するために必要な制御点は、３つの頂点Ｐ003，Ｐ300，Ｐ030を含めて全部で１０個である。
【００４１】
ここで、長田パッチの３頂点との対応は、Ｐ003＝ｘ00，Ｐ300＝ｘ10，Ｐ030＝ｘ11である。また、パラメータとの対応は、μ＝η−ζ，ν＝ζ，ω＝１−ηであり（０≦ζ≦η≦１）、各枠線には上述の方法で決められた３次ベジエ曲線を次のように当て嵌める。
ｘ(η,0,１−η)＝ｘ00(１−η)3＋Ｐ102・３(１−η)2η＋Ｐ201・３(１−η)η2＋ｘ10η3・・・(12）
ｘ(１−ζ,ζ,0)＝ｘ10(１−ζ)3＋Ｐ210・３(１−ζ)2ζ＋Ｐ120・３(１−ζ) ζ2＋ｘ11ζ3・・・(13）
ｘ(0,η,１−η)＝ｘ00(１−η)3＋Ｐ012・３(１−η)2η＋Ｐ021・３(１−η)η2＋ｘ11η3・・・(14）
なお、式(12)ではν＝ζ＝０なのでμ＝η、式(13)ではω＝１−η＝０なのでη＝１、μ＝１−ζ、式(14)ではμ＝η−ζ＝０なのでν＝ζ＝ηである。
【００４２】
上記式(12)〜(14)により、３次三角ベジエ曲面の１０個の制御点のうち、曲線三角形領域の中央に位置する制御点Ｐ111を除く９個は３本の枠線から定まる。一方、中央の制御点Ｐ111については、これを決める方法が別途必要である。以下に、この方法を説明する。
【００４３】
３本の枠線は、式(12)〜(14)から以下のように表すことができる。
ｘ(η,0,１−η)＝Ｐ003(１−η)3＋Ｐ102・３(１−η)2η＋Ｐ201・３(１−η)η2＋Ｐ300η3・・・(15）
ｘ(１−ζ,ζ,0)＝Ｐ300(１−ζ)3＋Ｐ210・３(１−ζ)2ζ＋Ｐ120・３(１−ζ) ζ2＋Ｐ030ζ3・・・(16）
ｘ(0,η,１−η)＝Ｐ003(１−η)3＋Ｐ012・３(１−η)2η＋Ｐ021・３(１−η)η2＋Ｐ030η3・・・(17）
ここで、式(15)はν＝０とした枠線、式(16)はω＝０とした枠線、式(17)はμ＝０とした枠線を示している。
【００４４】
図７にて説明したように、クーンズ曲面は、１つの枠線とそれに対向する枠線とから１次式補間される線織面を全組合せについて足し合わせ、境界条件の余分を調整して定義される曲面である。これを図８の例に適用すると、以下のようになる。すなわち、ν＝０枠線とμ＝０枠線とから１次式補間される第１の線織面をＳ1、μ＝０枠線とω＝０枠線とから１次式補間される第２の線織面をＳ2、ν＝０枠線とω＝０枠線とから１次式補間される第３の線織面をＳ3、３頂点から１次補間で定義される１次三角ベジエ曲面をＳ4とした場合、求める三角クーンズ曲面Ｓは、以下の通りとなる。
Ｓ＝（Ｓ1＋Ｓ2＋Ｓ3−Ｓ4）／２・・・(18)
【００４５】
ここで、第１の線織面Ｓ1は、図９に示すように、ν＝０枠線の中間制御点Ｐ201とμ＝０枠線の中間制御点Ｐ021とを結ぶ線分の等分点を制御点とする三角ベジエ曲面であり、以下のように表される。
Ｓ1(μ，ν，ω)＝Ｐ003・ω3＋Ｐ102・３μω2＋Ｐ201・３μ2ω＋Ｐ300・μ3＋Ｐ012・３νω2＋｛（Ｐ201＋Ｐ021）／２｝・６μνω＋｛（２Ｐ300＋Ｐ030）／３｝・３μ2ν＋Ｐ021・３ν2ω＋｛（Ｐ300＋２Ｐ030）／３｝・３μν2＋Ｐ030・ν3・・・(19)
【００４６】
同様に、第２の線織面Ｓ2は、μ＝０枠線の中間制御点Ｐ012とω＝０枠線の中間制御点Ｐ210とを結ぶ線分の等分点を制御点とする三角ベジエ曲面であり、以下のように表される。
Ｓ2(μ，ν，ω)＝Ｐ003・ω3＋｛（２Ｐ003＋Ｐ300）／３｝・３μω2＋｛（Ｐ003＋２Ｐ300）／３｝・３μ2ω＋Ｐ300・μ3＋Ｐ012・３νω2＋｛（Ｐ012＋Ｐ210）／２｝・６μνω＋Ｐ210・３μ2ν＋Ｐ021・３ν2ω＋Ｐ120・３μν2＋Ｐ030・ν3・・・(20)
【００４７】
同様に、第３の線織面Ｓ3は、ν＝０枠線の中間制御点Ｐ102とω＝０枠線の中間制御点Ｐ120とを結ぶ線分の等分点を制御点とする三角ベジエ曲面であり、以下のように表される。
Ｓ3(μ，ν，ω)＝Ｐ003・ω3＋Ｐ102・３μω2＋Ｐ201・３μ2ω＋Ｐ300・μ3＋｛（２Ｐ003＋Ｐ030）／３｝・３νω2＋｛（Ｐ102＋Ｐ120）／２｝・６μνω＋Ｐ210・３μ2ν＋｛（Ｐ003＋２Ｐ030）／３｝・３ν2ω＋Ｐ120・３μν2＋Ｐ030・ν3・・・(21)
【００４８】
これらの式(18)〜(21)から、３次三角ベジエ曲面の中央制御点Ｐ111を計算すると、次の式(22)となる。
Ｐ111＝｛（Ｐ201＋Ｐ021）／４｝＋｛（Ｐ012＋Ｐ210）／４｝＋｛（Ｐ102＋Ｐ120）／４｝−｛（Ｐ003＋Ｐ300＋Ｐ030）／６｝・・・(22)
【００４９】
このように、本実施形態によれば、与えられた３頂点Ｐ003，Ｐ300，Ｐ030を補間する曲面パッチとして、３次多項式(3)により曲線平面と３次ベジエ曲線とを当て嵌めてν＝０枠線、ω＝０枠線およびμ＝０枠線を補間し、これらの各枠線から式(18)の定義式による三角クーンズ曲面を構成して３次三角ベジエ曲面を得ることができる。
【００５０】
なお、上記実施形態では、多角形メッシュの一例として三角形メッシュをとりあげて説明をしたが、本発明はこれに限定されない。例えば、四角形メッシュに本発明を適用することも可能である。
【００５１】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５２】
１  曲線演算部
２  曲面演算部
３  曲線描画部
４  曲面描画部
５  表示制御部
【図１】
2014219789.tif 000003
【図２】
2014219789.tif 000004
【図３】
2014219789.tif 000005
【図４】
2014219789.tif 000006
【図５】
2014219789.tif 000007
【図６】
2014219789.tif 000008
【図７】
2014219789.tif 000009
【図８】
2014219789.tif 000010
【図９】
2014219789.tif 000011
【図１０】
2014219789.tif 000012
【図１１】
2014219789.tif 000013
【図１２】
2014219789.tif 000014