以下、本発明の実施の形態について、図面を参照して説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
まず、刺繍データ作成装置1の構成について、図1および図2を参照して説明する。刺繍データ作成装置1は、後述の刺繍ミシン3によって縫製される刺繍模様のデータを作成する装置である。特に、本実施形態の刺繍データ作成装置1は、クロスステッチを複数個並べて形成される刺繍模様の刺繍データを作成することができる。図1に示すように、刺繍データ作成装置1は、例えば、所謂パーソナルコンピュータ等の汎用型の装置である。図1に例示されている刺繍データ作成装置1は、装置本体10と、装置本体10に接続されたキーボード21、マウス22、ディスプレイ24およびイメージスキャナ装置25を備えている。
次に、刺繍データ作成装置1の電気的構成について説明する。図2に示すように、刺繍データ作成装置1は、刺繍データ作成装置1の制御を司るコントローラであるCPU11を備えている。CPU11には、各種のデータを一時的に記憶するRAM12と、BIOS等を記憶したROM13と、データの受け渡しの仲介を行う入出力(I/O)インタフェイス14とが接続されている。I/Oインタフェイス14には、ハードディスク装置(HDD)15、入力機器であるマウス22、ビデオコントローラ16、キーコントローラ17、CD−ROMドライブ18、メモリカードコネクタ23、およびイメージスキャナ装置25が接続されている。また、図2には図示されていないが、刺繍データ作成装置1は、外部機器やネットワークとの接続のための外部インタフェイスを備えていてもよい。
HDD15は、刺繍データ記憶エリア151およびプログラム記憶エリア152を含む複数の記憶エリアを有する。刺繍データ記憶エリア151には、CPU11が実行する刺繍データ作成プログラムによって作成された刺繍データが記憶される。刺繍データは、刺繍ミシン3で刺繍を行う際に使用されるデータであり、刺繍糸の色を示す情報と、縫目を示す情報(針落ち点の座標および縫い順)が含まれている。プログラム記憶エリア152には、CPU11によって実行される刺繍データ作成プログラムを含む複数のプログラムが記憶されている。なお、刺繍データ作成装置1がHDD15を備えていない専用機である場合は、ROM13に刺繍データ作成プログラムが記憶される。
HDD15には、上記の記憶エリアの他、刺繍データ作成装置1で使用されるその他の情報が記憶される種々の記憶エリアが設けられている。これらの記憶エリアには、例えば、クロスステッチのサイズを設定する際のデフォルト値や、分割領域番号とその分割領域の縫目のベースとなる単位線分を規定する頂点との対応関係等が記憶されている。分割領域および単位線分については後述する。
ビデオコントローラ16には情報を表示するディスプレイ24が接続され、キーコントローラ17には入力機器であるキーボード21が接続されている。CD−ROMドライブ18には、CD−ROM114を挿入することができる。例えば、刺繍データ作成プログラムの導入時には、刺繍データ作成装置1の制御プログラムである刺繍データ作成プログラムを記憶するCD−ROM114がCD−ROMドライブ18に挿入される。そして、刺繍データ作成プログラムがセットアップされ、HDD15のプログラム記憶エリア152に記憶される。また、メモリカードコネクタ23には、メモリカード115を接続して、情報の読み取りや書き込みを行うことができる。
次に、図3を参照して、刺繍データ作成装置1で作成された刺繍データに基づいて刺繍模様を縫製する刺繍ミシン3について、簡単に説明する。
図3に示すように、刺繍ミシン3は、縫製者に対して左右方向に長いミシンベッド30、ミシンベッド30の右端部から上方へ立設された脚柱部36、脚柱部36の上端から左方へ延びるアーム部38、およびアーム部38の左端に連結する頭部39を有する。ミシンベッド30上には、刺繍が施される加工布を保持する刺繍枠41が配置される。そして、Y方向駆動部42および本体ケース43内に収容されたX方向駆動機構(図示せず)が刺繍枠41を装置固有のX・Y座標系で示される所定位置に移動させる。刺繍枠41が移動されるのと合わせて、縫い針44が装着された針棒35及び釜機構(図示せず)が駆動されることにより、加工布上に刺繍模様が形成される。なお、Y方向駆動部42、X方向駆動機構、針棒35等は、刺繍ミシン3に内蔵されたマイクロコンピュータ等から構成される制御装置(図示せず)によって制御される。
刺繍ミシン3の脚柱部36の側面には、メモリカード115を着脱可能なメモリカードスロット37が搭載されている。例えば、刺繍データ作成装置1で作成された刺繍データは、メモリカードコネクタ23を介してメモリカード115に記憶される。そして、メモリカード115がメモリカードスロット37に装着され、記憶された刺繍データが読み出されて、刺繍ミシン3に刺繍データが記憶される。刺繍ミシン3の制御装置(図示せず)は、メモリカード115から供給された刺繍データに基づいて、上記の要素による刺繍模様の縫製動作を制御する。このようにして、刺繍データ作成装置1で作成された刺繍データに基づき、刺繍ミシン3を用いて刺繍模様を縫製することができる。
次に、図4〜図6を参照して、刺繍模様を構成するクロスステッチについて説明する。図4に示すように、完全な形のクロスステッチ3は、互いに中心点でX字状に交差する2本の線分ADおよびBC上に形成された縫目から成る。1つのクロスステッチが占める領域は、2本の線分ADおよびBCのすべての端点A、B、CおよびDを結んでできる矩形領域300である。以下では、1つのクロスステッチが占める矩形領域300を、クロス領域300とする。一般的なクロスステッチは、直交する同一長さの2本の線分上に形成される。この場合、クロス領域300は、正方形である。よって、以下の説明では、クロス領域300は正方形であるものとして説明するが、直交しない2本の線分上にクロスステッチが形成されてもよい。この場合、クロス領域300は縦長または横長の長方形となる。
まず、従来の刺繍データ作成装置により、クロスステッチを用いて刺繍模様が形成される場合を説明する。元の図柄が図9に示すT字形状の領域である場合、図5に示すように、完全な形の同一のクロスステッチを隙間なく並べることにより、図柄が表現される。このようなクロスステッチの配置では、クロス領域300毎に1つの完全な形のクロスステッチを形成するかしないかの2つの選択肢しかなかった。よって、図5に示すように、完成した刺繍模様500の輪郭線501は、点線で表されている元の図柄の輪郭線201から外れてしまう場合がある。また、このようなクロスステッチの配置は、クロス領域300を塗りつぶしてモザイク画を描くのと同等なので、完成した刺繍模様500の輪郭線501は、ギザギザになる。
そこで、本実施形態では、図4に示すように、クロス領域300が、2本の線分ADおよびBCの交点Eを頂点とする矩形に4分割される。その結果得られる4つの矩形領域301、302、303および304には、それぞれ、クロスステッチの縫目のベースとなる2本の線分ADおよびBCのそれぞれの長さの2分の1である、線分AE、BE、CEおよびDEが対角線ad、bc、cb、daとして含まれる。ここで、図4から明らかなように、2本の線分ADおよびBCのそれぞれの線分の終点は、点A,点B,点C,点Dである。以下では、クロス領域300を分割して得られる矩形領域301〜304を、それぞれ分割領域301〜304とし、線分ADおよびBCのそれぞれの長さの2分の1であって、分割領域301〜304の対角線である線分ad、bc、cb、daを、それぞれ単位線分31〜34とする。
本実施形態では、刺繍模様を形成するために、クロス領域300毎に1つの完全なクロスステッチを形成するのではなく、分割領域301〜304毎に、各領域に対応する単位線分31〜34上に縫目を形成する。本実施形態では、この各単位線分31〜34上に形成される縫目を、クオータークロスステッチと呼ぶこととする。各分割領域301〜304毎にクオータークロスステッチを形成するかしないかを決定すると、図6に示すように、クロス領域300全体に形成される縫目のパターンは、何本のクオータークロスステッチが形成されるかにより、5つの場合に分けられる。さらに、クオータークロスステッチが1〜3本の場合には、分割領域301〜304のいずれにクオータークロスステッチを形成するかにより、縫目パターンが異なる。よって、全部で16通りの縫目パターンができることになる。
分割領域毎にクオータークロスステッチを形成するか否かを決定する処理については、後で詳述する。なお、以下では、クロス領域300に形成される完全な形のクロスステッチ、およびクオータークロスステッチ1〜3本の組合せ(図6のクオータークロスステッチの数が1〜3の場合の縫目パターン)のいずれについても、単にクロスステッチと称する。
以下に、図7〜図26を参照して、刺繍データ作成装置1で行われる刺繍データ作成処理について説明する。図7に示す刺繍データ作成のメイン処理は、HDD15のプログラム記憶エリア152に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。
図7に示すように、メイン処理が開始されるとまず、任意の形状を有する閉領域の境界線データが取得され、RAM12の所定の記憶エリアに記憶される(S1)。ここで取得される閉領域は、クロスステッチで形成される刺繍模様の基となる図柄である。以下では、図9に示す、横方向のバーの先端が丸みを帯びたT字形状の領域200が元の図柄である場合を例として説明する。閉領域の境界線は、この図柄の輪郭線201に対応する。閉領域の境界線のデータ(例えば、境界線上の点の座標列データ)は、いかなる方法によって取得してもよい。例えば、イメージスキャナ装置25によって読み取られ、RAM12に記憶された画像に対して、公知の閉領域抽出処理を施すことにより取得してもよい。公知の閉領域抽出処理として、例えば、特開平11−123289号公報に開示されている手法を採用することができる。
また、ディスプレイ24に表示された特定の指示画面において、ユーザに、任意の複数の位置でマウス22をクリックするよう促し、クリック時のポインタの位置を順に繋いだ線分の集合を、閉領域の境界線としてもよい。また、マウス22のポインタの移動軌跡を境界線として、閉領域を形成してもよい。この場合、ポインタの移動軌跡が閉じていない場合には、移動軌跡の始点と終点とを結んで閉領域を形成すればよい。さらに、任意の閉領域の境界線データが、メモリカードコネクタ23または外部インタフェイス(図示せず)を介して、メモリカード115または外部から刺繍データ作成装置1に入力されてもよい。
境界線データが取得されると(S1)、刺繍模様を形成するクロスステッチのサイズが設定される(S2)。クロスステッチのサイズとして、完全な形のクロスステッチを構成する縫目の長さ、すなわち、クロス領域300の対角線の長さが設定されてもよいし、クロス領域300の1辺の長さが設定されてもよい。クロスステッチのサイズは、ユーザによって指定されてもよいし、予め定められ、HDD15の所定の記憶エリアに記憶されているサイズが使用されてもよい。サイズが予め定められている場合は、複数の異なるサイズが用意され、元の図柄である閉領域のサイズに応じていずれかのサイズが選択されてもよい。
本実施形態では、ステップS2において、ディスプレイ24に、サイズ入力欄を有する設定画面が表示され、ユーザによって任意のサイズが入力され、入力されたサイズがクロス領域300の1辺の長さとして設定される。ユーザからの入力がないまま設定画面が閉じられた場合は、デフォルト値(例えば、2.5mm)が、クロス領域300の1辺の長さとして設定される。設定されたサイズの情報は、RAM12の所定の記憶エリアに記憶される。
クロスステッチのサイズが設定されると(S2)、設定されたサイズに基づいて、クロス領域300のサイズ、すなわち、正方形の1辺のサイズが決定される。本実施形態では、ステップS2で設定されたサイズがそのままクロス領域300のサイズである。そして、ステップS1で取得された閉領域を示す座標系に、クロス領域300が連続配置される(S3)。本実施形態では、図10に示すように、T字状の閉領域200を示す座標系において、横方向にx軸、縦方向にy軸が与えられる。x軸では、右方向が正の方向であり、右に進むほど値が大きくなる。y軸では、下方向が正の方向であり、下に進むほど値が大きくなる。原点O(0,0)に正方形であるクロス領域300の頂点の1つが配置され、さらに、クロス領域300が隙間なく連続配置される。そして、各クロス領域300の頂点の座標を示すクロス領域座標テーブル51(図11参照)および各クロス領域300の配置を示すクロス領域配置テーブル52(図12参照)が作成され、RAM12の所定の記憶エリアに記憶される。
図11に示すように、クロス領域座標テーブル51には、例えば、クロス領域番号、頂点、x座標およびy座標の4つの項目が設けられ、これらのデータが対応づけて記憶される。クロス領域番号は、クロス領域300の識別番号である。頂点は、各クロス領域300が有する4つの頂点を識別する記号である。本実施形態では、クロス領域300の4つの頂点のうち、x座標およびy座標の値が最も小さい頂点(図では左上の頂点)が頂点Aとされ、頂点Aと同じy座標を有する頂点が頂点B、頂点Aと同じx座標を有する頂点が頂点C、そして残りが頂点Dとされる。x座標およびy座標は、各頂点A〜Dのx座標およびy座標を示す値である。
なお、クロス領域番号は、閉領域を示す座標系に配置されたクロス領域300すべて(図10の例では11×11=121)にそれぞれ割り当てられる固有の番号である。したがって、図11では図示を省略されているが、クロス領域座標テーブル51には、配置されたすべてのクロス領域300の数に対応する座標データが含まれている。
図12に示すように、クロス領域配置テーブル52は、例えば、列項目をm、行項目をnとするテーブルである。図示は省略されているが、列項目mは、ステップS3で配置されたクロス領域300のx軸方向の数(図10の例では11)だけ設けられ、行項目nは、ステップS3で配置されたクロス領域300のy軸方向の数(図10の例では11)だけ設けられている。そして、mとnで示されるセルに、前述の座標系でその位置にあるクロス領域300のクロス領域番号が記憶されている。
続いて、前述のように連続配置されたクロス領域300を順に処理するためのx方向カウンタおよびy方向カウンタの値mおよびnが、いずれも初期値のゼロ(0)にセットされる(S4)。本実施形態では、クロス領域配置テーブル52において、x方向カウンタの値mとy方向カウンタの値nに対応する位置に記憶されたクロス領域番号を有するクロス領域300が順に処理される。
まず、y方向カウンタの値nが、y軸方向に配置されたクロス領域300の数を示す値であるHeightと等しいか否かが判断される(S6)。図10の例では、Height=11である。最初の処理では、n=0であるから、Heightとは等しくない(S6:NO)。つまり、y軸方向において、未処理のクロス領域300が残っている。そこで、x方向カウンタの値mが、x軸方向に配置されたクロス領域300の数を示す値であるWidthと等しいか否かが判断される(S7)。図10の例では、Width=11である。最初の処理では、m=0であるから、Widthとは等しくない(S7:NO)。つまり、x軸方向において、未処理のクロス領域300が残っている。そこで、処理対象のクロス領域300に含まれる分割領域301〜304の各々について、クオータークロスステッチを形成するか否かを順に決定する、縫目判断処理が行われる(S10)。
図8を参照して、縫目判断処理の詳細について説明する。まず、処理対象のクロス領域300の座標データが、クロス領域座標テーブル51から読み出される(S100)。最初の処理では、カウンタ値mおよびnはいずれも0なので、クロス領域配置テーブル52を参照して、クロス領域番号が0のクロス領域300が、処理対象として特定される。よって、クロス領域番号0に対応する頂点A〜Dの座標データが、クロス領域座標テーブル51から読み出される。
続いて、クロス領域300が4分割され、分割領域301〜304とされる(S101)。具体的には、読み出されたクロス領域300の頂点A〜Dの座標に基づき、分割領域301〜304の4つの頂点a〜dの座標が求められる。そして、分割領域テーブル53(図13参照)が作成され、RAM12の所定の記憶エリアに記憶される。
図13に示すように、分割領域テーブル53には、例えば、クロス領域番号、分割領域番号、頂点、x座標、y座標、および縫目フラグの6つの項目が設けられ、これらのデータが対応づけて記憶される。クロス領域番号として、処理対象のクロス領域300の識別番号が記憶される。分割領域番号は、分割領域301〜304のそれぞれに与えられる識別番号である。本実施形態では、分割領域301、302、303、304にはそれぞれ、0、1、2、3の識別番号が与えられるものとする。
頂点は、各分割領域301〜304が有する4つの頂点を識別する記号である。本実施形態では、図4に示すように、各分割領域301〜304の4つの頂点のうち、x座標およびy座標の値が最も小さい頂点(図では左上の頂点)が頂点aとされ、頂点aと同じy座標を有する頂点(図では右上の頂点)が頂点b、頂点aと同じx座標を有する頂点(図では左下の頂点)が頂点c、そして残り(図では右下の頂点)が頂点dとされる。x座標およびy座標は、各頂点a〜dのx座標およびy座標である。
縫目フラグは、各分割領域にクオータークロスステッチを形成するか否かをONまたはOFFで示す情報である。分割領域テーブル53が作成される際に記憶されるフラグの初期値はOFFである。なお、本実施形態では、クロス領域300が1つずつ処理されるので、分割領域テーブル53には、その都度、各クロス領域300に対応する4つの分割領域301〜304のデータが追加されていくことになる。
処理対象のクロス領域300が4つの分割領域301〜304に分割され、分割領域テーブル53が作成されると(S101)、作成された分割領域301〜304を順に処理するための分割領域カウンタの値iがゼロ(0)にセットされる(S102)。続いて、カウンタ値iが、処理される分割領域301〜304の総数である4に等しいか否かが判断される(S103)。最初の処理では、i=0であるから、4とは等しくない(S103:NO)。つまり、まだ処理されていない分割領域がある。そこで、分割領域テーブル53から処理対象の分割領域の座標データが取得され、分割領域において閉領域の占める割合である閉領域占有率が算出される。本実施形態では、閉領域占有率の算出に、面積が利用される。
まず、分割領域における閉領域の占有面積が算出される(S104)。分割領域における閉領域の占有面積は、例えば、以下の方法で求めることができる。前述のように、分割領域の4つの頂点a〜dの座標は分割領域テーブル53に記憶されており、また、閉領域の境界線データはメイン処理のステップS1(図7参照)で取得され、RAM12に記憶されている。よって、これらを基に、分割領域の境界線と閉領域の境界線との交点を求め、分割領域内の閉領域の境界線の座標を求めることができる。分割領域内の閉領域として、多角形が得られたとすると、この多角形の面積Sは、以下のように求めることができる。
まず、多角形(n角形)の面の中に原点をとる。すると、多角形は面内の原点を頂点としたn個の三角形に分割できる。一般に、三角形の頂点のひとつを原点とし、直交座標系を導入して他の2点を(x
1,y
1)、(x
2,y
2)で表した場合、三角形の面積sは以下の式で求めることができる。
よって、多角形の面積Sは、以下の式に示すように、分割したn個の三角形の面積を合計することにより、求めることができる。
なお、分割領域内の閉領域の境界線が曲線を含む場合には、三角形の分割を細かくすることで対応すればよい。また、分割領域における閉領域の占有面積は、上記の方法以外に、例えば、平面のグリーンの定理を用いて求めてもよい。
分割領域における閉領域の占有面積が求められたら(S104)、閉領域占有率が算出される(S105)。メイン処理のステップS2で設定されたクロス領域300の1辺の長さに基づいて算出されるクロス領域300の面積を4で割ることにより、分割領域の面積が算出できる。よって、分割領域における閉領域の占有面積を分割領域の面積で割ることにより、閉領域の占有率が算出される。
図8に示す縫目判断処理では、処理対象の分割領域における閉領域占有率が算出された後(S105)、閉領域占有率が50%以上であるか否かが判断される(S106)。閉領域占有率が50%以上の場合には(S106:YES)、分割領域テーブル53において、処理対象の分割領域の縫目フラグが、初期値のOFFからONに変更される(S107)。つまり、この処理対象の分割領域の単位線分に対応するクオータークロスステッチを形成することが決定される。そして、分割領域カウンタの値iに1が加算された後(S109)、処理はステップS103に戻る。
なお、図4に示すように、各分割領域301〜304の単位線分31〜34は、所定の方向の対角線である。具体的には、分割領域301および304の単位線分31および34は、左上の頂点aと右下の頂点dを結ぶ対角線である。一方、分割領域302および303の単位線分32および33は、右上の頂点bと左下の頂点cとを結ぶ対角線である。よって、分割領域番号0〜3と、各分割領域の単位線分を規定する頂点との対応関係を予めHDD15の所定の記憶エリアに記憶しておけば、分割領域のどの頂点を結ぶクオータークロスステッチを形成するかを特定することができる。
一方、処理対象の分割領域における閉領域占有率が50%未満の場合には(S106:NO)、処理対象の分割領域の縫目フラグは初期値のOFFとされたまま(S108)、処理はステップS109に移行する。つまり、閉領域占有率が50%未満の場合は、この処理対象の分割領域の単位線分に対応するクオータークロスステッチを形成しないことが決定される。そして、分割領域カウンタの値iに1が加算された後(S109)、処理はステップS103に戻る。
2巡目の処理では、分割領域カウンタの値iは1であるため(S103:NO)、分割領域カウンタの値i=1に対応する分割領域302が処理対象とされて座標データが読み出され、閉領域占有率が算出される(S105)。そして、算出された閉領域占有率に応じて、分割領域302にクオータークロスステッチを形成するか否かが決定される(S107またはS108)。同様にして、3巡目、4巡目の処理で、分割領域303および304についても、クオータークロスステッチを形成するか否かが決定される。4巡目で分割領域304の処理が終了した後、分割領域カウンタの値iに1が加算され、4となる(S109)。すると、カウンタ値iが4に等しいと判断されて(S103:YES)、図8に示す縫目判断処理は終了する。
図7に示すメイン処理では、前述の縫目判断処理が終了すると(S10)、x方向カウンタの値mに1が加算されてm=1とされる(S12)。その後、処理はステップS6に戻り、2巡目の処理が行われる。y方向カウンタの値nがHeightと等しくなったか否かが判断されるが、n=0であるため、y軸方向にはまだ未処理のクロス領域300があると判断される(S6:NO)。さらに、x方向カウンタの値mがWidthと等しくなったかが判断される(S7)。m=1であるため、x軸方向にはまだ未処理のクロス領域300があると判断される(S7:NO)。
そこで、クロス領域配置テーブル52が参照され、x方向ウンタの値m=1とy方向カウンタの値n=0に対応して記憶されているクロス領域番号が特定される。そして、クロス領域番号1を有するクロス領域300の各分割領域301〜304について、クオータークロスステッチを形成するか否かを決定する縫目判断処理が行われる(S10)。x方向ウンタの値m=1はWidthに等しくないため、m=2とされて(S12)、同様に、3巡目以降の処理が繰り返される。
11巡目の処理で、x軸方向の右端に位置するクロス領域300の縫目判断処理が終了すると(S10)、x方向カウンタの値mに1が加算されて11となる。すると、y方向カウンタの値nはまだゼロであり、Height(=11)には達しないが(S6:NO)、x方向カウンタの値mは11であるから、Widthと等しいと判断される(S7:YES)。この場合、x軸方向に並ぶクロス領域300の1行分の処理が終了したことを意味するので、次の行のクロス領域300の処理に移行するために、y方向カウンタの値nに1が加算されて1とされ、x方向カウンタの値nは初期値の0にリセットされる(S13)。
同様にして、x軸に沿って右方向(正の方向)にクロス領域300の処理が順に行われ、その行の処理が終わると、y軸に沿って下方向(正の方向)にある次の行に移行する処理が繰り返される。そして、11行目の処理が終わると、ステップS13で、y方向カウンタの値nが11とされる。よって、続くステップS6では、カウンタ値n=11であると判断される(S6:YES)。この場合、閉領域の座標系に配置されたすべてのクロス領域300について、その分割領域301〜304毎に、クオータークロスステッチを形成するか否かが決定され、刺繍模様を構成するクロスステッチの配置が決定されたことになる。
例えば、図9の閉領域200を元の図柄として前述の処理が行われた場合、各クロス領域300には、図14に示すようにクロスステッチの配置が決定される。図5に示す従来の手法によるクロスステッチの配置と比較すると、閉領域200の境界線201に近い領域R1、R2およびR3において、両者の相違は顕著である。
従来の手法によれば、1つのクロスステッチ領域300に完全なクロスステッチを形成するかしないかの選択肢しかないため、領域R1では、閉領域が存在しない部分があるにもかかわらず、領域全体がクロスステッチで埋められてしまう。一方、本実施形態の縫目判断処理によれば、図15に示すように、領域R1に含まれるクロス領域300の分割領域301、302および303は、閉領域占有率が50%以上であるため(S106:YES)、縫目フラグがONとされる(S107)。一方、分割領域304については、縫目判断処理において、閉領域占有率が50%未満であるため(S106:NO)、縫目フラグがOFFとされる(S108)。その結果、領域R1では、閉領域と重なる部分において、3本のクオータークロスステッチが形成されることになる。
また、従来の手法によれば、図5に示すように、領域R2や領域R3では、輪郭線201で囲まれる閉領域が一部に存在するにもかかわらず、クロスステッチはまったく形成されない。一方、本実施形態の手法によれば、図14に示すように、領域R2では、閉領域と重なる部分に1本のクオータークロスステッチが形成されることになる。また、領域R3の各クロスステッチ領域300では、閉領域と重なる部分にそれぞれ2本のクオータークロスステッチが形成されることになる。
このように、クロス領域300の境界線と、閉領域の境界線201とが離れている場合(領域R3)や、クロス領域300の境界線の伸びる方向と、閉領域の境界線201の伸びる方向とが異なる場合(領域R1、R2)でも、本実施形態の手法によれば、元の図柄の外形(閉領域の境界線201)をクロスステッチで忠実に表現することが可能となる。
図7に示すメイン処理では、刺繍模様を構成するクロスステッチの配置が決定された後、刺繍ミシン3で刺繍模様を縫製するための刺繍データが作成され(S15)、メイン処理は終了する。
以下に、図16〜図26を参照して、ステップS15で行われる刺繍データの作成処理について、具体的に説明する。前述したように、刺繍データには、刺繍糸の色を示す情報と、刺繍模様の縫目を形成するための針落ち点および縫い順を示す情報とが含まれる。より具体的には、刺繍データは、刺繍糸の色毎に、その色の糸で形成される縫目の針落ち点および縫い順を示すものである。以下では、説明を簡単にするため、1色の刺繍糸で形成される刺繍模様を例として、針落ち点および縫い順を示す縫目データの作成について説明する。
前述したように、縫目判断処理(図8参照)において、すべてのクロス領域300について、その分割領域301〜304毎に、頂点の座標が求められ、クオータークロスステッチを形成するか否かが決定されている。そして、前述したように、分割領域301〜304にクオータークロスステッチが形成される場合、分割領域301〜304のどの頂点を結ぶ単位線分に縫目が形成されるかが、予めHDD15に記憶されている。したがって、これらの情報に基づいて、針落ち点の座標および縫い順が決定される。
まず、図16〜図19を参照して、本実施形態においてクロスステッチ領域300に形成されるクロスステッチの代表的な縫目パターンの針落ち点と縫い順について、説明する。基本的に、クロスステッチの縫目は、同一線分上が2度縫製され、縫い始めの位置と縫い終わりの位置が一致するように、針落ち点と縫い順が決定される。例えば、クロス領域300の分割領域301〜304のすべてにクオータークロスステッチが形成されると決定されており、完全なクロスステッチが形成される場合には、図16に示すように、基本的な針落ち点と縫い順が定められている。なお、以下の説明で用いられる図中の数字は、縫い順を表している。
具体的には、クロス領域300の左上の頂点(x座標、y座標の値が最も小さい頂点)Aが縫い始め点および縫い終わり点の場合、最初の針落ち点は、縫い始め点である頂点Aである。次の針落ち点は、クロス領域300の中心点Eであり、分割領域301の単位線分AE上に最初に縫目が形成されることになる。次の針落ち点は、右上の頂点Bであり、分割領域302の単位線分EBが縫製される。次の針落ち点は、左下の頂点Cであり、分割領域302の単位線分BEおよび分割領域303の単位線分EC、つまりクロス領域300の対角線である線分BCが1針で縫製される。
次の針落ち点は、中心点Eであり、分割領域303の単位線分CEが縫製される。次の針落ち点は、右下の頂点Dであり、分割領域304の単位線分EDが縫製される。最後の針落ち点、つまり縫い終わり点は、最初の針落ち点と同じ左上の頂点Aであり、分割領域304の単位線分DEおよび分割領域301の単位線分EA、つまりクロス領域300の対角線である線分DAが1針で縫製される。
同様に、クロス領域300の分割領域301〜304の1つだけにクオータークロスステッチが形成されると決定されている場合には、例えば、図17に示すように、針落ち点と縫い順が定められている。クロス領域300の分割領域301〜304のうち2つにクオータークロスステッチが形成されると決定されている場合には、例えば、図18に示すように、針落ち点と縫い順が定められている。クロス領域300の分割領域301〜304のうち3つにクオータークロスステッチが形成されると決定されている場合には、例えば、図19に示すように、針落ち点と縫い順が定められている。
次に、図14、および図20〜図26を参照して、連続するクロスステッチの針落ち点および縫い順の求め方について説明する。図14に示すように、クロス領域300は閉領域に対して隙間なく配置されているので、刺繍模様を構成するクロスステッチの縫目は、隣り合うクロス領域300間で連続して形成されることになる。このような場合、例えば、以下のようにして、針落ち点と縫い順が決定される。
まず、クオータークロスステッチが形成されると決定された分割領域を含む、最も左上にあるクロス領域300が、縫い始めのクロス領域300とされる。縫い始めのクロス領域300において、左上の頂点Aが縫い始め点とされ、最初の針落ち点に決定される。そして、連続するクロス領域300の間の縫い順を表現する木構造が作成される。この際、図20に示すように、注目するクロス領域300を中心として、周囲に隣接するクロス領域300との接続点が探索される。探索の順番は、図20に数字で示すように、右隣のクロス領域300から時計回りである。また、隣接するクロス領域との接続点とされる優先順位は、中心とされたクロス領域300の左上の頂点、右上の頂点、左下の頂点、右下の頂点の順である。
図14の領域R4に形成される縫目のパターンを例として、その針落ち点と縫い順の決定方法について、図21〜図23を参照して説明する。まず、最も左上のクロス領域C1の左上の頂点が、縫い始め点(SP)および縫い終わり点(EP)として決定される。そして、隣接するクロス領域との間の接続点が、右隣のクロス領域から順に、時計回りに探索される。クロス領域C1は、右隣にあるクロス領域C2と点P1で接続している。次に、クロス領域C2を中心として、同じように接続点が探索される。クロス領域C2は、右隣にあるクロス領域C3と点P2で接続している。さらに、クロス領域C3は、右隣にあるクロス領域C4と点P3で接続している。
次にクロス領域C4の接続点が探索されるが、右隣に連続してクロスステッチが形成される領域がない。時計回りで次の位置である右下側(図20の2の位置)、そしてその次の位置(図20の3の位置)にも、クロスステッチが形成される領域がない。よって、さらに時計回りで次の位置(図20の4の位置)にあるクロス領域C7との接続点が探索され、点P4が発見される。このようにして、順に接続点を求めていくと、クロス領域C1〜C7の木構造は、図22のように表すことができる。よって、クロス領域C1〜C7の縫い順は、C1、C2、C3、C4、C7、C6、C5、C6、C7、C4、C3、C2、C1という順番になる。
したがって、前述したように、クロス領域内に形成されるクオータークロスステッチの数に応じて予め定められた基本的な針落ち点と縫い順に従って、図23に示すように、縫い始め点SPから、接続点P1〜P6を経由しながら、C1、C2、C2、C4、C7、C6、C5、C6、C7、C4、C3、C2、C1を辿って縫い終わり点EPに戻る縫目の針落ち点および縫い順が決定される。
図24〜図26を参照して、別の縫目パターンの例における針落ち点および縫い順の決定方法について説明する。図24に示す縫目パターンでは、クロス領域C1の左上の頂点を縫い始め点SPおよび縫い終わり点EPとして、木構造が作成される。まず、右隣のクロス領域C2との間の接続点が探索されるが、接続点はない。そこで、時計回りで次の位置にあるクロス領域C4との接続点が探索され、点P1が発見される。次に、クロス領域C4を中心として、接続点が探索される。すると、クロス領域C4は、クロス領域C3およびC2と、それぞれ点P3およびP2で接続している。よって、この例では、クロス領域C1〜C4の木構造は、図25に示すように、クロス領域C4でC2とC3とに分岐するものとなる。
この場合、クロス領域C1〜C4の縫い順は、まずC1、C4、C3で一部の縫目が形成され、その後、一旦C4を経由してC2の縫目が形成された後、C4からC1に戻る順番となる。全体としては、クロス領域内に形成されるクオータークロスステッチの数に応じて予め定められた基本的な針落ち点と縫い順に従って、図26に示すように、C1の縫い始め点SPから、C1、C4、C3、C4、C2、C4、C1を辿ってC1の縫い終わり点EPに戻る縫目の針落ち点および縫い順が決定される。
以上のようにして、縫目判断処理で決定されたクロスステッチの配置に基づいて、刺繍データを作成することができる。なお、複数の色の刺繍糸で刺繍模様が縫製される場合には、縫目が形成されると決定された単位線分毎に色を決定し、同じ色の単位線分群について、前述したように針落ち点と縫い順を決定すればよい。
刺繍データ作成装置1で作成された刺繍データは、メモリカードコネクタ23を介してメモリカード115に記憶される。そして、メモリカード115がメモリカードスロット37に装着され、刺繍ミシン3に刺繍データが供給されると、メモリカード115から供給された刺繍データに基づいて、針棒35等の動作が制御され、クロスステッチによる刺繍模様が縫製される。
以上に説明したように、本実施形態の刺繍データ作成装置1によれば、クロスステッチの縫目のベースとなる2本の線分を対角線とするクロス領域300が閉領域の全体に連続配置される。さらに、各クロス領域300が4分割されて、各々が単位線分31〜34を含む分割領域301〜304とされる。そして、各分割領域301〜304の単位線分上に縫目(クオータークロスステッチ)を形成するか否かが決定される。つまり、閉領域の全体に分割領域が連続配置され、各分割領域について、縫目を形成するか否かの判断が行われる。すべてのクロス領域300の分割領域301〜304について、縫目を形成するか否かが決定されると、縫目を形成すると決定された単位線分の端点の座標データに基づいて、針落ち点と縫い順を示す刺繍データが作成される。
このように、X字状の完全な形のクロスステッチ1つずつではなく、完全な形のクロスステッチの4分の1ずつ、縫目を形成するか否かが決定される。したがって、形成される刺繍模様の輪郭線のギザギザが低減され、元の図柄の外形を忠実に表現する刺繍データを作成することができる。
本実施形態では、図7のステップS1で閉領域の境界線データを取得する処理を行うCPU11が、本発明の「境界線取得手段」に相当する。図7のステップS3および図8のステップS101において、閉領域を示す座標系に、「第1単位領域」に相当するクロス領域300を配置し、クロス領域を「第2単位領域」に相当する分割領域301〜304に分割する処理を行うCPU11が、「単位領域配置手段」に相当する。図8のステップS104〜105において、分割領域における閉領域の占有率を算出するCPU11が、「占有率算出手段」に相当する。このうち、ステップS104の処理を行うCPU11が、「面積算出手段」に相当し、ステップS105の処理を行うCPU11が、「面積率算出手段」に相当する。
以下に、図27〜図32を参照して、刺繍データ作成装置1で行われるメイン処理の別の実施形態について説明する。図27に示す刺繍データ作成のメイン処理は、HDD15のプログラム記憶エリア152に記憶された刺繍データ作成プログラムに従って、CPU11が実行する。
図27に示すメイン処理が開始されると、まず、閉領域の境界線データが取得され(S21)、クロスステッチのサイズが設定される(S22)。この処理は、前述の実施形態と同様であるため、説明は省略する(図7のステップS1、S2参照)。続いて、閉領域を示す座標系に、分割領域500が連続配置される(S23)。前述の実施形態では、この段階で一旦クロス領域300が連続配置され、後に、クロス領域300が1つずつ処理されて4つの分割領域301〜304に分割されることにより、閉領域全体に分割領域が連続配置される。一方、本実施形態では、この段階で、図28に示すように、分割領域500のサイズが決定され、分割領域500が一括して連続配置される。
具体的には、ステップS22で設定されたクロスステッチのサイズに基づいて、正方形であるクロス領域300の1辺の長さが決定され、その2分の1の長さが、正方形である分割領域500の1辺の長さとされる。そして、原点O(0,0)に分割領域500の頂点の1つが配置され、さらに、分割領域500が隙間なく連続配置される。そして、分割領域テーブル61(図29参照)および分割領域配置テーブル62(図30参照)が作成され、RAM12の所定の記憶エリアに記憶される。
図29に示すように、本実施形態で作成される分割領域テーブル61は、前述の実施形態で作成される分割領域テーブル53(図13参照)と同様であるが、クロス領域番号の項目がなく、縫目フラグの項目が2種類(縫目フラグ1および2)ある点が異なっている。クロス領域番号がないのは、前述したように、本実施形態では、最初から分割領域500のみが閉領域を示す座標系に配置されるからである。また、縫目フラグが2種類あるのは、分割領域500の単位線分の方向、すなわち、左上の頂点と右下の頂点を結ぶ対角線であるのか、右上の頂点と左下の頂点を結ぶ対角線であるのかを識別するためである。ステップS23で分割領域テーブル61が作成される際の縫目フラグ1および2の初期値はOFFである。
また、図30に示すように、本実施形態で作成される分割領域配置テーブル62は、前述の実施形態で作成されるクロス領域配置テーブル52(図12参照)と同様である。つまり、分割領域配置テーブル62は、例えば、列項目をi、行項目をjとする、分割領域500の配置を示すテーブルである。図示は省略されているが、列項目iは、ステップS23で配置された分割領域500のx軸方向の数(図28の例では22)だけ設けられ、行項目jは、ステップS23で配置された分割領域500のy軸方向の数(図28の例では22)だけ設けられている。そして、iとjで示されるセルに、その位置にある分割領域500の分割領域番号が記憶されている。
図27のメイン処理では、続いて、連続配置された分割領域500を順に処理するためのx方向カウンタおよびy方向カウンタの値iおよびjが、いずれも初期値のゼロ(0)にセットされる(S24)。続いて、y方向カウンタの値jが、y軸方向に配置された分割領域500の数を示す値であるHeightと等しいか否かが判断される(S26)。図28の例では、Height=22である。最初の処理では、j=0であるから、Heightとは等しくない(S26:NO)。つまり、y軸方向において、未処理の分割領域500が残っている。そこで、x方向カウンタの値iが、x軸方向に配置された分割領域500の数を示す値であるWidthと等しいか否かが判断される(S27)。図28の例では、Width=22である。最初の処理では、i=0であるから、Widthとは等しくない(S27:NO)。つまり、x軸方向において、未処理の分割領域500が残っている。
そこで、分割領域テーブル61から処理対象の分割領域の座標データが取得される。最初の処理では、カウンタ値iおよびjはいずれも0なので、分割領域配置テーブル62を参照して、分割領域番号が0の分割領域500が、処理対象として特定される。よって、分割領域番号0に対応する分割領域500の頂点a〜dの座標データが、分割領域テーブル61から読み出される。
続いて、分割領域において閉領域の占める割合である閉領域占有率が算出される。本実施形態では、閉領域占有率の算出に、分割領域の単位線分のうち、閉領域と重なっている部分の長さ(以下、重なり長さという)の割合が利用される。
まず、単位線分の重なり長さが算出される(S28)。分割領域500の単位線分は、所定の方向の対角線である。具体的には、原点O(0,0)に左上の頂点が位置する分割領域500では、左上の頂点aと右下の頂点dを結ぶ対角線が単位線分となる。その右隣の分割領域500では、右上の頂点bと左下の頂点cを結ぶ対角線が単位線分となる。さらに、原点O(0,0)に左上の頂点が位置する分割領域500の下に隣接する分割領域500では、右上の頂点bと左下の頂点cを結ぶ対角線が単位線分となる。その右隣の分割領域500では、左上の頂点aと右下の頂点dを結ぶ対角線が単位線分となる。
つまり、分割領域500の配置の規則性から、xカウンタiの値とy方向カウンタjの値の差が奇数か偶数かによって、単位線分の方向は上記の2種類のいずれかに決まる。よって、処理対象の分割領域配置テーブル62を参照すれば、処理対象の単位線分を規定する頂点がわかる。したがって、分割領域テーブル61に記憶されている分割領域の頂点の座標と、閉領域の境界線の座標とに基づき、処理対象の分割領域における単位線分と閉領域の境界線との交点の座標を求めることができる。そして、求められた交点の座標から、処理対象の分割領域500における単位線分の重なり長さを求めることができる。
単位線分の重なり長さが求められたら(S28)、閉領域占有率が算出される(S29)。具体的には、メイン処理のステップS22で設定された分割領域500の1辺の長さに基づいて、単位線分の長さが算出される。そして、分割領域における単位線分の重なり長さを単位線分の長さで割ることにより、閉領域の占有率が算出される。
続いて、算出された閉領域占有率が、50%以上であるか否かが判断される(S31)。50%以上であると判断された場合は(S31:YES)、単位線分上にクオータークロスステッチが形成されることになる。そこで、どの方向の縫目が形成されるかを決定するために、xカウンタiの値とy方向カウンタjの値の差が偶数か否かが判断される(S32)。例えば、最初の処理では、i=0,j=0であるから、差は偶数である(S32:YES)。この場合、縫目フラグ1がONとされ、左上の頂点aと右下の頂点dを結ぶ対角線を単位線分として縫目が形成されることが決定される(S33)。
一方、xカウンタiの値とy方向カウンタjの値の差が奇数の場合には(S32:NO)、縫目フラグ2がONとされ、右上の頂点bと左下の頂点cを結ぶ対角線を単位線分として縫目が形成されることが決定される(S34)。また、閉領域占有率が50%未満の場合は(S31:NO)、縫目フラグ1および2はいずれもOFFとされたままとされ、この分割領域500には縫目が形成されないと決定される(S35)。
なお、閉領域占有率を、前述の実施形態のように閉領域の占有面積に基づいて算出するか、本実施形態のように単位線分の重なり長さに基づいて算出するかによって、縫目を形成するか否かの決定が異なる場合がある。この点について、図31および図32を参照して説明する。例えば、図31に示すように、分割領域500において、閉領域(斜線部分)の占有面積は大きいが、単位線分adに占める重なり長さ(太線部)は短い場合がある。このような場合、占有面積に基づく閉領域占有率によれば、分割領域500の単位線分ad上にクオータークロスステッチを形成すると決定され、重なり長さに基づく閉領域占有率によれば、形成しないと決定されることになる。
一方、図32に示すように、分割領域500において、閉領域(斜線部分)の占有面積は小さいが、単位線分adに占める重なり長さ(太線部)は長い場合がある。このような場合、占有面積に基づく閉領域占有率によれば、分割領域500の単位線分ad上にクオータークロスステッチを形成しないと決定され、重なり長さに基づく閉領域占有率によれば、形成すると決定されることになる。
これらの例から、閉領域占有率を閉領域の占有面積に基づいて算出する場合には、分割領域全体に対する閉領域の広がりを反映したクオータークロスステッチを形成することができ、閉領域占有率を単位線分の重なり長さに基づいて算出する場合、単位線分と閉領域の形状との合致度合いを反映したクオータークロスステッチを形成することができるといえる。なお、いずれの場合も、公知の算出方法を用いて簡便に面積や長さを算出することができるので、分割領域の各々にクオータークロスステッチを形成するか否かを効率よく決定することができる。
図27のメイン処理では、ステップS33、S34またはS35で前述のように縫目を形成するか否かが決定されると、x方向カウンタの値iに1が加算され(S36)、処理はステップS26に戻る。同様の処理が繰り返され、22巡目の処理で、x軸方向に同じ列に並ぶ分割領域500の処理がすべて終了すると、ステップS36でi=22となる。よって、その後のステップS26の処理において、カウンタ値iがWidthに等しいと判断される(S27:YES)。この場合、x軸方向に並分割領域500の1列分の処理が終了したことを意味するので、次の列の分割領域500の処理に移行するために、y方向カウンタの値jに1が加算されて1とされ、x方向カウンタの値iは初期値の0にリセットされる(S38)。
同様にして、x軸に沿って右方向(正の方向)に分割領域500の処理が順に行われ、その行の処理が終わると、y軸に沿って下方向(正の方向)にある次の行に移行する処理が繰り返される。そして、22行目の処理が終わると、ステップS38で、y方向カウンタの値jが22とされる。よって、続くステップS26では、カウンタ値j=Heightであると判断される(S26:YES)。この場合、閉領域の座標系に配置されたすべての分割領域500について、クオータークロスステッチを形成するか否かが決定され、刺繍模様を構成するクロスステッチの配置が決定されたことになる。したがって、刺繍データ作成処理が行われ(S40)、メイン処理は終了する。本実施形態では、4つの分割領域500が前述の実施形態の1つのクロス領域300に相当するので、4つの分割領域500毎にグループ化し、前述の実施形態と同様に刺繍データを作成すればよい。
なお、本実施形態の刺繍データ作成装置1のメイン処理でも、図9の閉領域200を元の図柄として前述の処理が行われた場合、図14のようにクロスステッチの配置が決定されるのは、前述の実施形態と同じである。
以上に説明したように、本実施形態の刺繍データ作成装置1によれば、クロスステッチの縫目のベースとなる2本の線分を対角線とするクロス領域300の4分の1であり、各々が単位線分を含む分割領域500が、閉領域全体に連続配置される。そして、各分割領域500の単位線分上に縫目(クオータークロスステッチ)を形成するか否かが決定される。すべての分割領域500について、縫目を形成するか否かが決定されると、縫目を形成すると決定された単位線分の端点の座標データに基づいて、針落ち点と縫い順を示す刺繍データが作成される。
このように、本実施形態でも、X字状の完全な形のクロスステッチ1つずつではなく、完全な形のクロスステッチの4分の1ずつ、縫目を形成するか否かが決定される。したがって、形成される刺繍模様の輪郭線のギザギザが低減され、元の図柄の外形を忠実に表現する刺繍データを作成することができる。
本実施形態では、図27のステップS21で閉領域の境界線データを取得する処理を行うCPU11が、本発明の「境界線取得手段」に相当する。図27のステップS23において、閉領域を示す座標系に分割領域500を連続配置する処理を行うCPU11が、「単位領域配置手段」に相当する。図27のステップS28〜29において、分割領域における閉領域の占有率を算出するCPU11が、「占有率算出手段」に相当する。このうち、ステップS28の処理を行うCPU11が、「重なり算出手段」に相当し、ステップS29の処理を行うCPU11が、「重なり率算出手段」に相当する。
なお、本発明の刺繍データ作成装置は、前述の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、実施の形態では、パーソナルコンピュータを刺繍データ作成装置1として採用しているが、刺繍データ作成プログラムを刺繍ミシン3に記憶させ、刺繍ミシン3において刺繍データを作成してもよい。このとき、閉領域の境界線データは、メモリカード115を介して外部から入力されてもよいし、刺繍ミシン3に内蔵された刺繍模様の輪郭線のデータを利用してもよい。
また、前述の実施形態では、各分割領域における閉領域占有率は、閉領域の境界線の座標列データに基づいて求められている。しかしながら、刺繍データ作成装置1に閉領域の画像データが記憶されている場合には、閉領域占有率は、各分割領域内の閉領域にある画素の数に基づいて求められてもよい。また、閉領域占有率に基づいて分割領域に縫目を形成するか否かを決定する場合、面積に基づく占有率と、重なり長さに基づく占有率とを併用することも可能である。この場合、例えば、面積に基づく占有率および重なり長さに基づく占有率が50%以上の場合に、その分割領域に縫目を形成すると決定すればよい。また、占有率の50%というしきい値についても適宜設定すればよい。