JP2003051020A - Method and device for approximating curve and curve approximation program to be used therefor - Google Patents
Method and device for approximating curve and curve approximation program to be used thereforInfo
- Publication number
- JP2003051020A JP2003051020A JP2001237542A JP2001237542A JP2003051020A JP 2003051020 A JP2003051020 A JP 2003051020A JP 2001237542 A JP2001237542 A JP 2001237542A JP 2001237542 A JP2001237542 A JP 2001237542A JP 2003051020 A JP2003051020 A JP 2003051020A
- Authority
- JP
- Japan
- Prior art keywords
- point
- points
- interpolation
- sequence
- processing target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Complex Calculations (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、複数の点からなる
点列によって表される形状を、該点列を通過する曲線と
して近似する、曲線近似方法及び曲線近似装置と、それ
に用いる曲線近似プログラムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a curve approximating method and a curve approximating apparatus for approximating a shape represented by a series of points as a curve passing through the series of points, and a curve approximating program used therefor. Regarding
【0002】[0002]
【従来の技術】コンピュータグラフィクスにおいて図形
を表現するために、自然スプライン曲線やB−スプライ
ン曲線やNURBS(Non-Uniform Rational B-Splines)
などの、複数の座標点から得られる区分多項式によって
表現される曲線が利用されている。これらの曲線につい
ては、例えば「コンピュータディスプレイによる形状処
理工学」(山口富士夫著、日刊工業新聞社刊)や「Comp
uter Graphics Principles and Practice」(Foly, van
Dam, Feiner, and Hughes著、Addison Wesley社刊)な
どに詳細が記述されている。2. Description of the Related Art Natural spline curves, B-spline curves and NURBS (Non-Uniform Rational B-Splines) are used to represent figures in computer graphics.
A curve represented by a piecewise polynomial obtained from a plurality of coordinate points is used. Regarding these curves, for example, “Shape processing engineering by computer display” (written by Fujio Yamaguchi, published by Nikkan Kogyo Shimbun) or “Comp.
uter Graphics Principles and Practice "(Foly, van
Details are described in Dam, Feiner, and Hughes, Addison Wesley).
【0003】また、特開平3−129485号公報に
は、直線ショートベクトル列の各直線ショートベクトル
の接続点の接続状態を求め、この各接続点の接続状態を
もとに曲線部分と直線部分とに切り分けて曲線を当ては
める技術が開示されている。Further, in Japanese Patent Laid-Open No. 3-129485, the connection state of the connection points of each straight short vector of the straight short vector sequence is obtained, and the curved portion and the straight line portion are formed based on the connection state of each connection point. There is disclosed a technique in which the curve is divided and divided into.
【0004】[0004]
【発明が解決しようとする課題】ところで、上述のよう
な区分多項式によって表現される曲線を用いて一般的な
図形を表す場合には、図形を作画する段階から曲線を組
み合わせて作画するか、作画された図形に対して曲線を
当てはめることが行われる。By the way, in the case of expressing a general figure using a curve expressed by the above-described piecewise polynomial, the curve is combined or drawn from the step of drawing the figure. A curve is fitted to the drawn figure.
【0005】しかしながら、前者の、図形を作画する段
階で曲線を組み合わせて作画する方法では、作画した後
に図形を編集して変形させる過程で、曲線の組み合わせ
が不適切になることがある。However, in the former method of drawing by combining curves at the stage of drawing a figure, the combination of curves may become inappropriate in the process of editing and deforming the figure after drawing.
【0006】例えば図19(a)の状態から、図形上の点
1001を移動させると共に点1001を角点に変更して、図1
9(b)の状態に変形させるとする。For example, from the state of FIG.
Move 1001 and change point 1001 to a corner point.
It is assumed that the state of 9 (b) is changed.
【0007】ここで、図形を表現するために3次ベジェ
曲線を用いているとする。図19(a)の図形は一つの3
次ベジェ曲線で表現することができるが、変型後の図1
9(b)の図形は一つの3次ベジェ曲線で表現すること
ができない。このとき、一旦この曲線を図20(a)のよ
うに、制御点1011〜1014で定義される3次ベジェ曲線
と、制御点1014〜1017で定義される3次ベジェ曲線と
の、二つの3次ベジェ曲線で表すように変換し、その後
図20(b)のように、それぞれの制御点を変型後の図形
を表すような位置に移動させることによって上述のよう
な変型を実現することができる。しかしながら、このよ
うな図形の分割を適切に行ったり、変型後の図形に合致
するように制御点を移動させる処理を自動的に行うこと
は困難を要する。また、図形の編集を行っていくと多数
の3次ベジェ曲線に分割されていくことがあり、データ
量が増加したり描画のための処理が多くなるという問題
を引き起こす。Here, it is assumed that a cubic Bezier curve is used to represent a figure. The figure in Fig. 19 (a) is a single 3
It can be expressed by the following Bezier curve, but after transformation
The figure 9 (b) cannot be represented by one cubic Bezier curve. At this time, as shown in FIG. 20 (a), the curve is divided into two parts, a cubic Bezier curve defined by control points 1011-1014 and a cubic Bezier curve defined by control points 1014-1017. The transformation described above can be realized by converting the control points so that they are represented by Bezier curves, and then moving the respective control points to positions that represent the figure after the transformation as shown in FIG. . However, it is difficult to appropriately divide such a figure or automatically perform the process of moving the control points so as to match the figure after the transformation. Further, as a graphic is edited, it may be divided into many cubic Bezier curves, which causes a problem that the amount of data increases and the number of processes for drawing increases.
【0008】また、特開平3−129485号公報に記
載の方法は、上述のような状況における図形の分割を適
切に行うことを可能とするが、曲線部分に曲線を当ては
める(変型後の図形に合致するように制御点を決定す
る)ことの困難さを解決していない。Further, the method described in Japanese Patent Laid-Open No. 3-129485 makes it possible to appropriately divide a figure in the above situation, but a curve is applied to a curved line portion (for a figure after transformation). It has not solved the difficulty of determining the control points so that they match.
【0009】本発明は、上記の課題を解決するためにな
されたものであって、その目的は、複数の点からなる点
列によって表される形状を、該点列を通過する曲線とし
て簡易な処理で近似する、曲線近似方法及び曲線近似装
置と、それに用いる曲線近似プログラムを提供すること
にある。The present invention has been made in order to solve the above problems, and its object is to make a shape represented by a point sequence consisting of a plurality of points simple as a curve passing through the point sequence. It is to provide a curve approximation method and a curve approximation device that are approximated by processing, and a curve approximation program used for the method.
【0010】[0010]
【課題を解決するための手段】本発明に関わる曲線近似
方法は、上記の課題を解決するための、複数の点からな
る点列によって表される形状を、該点列を通過する曲線
として近似する方法において、前記点列に含まれる任意
の点を処理対象点として選択する処理対象点選択ステッ
プと、前記点列に含まれる一つあるいは複数の点を参照
点として選択する参照点選択ステップと、前記処理対象
点と前記参照点とから曲線近似するための補間点を算出
する補間点算出ステップと、を有していることを特徴と
している。In order to solve the above-mentioned problems, a curve approximation method according to the present invention approximates a shape represented by a sequence of points consisting of a plurality of points as a curve passing through the sequence of points. In the method, a processing target point selecting step of selecting an arbitrary point included in the point sequence as a processing target point, and a reference point selecting step of selecting one or a plurality of points included in the point sequence as a reference point And an interpolation point calculation step of calculating an interpolation point for curve approximation from the processing target point and the reference point.
【0011】ここで、点を表す座標は2次元であっても
よいし3次元であってもよい。また、座標は絶対座標で
あってもよいし相対的な局所座標であってもよい。Here, the coordinates representing the points may be two-dimensional or three-dimensional. Further, the coordinates may be absolute coordinates or relative local coordinates.
【0012】上記の構成により、前記処理対象点選択ス
テップは前記点列に含まれる任意の点を処理対象点とし
て選択する。ここで、前記点列に含まれている点がリス
ト構造のように順序づけられている場合には、先頭の点
から順番に処理対象点として選択していけばよい。次
に、前記参照点選択ステップは前記点列から一つあるい
は複数の点を参照点として選択する。参照点は前記処理
対象点に応じて選択すればよい。例えば、前記点列に含
まれている点がリスト構造のように順序づけられている
場合には、前記処理対象点の前後の点を参照点として選
択すればよい。更に、前記処理対象点の前後幾つかの、
複数の点を参照点として選択すれば、後の補間点算出ス
テップで算出される補間点を、より適切なものとするこ
とができる。次に、前記補間点算出ステップは前記処理
対象点と前記参照点とから補間点を算出する。With the above arrangement, the processing target point selecting step selects an arbitrary point included in the point sequence as a processing target point. Here, when the points included in the point sequence are ordered like a list structure, the points to be processed may be sequentially selected from the first point. Next, the reference point selection step selects one or a plurality of points as reference points from the point sequence. The reference point may be selected according to the processing target point. For example, when the points included in the point sequence are ordered like a list structure, points before and after the processing target point may be selected as reference points. Furthermore, several points before and after the processing target point,
If a plurality of points are selected as reference points, the interpolation points calculated in the subsequent interpolation point calculation step can be made more appropriate. Next, the interpolation point calculation step calculates an interpolation point from the processing target point and the reference point.
【0013】該形状を曲線として近似する際には、前記
処理対象点選択ステップは前記点列に含まれている点す
べてを参照点として順次選択し、それぞれの点に対して
前記参照点選択ステップと前記補間点算出ステップとを
実行する。前記補間点算出ステップで算出された補間点
は前記点列と併せて線分でつなぐことによって、前記点
列を通過する曲線を近似する線分群が得られる。以上の
ようにして、前記点列を通過する曲線を簡単な処理で近
似することができると共に、前記点列に含まれる点の一
部を移動させるだけで、データ構造を変更することな
く、前記点列で表される図形を変形させることができ
る。When approximating the shape as a curve, the processing target point selecting step sequentially selects all the points included in the point sequence as reference points, and the reference point selecting step is performed for each point. And the interpolation point calculation step. By connecting the interpolation points calculated in the interpolation point calculation step together with the point sequence by line segments, a line segment group approximating a curve passing through the point sequence can be obtained. As described above, a curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved, without changing the data structure. A figure represented by a sequence of points can be transformed.
【0014】本発明に関わる曲線近似方法は、上記の課
題を解決するための、複数の点からなる点列によって表
される形状を、該点列を通過する曲線として近似する方
法において、前記点列を作業用の点列に複製する作業点
列準備ステップと、前記作業用の点列に含まれる任意の
点を処理対象点として選択する処理対象点選択ステップ
と、前記作業用の点列に含まれる一つあるいは複数の点
を参照点として選択する参照点選択ステップと、前記処
理対象点と前記参照点とから曲線近似するための補間点
を算出する補間点算出ステップと、前記補間点算出ステ
ップで算出された補間点を前記作業用の点列に追加する
補間点追加ステップとを有し、前記参照点選択ステップ
と補間点算出ステップと補間点追加ステップとを、所定
の条件が満たされるまで繰り返すことを特徴としてい
る。A curve approximating method according to the present invention is a method for approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence, for solving the above-mentioned problems. A work point sequence preparation step of duplicating a sequence into a work point sequence, a processing target point selection step of selecting an arbitrary point included in the work point sequence as a processing target point, and a work point sequence A reference point selecting step of selecting one or a plurality of included points as a reference point; an interpolation point calculating step of calculating an interpolation point for curve approximation from the processing target point and the reference point; An interpolation point adding step of adding the interpolation points calculated in the step to the working point sequence, and the reference point selecting step, the interpolation point calculating step, and the interpolation point adding step satisfy predetermined conditions. It is characterized by repeated until.
【0015】上記の構成により、前記作業点列準備ステ
ップは、前記点列を作業用の点列に複製する。前記処理
対象点選択ステップは前記作業用の点列に含まれる任意
の点を処理対象点として選択する。上述と同様に、前記
作業用の点列に含まれている点がリスト構造のように順
序づけられている場合には、先頭の点から順番に処理対
象点として選択していけばよい。次に、前記参照点選択
ステップは前記作業用の点列から一つあるいは複数の点
を参照点として選択する。上述と同様に、参照点は前記
処理対象点に応じて選択すればよく、例えば、前記作業
用の点列に含まれている点がリスト構造のように順序づ
けられている場合には、前記処理対象点の前後の点を参
照点として選択すればよい。次に、前記補間点算出ステ
ップは前記処理対象点と前記参照点とから補間点を算出
する。補間点追加ステップは前記補間点算出ステップで
算出された補間点を前記作業用の点列に追加する。上述
のように前記作業用の点列に含まれている点がリスト構
造のように順序付けられている場合には、前記補間点が
補間する点の間に位置するように、順序付けを修正して
前記作業用の点列に追加すればよい。With the above arrangement, the work point sequence preparing step duplicates the point sequence into a work point sequence. In the processing target point selecting step, an arbitrary point included in the work point sequence is selected as a processing target point. Similarly to the above, when the points included in the work point sequence are ordered like a list structure, it is sufficient to select the points to be processed in order from the first point. Next, the reference point selecting step selects one or a plurality of points as reference points from the working point sequence. Similar to the above, the reference point may be selected according to the processing target point. For example, when the points included in the work point sequence are ordered like a list structure, the processing is performed. Points before and after the target point may be selected as reference points. Next, the interpolation point calculation step calculates an interpolation point from the processing target point and the reference point. In the interpolation point adding step, the interpolation point calculated in the interpolation point calculating step is added to the working point sequence. When the points included in the working point sequence are ordered as in the list structure as described above, the ordering is modified so that the interpolation points are located between the interpolated points. It may be added to the point sequence for the work.
【0016】該形状を曲線として近似する際には、前記
処理対象点選択ステップは前記作業用の点列に含まれて
いる点のうち、前記補間点追加ステップで追加された補
間点以外の、すべての点を参照点として順次選択し、そ
れぞれの点に対して前記参照点選択ステップと前記補間
点算出ステップと前記補間点追加ステップとを実行す
る。その後、所定の条件が満たされた場合には処理全体
を終了する。所定の条件とは、例えば処理に要した時間
が予め定められた時間を超えた場合や、前記作業用点列
に含まれている点の総数が予め定められた数を超えた場
合などである。所定の条件が満たされておらず、かつ、
前記処理対象点選択ステップがすべての点を参照点とし
て選択して、それぞれの点に対して前記参照点選択ステ
ップと前記補間点算出ステップと前記補間点追加ステッ
プとの実行が終了したら、前記作業用点列に新たに追加
された前記補間点も含めて、前記処理対象点選択ステッ
プの選択対象として、上述の処理を繰り返す。When approximating the shape as a curve, the process target point selecting step includes points other than the interpolation points added in the interpolation point adding step among the points included in the working point sequence. All points are sequentially selected as reference points, and the reference point selecting step, the interpolation point calculating step, and the interpolation point adding step are executed for each point. After that, when a predetermined condition is satisfied, the entire process is ended. The predetermined condition is, for example, when the time required for processing exceeds a predetermined time, or when the total number of points included in the work point sequence exceeds a predetermined number. . The prescribed conditions are not met, and
When the processing target point selecting step selects all points as reference points, and the execution of the reference point selecting step, the interpolation point calculating step, and the interpolation point adding step for each point is completed, the operation is performed. The above-described processing is repeated as the selection target in the processing target point selection step, including the interpolation point newly added to the use point sequence.
【0017】このようにして得られた作業用点列に含ま
れている点を線分でつなぐことによって、前記点列を通
過する曲線を近似する線分群が得られる。以上のように
して、前記点列を通過する曲線を簡単な処理で近似する
ことができると共に、前記点列に含まれる点の一部を移
動させるだけで、データ構造を変更することなく、前記
点列で表される図形を変形させることができる。更に、
この近似の処理は所定の条件が満たされるまで繰り返さ
れるので、前記曲線を処理量やメモリ量の制限の範囲内
で可能な限り精度よく近似することができる。By connecting the points included in the work point sequence thus obtained with line segments, a line segment group approximating a curve passing through the point sequence can be obtained. As described above, a curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved, without changing the data structure. A figure represented by a sequence of points can be transformed. Furthermore,
Since this approximation processing is repeated until a predetermined condition is satisfied, the curve can be approximated as accurately as possible within the limits of the processing amount and the memory amount.
【0018】本発明に関わる曲線近似方法は、上記の課
題を解決するために、上記の構成に加えて、前記処理対
象点および前記参照点間の距離を算出する距離算出ステ
ップと、前記距離算出ステップで算出された距離を参照
して補間点の算出の要/不要を判断する補間点要否判断
ステップとを有し、前記補間点算出ステップは前記補間
点要否判断ステップで補間点の算出を要すると判断され
た場合に補間点を算出することを特徴としている。In order to solve the above-mentioned problems, the curve approximation method according to the present invention is, in addition to the above-mentioned configuration, a distance calculation step for calculating the distance between the processing target point and the reference point, and the distance calculation. An interpolation point necessity determination step for determining necessity / unnecessity of calculation of an interpolation point by referring to the distance calculated in the step, and the interpolation point calculation step calculates the interpolation point in the interpolation point necessity determination step. The feature is that an interpolation point is calculated when it is determined that
【0019】上記の構成により、前記補間点算出ステッ
プは、前記補間点要否判断ステップにおいて、前記距離
算出ステップで算出された距離に応じて補間点の算出を
要すると判断した場合にのみ補間点を算出する。例え
ば、前記距離が予め定められた距離よりも小さい場合
は、前記処理対象点と前記参照点との間に補間点を生成
しても余り意味がないので、補間点の算出を不要とすれ
ばよい。このようにして、不要な補間点の算出を行わな
いようにすることができ、前記曲線を近似するために要
する処理量やメモリ量を低減させることができる。With the above arrangement, the interpolation point calculation step is performed only when the interpolation point necessity determination step determines that the interpolation point calculation is required according to the distance calculated in the distance calculation step. To calculate. For example, if the distance is smaller than a predetermined distance, it does not make much sense to generate an interpolation point between the processing target point and the reference point, so that calculation of the interpolation point is unnecessary. Good. In this way, unnecessary interpolation points can be prevented from being calculated, and the processing amount and memory amount required to approximate the curve can be reduced.
【0020】本発明に関わる曲線近似方法は、上記の課
題を解決するために、上記の構成に加えて、前記処理対
象点および前記参照点で構成されるベクトルの成す角度
を算出する角度算出ステップと、前記角度算出ステップ
で算出された角度を参照して補間点の算出の要/不要を
判断する補間点要否判断ステップとを有し、前記補間点
算出ステップは前記補間点要否判断ステップで補間点の
算出を要すると判断された場合に補間点を算出すること
を特徴としている。In order to solve the above problems, the curve approximating method according to the present invention is, in addition to the above configuration, an angle calculating step of calculating an angle formed by a vector composed of the processing target point and the reference point. And an interpolation point necessity judgment step for judging necessity / unnecessity of calculation of an interpolation point by referring to the angle calculated in the angle calculation step, wherein the interpolation point calculation step is the interpolation point necessity judgment step. The feature is that the interpolation point is calculated when it is determined that the calculation of the interpolation point is required.
【0021】上記の構成により、前記補間点算出ステッ
プは、前記補間点要否判断ステップにおいて、前記角度
算出ステップで算出された角度に応じて補間点の算出を
要すると判断した場合にのみ補間点を算出する。例え
ば、前記処理対象点と、前記処理対象点の前後に位置す
る前記参照点との3点によって成す角度と180度との
差が予め定められた角度よりも小さい場合は、前記処理
対象点と前記参照点とはほぼ直線上に位置することにな
り補間点を生成しても余り意味がないので、補間点の算
出を不要とすればよい。このようにして、不要な補間点
の算出を行わないようにすることができ、前記曲線を近
似するために要する処理量やメモリ量を低減させること
ができる。With the above arrangement, the interpolation point calculation step is performed only when the interpolation point necessity determination step determines that the interpolation point calculation is required according to the angle calculated in the angle calculation step. To calculate. For example, when the difference between the angle formed by the three points of the processing target point and the reference points located before and after the processing target point and 180 degrees is smaller than a predetermined angle, the processing target point Since the reference point is located on a substantially straight line and it does not make much sense to generate an interpolation point, the calculation of the interpolation point may be unnecessary. In this way, unnecessary interpolation points can be prevented from being calculated, and the processing amount and memory amount required to approximate the curve can be reduced.
【0022】本発明に関わる曲線近似方法は、上記の課
題を解決するために、上記の構成に加えて、前記点列に
含まれている点はそれぞれが2つの線分をつないでいる
角点であるか、曲線上の点であるかを表している情報を
併せて有しており、前記処理対象点あるいは参照点のう
ちのいずれかの点が角点であるか否かを判断する角点判
断ステップとを有し、前記補間点算出ステップは前記角
点判断ステップで該処理対象点あるいは参照点のうちの
いずれかの点が角点でないと判断された場合に補間点を
算出することを特徴としている。In order to solve the above-mentioned problems, the curve approximation method according to the present invention has, in addition to the above-mentioned configuration, the points included in the point sequence, each of which is a corner point connecting two line segments. Or a point on a curve is also included, and an angle for determining whether any one of the processing target point or the reference point is a corner point. A point determination step, wherein the interpolation point calculation step calculates an interpolation point when it is determined in the corner point determination step that either the processing target point or the reference point is not a corner point. Is characterized by.
【0023】上記の構成により、前記補間点算出ステッ
プは、前記補間点要否判断ステップにおいて、前記角点
判断ステップで、前記処理対象点あるいは参照点のうち
のいずれかの点が角点でないと判断された場合に判断し
た場合にのみ補間点を算出する。このようにして、形状
の一部に折れ曲がり箇所を含んでいる場合でも、該折れ
曲がり箇所を表す角点に対しては上述の補間点の算出を
行わないので、該角点と、その前後の点とは元の点列で
表される形状と同じ形状となり、曲線を当てはめる処理
を行うことなく、複雑な図形を近似することができる。With the above arrangement, in the interpolation point calculation step, in the interpolation point necessity judgment step, in the corner point judgment step, any one of the processing target point and the reference point is not a corner point. If the judgment is made, the interpolation point is calculated only when the judgment is made. In this way, even when a part of the shape includes a bending point, the above-mentioned interpolation point is not calculated for the corner point representing the bending point, so that the corner point and the points before and after it are not calculated. And have the same shape as the shape represented by the original point sequence, and a complicated figure can be approximated without performing the process of fitting a curve.
【0024】本発明の曲線近似装置は、上記の課題を解
決するための、複数の点からなる点列によって表される
形状を、該点列を通過する曲線として近似する装置にお
いて、前記点列に含まれている点を記憶する点列記憶手
段と、前記点列記憶手段に記憶されている点のうち任意
の点を処理対象点として選択する処理対象点選択手段
と、前記点列記憶手段に記憶されている点から、一つあ
るいは複数の点を参照点として選択する参照点選択手段
と、前記処理対象点と前記参照点とから曲線近似するた
めの補間点を算出する補間点算出手段と、を有している
ことを特徴としている。The curve approximating apparatus of the present invention is an apparatus for approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence in order to solve the above problems. A point sequence storage means for storing points included in the point sequence processing means, a processing target point selection means for selecting an arbitrary point among the points stored in the point sequence storage means as a processing target point, and the point sequence storage means. Reference point selecting means for selecting one or a plurality of points as reference points from the points stored in, and interpolation point calculating means for calculating an interpolation point for curve approximation from the processing target point and the reference point. It is characterized by having and.
【0025】上記の構成により、前記処理対象点選択手
段は前記点列に含まれる任意の点を処理対象点として選
択する。ここで、前記点列に含まれている点がリスト構
造のように順序づけられている場合には、先頭の点から
順番に処理対象点として選択していけばよい。次に、前
記参照点選択手段は前記点列から一つあるいは複数の点
を参照点として選択する。参照点は前記処理対象点に応
じて選択すればよい。例えば、前記点列に含まれている
点がリスト構造のように順序づけられている場合には、
前記処理対象点の前後の点を参照点として選択すればよ
い。更に、前記処理対象点の前後幾つかの、複数の点を
参照点として選択すれば、後の補間点算出手段で算出さ
れる補間点を、より適切なものとすることができる。次
に、前記補間点算出手段は前記処理対象点と前記参照点
とから補間点を算出する。With the above arrangement, the processing point selecting means selects an arbitrary point included in the point sequence as a processing point. Here, when the points included in the point sequence are ordered like a list structure, the points to be processed may be sequentially selected from the first point. Next, the reference point selection means selects one or a plurality of points as reference points from the point sequence. The reference point may be selected according to the processing target point. For example, when the points included in the point sequence are ordered like a list structure,
The points before and after the processing target point may be selected as reference points. Further, if a plurality of points before and after the processing target point are selected as reference points, the interpolation points calculated by the subsequent interpolation point calculating means can be made more appropriate. Next, the interpolation point calculation means calculates an interpolation point from the processing target point and the reference point.
【0026】該形状を曲線として近似する際には、前記
処理対象点選択手段は前記点列に含まれている点すべて
を参照点として順次選択し、それぞれの点に対して前記
参照点選択手段と前記補間点算出手段とを実行する。前
記補間点算出手段で算出された補間点は前記点列と併せ
て線分でつなぐことによって、前記点列を通過する曲線
を近似する線分群が得られる。以上のようにして、前記
点列を通過する曲線を簡単な処理で近似することができ
ると共に、前記点列に含まれる点の一部を移動させるだ
けで、データ構造を変更することなく、前記点列で表さ
れる図形を変形させることができる。When approximating the shape as a curve, the processing target point selecting means sequentially selects all the points included in the point sequence as reference points, and the reference point selecting means for each point is selected. And the interpolation point calculation means. By connecting the interpolated points calculated by the interpolated point calculation means together with the point sequence by a line segment, a line segment group approximating a curve passing through the point sequence can be obtained. As described above, a curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved, without changing the data structure. A figure represented by a sequence of points can be transformed.
【0027】本発明の曲線近似装置は、上記の課題を解
決するために、複数の点からなる点列によって表される
形状を、該点列を通過する曲線として近似する装置にお
いて、前記点列に含まれている点を記憶する点列記憶手
段と、前記点列記憶手段に記憶されている点列を作業用
の点列に複製する作業点列準備手段と、前記作業用の点
列に含まれる任意の点を処理対象点として選択する処理
対象点選択手段と、前記作業用の点列に含まれる一つあ
るいは複数の点を参照点として選択する参照点選択手段
と、前記処理対象点と前記参照点とから曲線近似するた
めの補間点を算出する補間点算出手段と、前記補間点算
出手段で算出された補間点を前記作業用の点列に追加す
る補間点追加手段とを有し、前記参照点選択手段と補間
点算出手段と補間点追加手段とを、所定の条件が満たさ
れるまで繰り返すことを特徴としている。In order to solve the above-mentioned problems, the curve approximating apparatus of the present invention is an apparatus for approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence. A point sequence storage means for storing the points contained in, a working point sequence preparation means for copying the point sequence stored in the point sequence storage means into a working point sequence, and a working point sequence. Processing target point selecting means for selecting any included point as a processing target point, reference point selecting means for selecting one or a plurality of points included in the working point sequence as reference points, and the processing target point And an interpolation point calculation means for calculating an interpolation point for curve approximation from the reference point and an interpolation point addition means for adding the interpolation point calculated by the interpolation point calculation means to the working point sequence. Then, the reference point selection means, the interpolation point calculation means, and the interpolation And additional means, is characterized by repeated until a predetermined condition is satisfied.
【0028】上記の構成により、前記作業点列準備手段
は、前記点列を作業用の点列に複製する。前記処理対象
点選択手段は前記作業用の点列に含まれる任意の点を処
理対象点として選択する。上述と同様に、前記作業用の
点列に含まれている点がリスト構造のように順序づけら
れている場合には、先頭の点から順番に処理対象点とし
て選択していけばよい。次に、前記参照点選択手段は前
記作業用の点列から一つあるいは複数の点を参照点とし
て選択する。上述と同様に、参照点は前記処理対象点に
応じて選択すればよく、例えば、前記作業用の点列に含
まれている点がリスト構造のように順序づけられている
場合には、前記処理対象点の前後の点を参照点として選
択すればよい。次に、前記補間点算出手段は前記処理対
象点と前記参照点とから補間点を算出する。補間点追加
手段は前記補間点算出手段で算出された補間点を前記作
業用の点列に追加する。上述のように前記作業用の点列
に含まれている点がリスト構造のように順序付けられて
いる場合には、前記補間点が補間する点の間に位置する
ように、順序付けを修正して前記作業用の点列に追加す
ればよい。With the above arrangement, the work point sequence preparing means duplicates the point sequence into a work point sequence. The processing target point selecting means selects an arbitrary point included in the working point sequence as a processing target point. Similarly to the above, when the points included in the work point sequence are ordered like a list structure, it is sufficient to select the points to be processed in order from the first point. Next, the reference point selecting means selects one or a plurality of points as reference points from the working point sequence. Similar to the above, the reference point may be selected according to the processing target point. For example, when the points included in the work point sequence are ordered like a list structure, the processing is performed. Points before and after the target point may be selected as reference points. Next, the interpolation point calculation means calculates an interpolation point from the processing target point and the reference point. The interpolation point adding means adds the interpolation point calculated by the interpolation point calculating means to the working point sequence. When the points included in the working point sequence are ordered as in the list structure as described above, the ordering is modified so that the interpolation points are located between the interpolated points. It may be added to the point sequence for the work.
【0029】該形状を曲線として近似する際には、前記
処理対象点選択手段は前記作業用の点列に含まれている
点のうち、前記補間点追加手段で追加された補間点以外
の、すべての点を参照点として順次選択し、それぞれの
点に対して前記参照点選択と前記補間点算出と前記補間
点追加とを実行する。その後、所定の条件が満たされた
場合には処理全体を終了する。所定の条件とは、例えば
処理に要した時間が予め定められた時間を超えた場合
や、前記作業用点列に含まれている点の総数が予め定め
られた数を超えた場合などである。所定の条件が満たさ
れておらず、かつ、前記処理対象点選択手段がすべての
点を参照点として選択して、それぞれの点に対して前記
参照点選択と前記補間点算出と前記補間点追加との実行
が終了したら、前記作業用点列に新たに追加された前記
補間点も含めて、前記処理対象点選択手段の選択対象と
して、上述の処理を繰り返す。When approximating the shape as a curve, the processing target point selecting means selects points other than the interpolation points added by the interpolation point adding means from among the points included in the work point sequence. All points are sequentially selected as reference points, and the reference point selection, the interpolation point calculation, and the interpolation point addition are executed for each point. After that, when a predetermined condition is satisfied, the entire process is ended. The predetermined condition is, for example, when the time required for processing exceeds a predetermined time, or when the total number of points included in the work point sequence exceeds a predetermined number. . If a predetermined condition is not satisfied, and the processing point selection means selects all points as reference points, the reference point selection, the interpolation point calculation, and the interpolation point addition are performed for each point. When the execution of the above is finished, the above-mentioned processing is repeated as the selection target of the processing target point selecting means including the interpolation point newly added to the working point sequence.
【0030】このようにして得られた作業用点列に含ま
れている点を線分でつなぐことによって、前記点列を通
過する曲線を近似する線分群が得られる。以上のように
して、前記点列を通過する曲線を簡単な処理で近似する
ことができると共に、前記点列に含まれる点の一部を移
動させるだけで、データ構造を変更することなく、前記
点列で表される図形を変形させることができる。更に、
この近似の処理は所定の条件が満たされるまで繰り返さ
れるので、前記曲線を処理量やメモリ量の制限の範囲内
で可能な限り精度よく近似することができる。By connecting the points included in the work point sequence thus obtained with line segments, a line segment group approximating a curve passing through the point sequence can be obtained. As described above, a curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved, without changing the data structure. A figure represented by a sequence of points can be transformed. Furthermore,
Since this approximation processing is repeated until a predetermined condition is satisfied, the curve can be approximated as accurately as possible within the limits of the processing amount and the memory amount.
【0031】本発明に関わる曲線近似プログラムは、上
述の曲線近似方法をコンピュータに実行させるための曲
線近似プログラムである。A curve approximation program according to the present invention is a curve approximation program for causing a computer to execute the above-described curve approximation method.
【0032】なお、上述の曲線近似方法をコンピュータ
に実行させるための曲線近似プログラムを記録したコン
ピュータ読み取り可能な記録媒体も本発明の権利範囲に
属することは言うまでもない。It goes without saying that a computer-readable recording medium recording a curve approximation program for causing a computer to execute the above-described curve approximation method also belongs to the scope of the present invention.
【0033】[0033]
【発明の実施の形態】(第1の実施形態)本発明の第1
の実施形態について、図1ないし図5に基づいて説明す
れば、以下のとおりである。(First Embodiment) First Embodiment of the Present Invention
The embodiment will be described below with reference to FIGS. 1 to 5.
【0034】図1は、本発明の第1の実施形態の処理の
流れを説明するためのフローチャートである。なお、こ
こで説明する処理においては、点列に含まれている点は
配列のデータ構造で管理されていて、配列中に空きは無
いとする。FIG. 1 is a flow chart for explaining the flow of processing of the first embodiment of the present invention. In the processing described here, it is assumed that the points included in the point sequence are managed by the array data structure and there is no space in the array.
【0035】まず、処理対象点選択ステップで処理対象
点を選択するために参照されるカウンタ変数iの値に、
配列の添字の最小値(ここでは1)を代入して初期化す
る(ステップ101;以後、S101と略記する)。前記カウ
ンタ変数iは、例えばCPU(Central Processing Unit)内
に備えられているレジスタ変数や、CPUからアクセス可
能なメモリなどの、処理対象点選択ステップを実行する
手段内あるいは該手段からアクセス可能な記憶手段で記
憶されればよい。First, the value of the counter variable i referred to in order to select the processing target point in the processing target point selection step is
The minimum value of the subscript of the array (here, 1) is substituted for initialization (step 101; hereinafter abbreviated as S101). The counter variable i is, for example, a register variable provided in a CPU (Central Processing Unit), a memory that is accessible from the CPU, or a memory that is accessible from the means that executes the process target point selection step. It may be stored by means.
【0036】次に、カウンタ変数iの値を添字とする点
を処理対象点として選択する(処理対象点選択ステッ
プ、S102)。Next, a point having the value of the counter variable i as a subscript is selected as a processing target point (processing target point selection step, S102).
【0037】次に、カウンタ変数iの値を参照して参照
点を選択する(参照点選択ステップ、S103)。Next, the reference point is selected with reference to the value of the counter variable i (reference point selection step, S103).
【0038】例えば、処理対象点の前後に位置する3点
を参照点として選択する場合には、i−1の値を添字と
する点(処理対象点の前に位置する点)と、i+1の値
を添字とする点(処理対象点の次ぎ位置する点)と、i
+2の値を添字とする点(処理対象点の次の次に位置す
る点)と、を参照点として選択する。詳細な具体例は後
述する。For example, when three points before and after the processing target point are selected as reference points, a point having a value of i-1 as a subscript (a point positioned before the processing target point) and i + 1 A point whose value is a subscript (a point next to the processing target point) and i
A point having a value of +2 as a subscript (a point located next to the point to be processed) is selected as a reference point. Detailed specific examples will be described later.
【0039】参照点の数はこれには限らない。より多く
の参照点を選択する程、後の処理で算出される補間点に
よって近似される精度は高くなるが、処理量が増大す
る。The number of reference points is not limited to this. The more reference points are selected, the higher the accuracy of approximation by the interpolation points calculated in the subsequent processing becomes, but the processing amount increases.
【0040】次に、S102で選択された処理対象点と、S1
03で選択された参照点とから、補間点を算出する(補間
点算出ステップ、S104)。具体的な算出方法については
後述する。Next, the processing target point selected in S102 and S1
An interpolation point is calculated from the reference point selected in 03 (interpolation point calculation step, S104). A specific calculation method will be described later.
【0041】次に、カウンタ変数iの値を1増加させる
(S105)。Next, the value of the counter variable i is incremented by 1 (S105).
【0042】次に、カウンタ変数iの値が、前記点列に
含まれる点の数から1を減じた値(=前記配列の添字の
最大値−1)よりも大きいか否かを判定する(S106)。
ここで、1を減じるのは、点列の最後の点を処理対象点
として補間点を算出する必要がないためである。カウン
タ変数iの値が前記点列に含まれる点の数よりも大きい
場合には処理を終了する。カウンタ変数iの値が前記点
列に含まれる点の数よりも小さいか等しい場合にはS102
に処理を戻す。Next, it is determined whether or not the value of the counter variable i is larger than the value obtained by subtracting 1 from the number of points included in the point sequence (= the maximum value of the subscript of the array-1). S106).
Here, 1 is subtracted because it is not necessary to calculate the interpolation point with the last point of the point sequence as the processing target point. When the value of the counter variable i is larger than the number of points included in the point sequence, the processing is ended. If the value of the counter variable i is less than or equal to the number of points included in the point sequence, S102
Return processing to.
【0043】以上の処理により、点列に含まれるすべて
の点を処理対象点として補間点を算出することができ
る。Through the above processing, the interpolation points can be calculated with all the points included in the point sequence as the processing target points.
【0044】なお、点列に含まれている点を管理するデ
ータ構造として、配列の代わりにリスト構造を用いるこ
とも可能である。この場合には、カウンタ変数iはリス
ト中の参照する要素をポインティングするポインタ変数
とし、S101の処理はカウンタ変数iの値をリストの先頭
の要素へのポインタにして初期化し、S105の処理はカウ
ンタ変数iがポインティングしている要素の次の要素へ
のポインタをカウンタ変数iに代入し、S106の処理はポ
インタ変数iがポインティングしている要素がリストの
最後の要素に達したか否かを判定するように、それぞれ
の処理を置き換えることで、同様のアルゴリズムで点列
に含まれるすべての点を処理対象点として補間点を算出
することができる。It is also possible to use a list structure instead of an array as a data structure for managing the points included in the point sequence. In this case, the counter variable i is a pointer variable for pointing the referenced element in the list, the processing of S101 is initialized by setting the value of the counter variable i to the pointer to the first element of the list, and the processing of S105 is performed by the counter. The pointer to the element next to the element pointed by the variable i is assigned to the counter variable i, and the processing of S106 determines whether the element pointed by the pointer variable i has reached the last element in the list. As described above, by replacing the respective processes, the interpolation points can be calculated with all the points included in the point sequence as the processing target points by the same algorithm.
【0045】図2は、配列のデータ構造で管理されてい
る点列の具体的な例を示す図である。これらの点列は一
本の開曲線を表しているとする。それぞれの添字の値に
対して、x座標の値と、y座標の値とが対応付けられて記
憶されている。ここでは点列は7点で構成されている例
を示しているが、点の数はこれに限るものではない。FIG. 2 is a diagram showing a specific example of a point sequence managed by the array data structure. It is assumed that these point sequences represent one open curve. An x-coordinate value and a y-coordinate value are stored in association with each subscript value. Here, an example in which the point sequence is composed of 7 points is shown, but the number of points is not limited to this.
【0046】この例では2次元の点の座標値を配列で管
理しているが、3次元の点の場合は更にz座標の値が添
字の値に対応付けられて記憶されればよい。更に、別途
定義されている構造体やオブジェクトのインスタンスな
どに、点の座標値を格納して記憶するようにしている場
合には、該構造体やインスタンスへのポインタを前記添
字の値に対応付けて記憶するようにしてもよい。In this example, the coordinate values of the two-dimensional points are managed as an array, but in the case of the three-dimensional points, the z coordinate value may be stored in association with the subscript value. Further, when the point coordinate values are stored and stored in a separately defined structure or object instance, the pointer to the structure or instance is associated with the value of the subscript. It may be stored in memory.
【0047】図2の点列の例を図示すると図3のように
なる。点201〜207はそれぞれ図2における添字が1から7
の点に対応している。また、実線200は点201〜207が表
現しようとしている曲線であるとする。An example of the sequence of points in FIG. 2 is shown in FIG. Points 201 to 207 have subscripts 1 to 7 in FIG. 2, respectively.
It corresponds to the point. Further, it is assumed that the solid line 200 is a curve that the points 201 to 207 are about to represent.
【0048】以下、図2および図3の点列の例を参照し
て、図1に示したフローチャートをステップの順にS102
〜S104の具体的な処理の例を説明する。Hereinafter, with reference to the example of the point sequences in FIGS. 2 and 3, the flowchart shown in FIG.
An example of a specific process of to S104 will be described.
【0049】例えばカウンタ変数iの値が2である時、
S102の処理によって添字が2である点203が処理対象点
として選択される。また、S103の処理によって、添字が
1と3と4である点201、203、204が参照点として選択
される。For example, when the value of the counter variable i is 2,
By the process of S102, the point 203 having the subscript 2 is selected as the processing target point. Further, by the processing of S103, points 201, 203, and 204 having subscripts 1, 3, and 4 are selected as reference points.
【0050】処理対象点の座標を(X#i, Y#i)、参照点の
座標をそれぞれ(X#(i-1), Y#(i-1))、(X#(i+1), Y#(i+
1))、(X#(i+2), Y#(i+2))とすると、補間点の座標(X,
Y)は例えば次式のようにして算出される。
X = (k1×(X#i+X#(i+1))+k2×(X#(i-1)+X#(i+2)))/
k3
Y = (k1×(Y#i+Y#(i+1))+k2×(Y#(i-1)+Y#(i+2)))/
k3
ここで、k1、k2、k3は予め定められた係数であり、例え
ばk1=9、k2=-1、k3=16である。上式の場合は、k1×2+k
2×2=k3の関係を満たしていることが望ましい。The coordinates of the processing target point are (X # i, Y # i), and the coordinates of the reference point are (X # (i-1), Y # (i-1)), (X # (i + 1), Y # (i +
1)), (X # (i + 2), Y # (i + 2)), the coordinates (X,
Y) is calculated, for example, by the following equation. X = (k1 x (X # i + X # (i + 1)) + k2 x (X # (i-1) + X # (i + 2))) /
k3 Y = (k1 x (Y # i + Y # (i + 1)) + k2 x (Y # (i-1) + Y # (i + 2))) /
k3 Here, k1, k2, and k3 are predetermined coefficients, for example, k1 = 9, k2 = -1, and k3 = 16. In the case of the above formula, k1 x 2 + k
It is desirable to satisfy the relationship of 2 × 2 = k3.
【0051】以上のようにして、処理対象点と参照点の
座標を重み付き平均することによって得られた補間点
は、これらの点を曲線近似するための、処理対象点(上
述の例では点202)と処理対象点の次に位置する参照点
(上述の例では点203)との間に位置する点となる。As described above, the interpolation point obtained by weighted averaging the coordinates of the processing target point and the reference point is the processing target point (in the above example, the point to be processed for curve approximation). 202) and the reference point (point 203 in the above example) located next to the processing target point.
【0052】また、上述の算出方法をそのまま点列全体
に摘要しようとすると、処理対象点が点201や点206のよ
うに、点列の両端付近では参照点を得ることができな
い。このような場合には、点列の両端には仮想的に両端
の点と同じ座標の点が複数あるものとすればよい。すな
わち、処理対象点が点201である場合には、処理対象点
の前に位置する点はないので、点201を参照点として、
点201、202、203を参照点とする。同様に、処理対象点
が点206である場合には、処理対象点の次の次に位置す
る点はないので、点207を参照点として、点205、206、2
06を参照点とする(点206を二つの参照点として扱
う)。If the above calculation method is applied to the entire point sequence as it is, reference points cannot be obtained near the ends of the point sequence such as the points 201 and 206 to be processed. In such a case, both ends of the point sequence may be virtually provided with a plurality of points having the same coordinates as the ends. That is, when the processing target point is the point 201, since there is no point located before the processing target point, the point 201 is used as a reference point,
Points 201, 202 and 203 are used as reference points. Similarly, when the processing target point is the point 206, there is no point located next to the processing target point, so that the points 205, 206, and 2 are used as the reference points.
Let 06 be the reference point (treat point 206 as two reference points).
【0053】以上説明したようにして算出された補間点
の座標の例を図4に示す。また、図3に示した点列に図
4の補間点211〜216を併せて図示すると図5のようにな
る。また、実線221は元の点列201〜207を結んだ線分
列、一点鎖線222は元の点列201〜207と補間点211〜216
とを結んだ線分列である。実線221と一点鎖線222とを比
較すると、一点鎖線221の方が、図3における実線222に
近い形状となっている。An example of the coordinates of the interpolation point calculated as described above is shown in FIG. Further, the point sequence shown in FIG. 3 and the interpolation points 211 to 216 in FIG. 4 are also shown in FIG. A solid line 221 is a line segment sequence connecting the original point sequences 201 to 207, and a chain line 222 is an original dot sequence 201 to 207 and interpolation points 211 to 216.
It is a line segment connecting and. Comparing the solid line 221 and the one-dot chain line 222, the one-dot chain line 221 has a shape closer to the solid line 222 in FIG.
【0054】なお、上述の処理、特に、点列の両端付近
における処理は、該点列が開曲線を表している場合の処
理の流れである。一方、点列が閉曲線を表している場合
には、S103で点列の両端付近のため参照点を得られない
時には、もう一方の端の点を参照点として選択すればよ
い。例えば、上述の例の点列が閉曲線を表しているとす
ると、処理対象点が点201である場合には、点207、20
2、203を参照点とし、同様に、処理対象点が点206であ
る場合には、点205、206、201を参照点とすればよい。The above-mentioned processing, especially the processing near both ends of the point sequence, is the flow of processing when the point sequence represents an open curve. On the other hand, when the point sequence represents a closed curve, if the reference points cannot be obtained in S103 because they are near both ends of the point sequence, the other end point may be selected as the reference point. For example, assuming that the point sequence in the above example represents a closed curve, if the processing target point is the point 201, the points 207, 20
2, 203 are used as reference points, and similarly, when the processing target point is the point 206, the points 205, 206, 201 may be used as the reference points.
【0055】更に、閉曲線の場合には、S106の処理でカ
ウンタ変数iと比較する値は、前記点列に含まれる点の
数から1を減じた値の代わりに、前記点列に含まれる点
の数とすれば、点列の両端の点の間に位置する補間点を
算出することができる。
(第2の実施形態)本発明の第2の実施形態について、
図6ないし図10に基づいて説明すれば、以下のとおり
である。第1の実施形態では補間点の算出をそれぞれの
処理対象点に対して1回ずつ行った例を示したが、表現
したい形状に対して元の点列に含まれている点の数が少
ない場合は近似精度が十分でないことがある。第2の実
施形態では、算出された補間点を処理対象点として補間
点の算出を繰り返し行うことにより、近似精度をより高
める方法について説明する。Furthermore, in the case of a closed curve, the value to be compared with the counter variable i in the processing of S106 is not the value obtained by subtracting 1 from the number of points included in the point sequence, but the point included in the point sequence. If the number is, it is possible to calculate an interpolation point located between the points at both ends of the point sequence. (Second Embodiment) Regarding the second embodiment of the present invention,
The following is a description with reference to FIGS. 6 to 10. In the first embodiment, the example in which the calculation of the interpolation point is performed once for each processing target point is shown, but the number of points included in the original point sequence is small for the shape to be expressed. In some cases, the approximation accuracy may not be sufficient. In the second embodiment, a method will be described in which the calculation of the interpolation point is repeated using the calculated interpolation point as a processing target point to further improve the approximation accuracy.
【0056】図6は、本発明の第2の実施形態の処理の
流れを説明するためのフローチャートである。なお、こ
こで説明する処理においても、図1で説明したのと同様
に、点列に含まれている点は配列のデータ構造で管理さ
れていて、配列中に空きは無いとする。FIG. 6 is a flow chart for explaining the processing flow of the second embodiment of the present invention. In the process described here as well, as in the case described with reference to FIG. 1, it is assumed that the points included in the point sequence are managed by the array data structure and there is no vacancy in the array.
【0057】まず、点列に含まれる点のデータを作業用
の点列に複製する(作業点列準備ステップ、S111)。作
業用の点列は例えば配列のデータ構造で管理されていれ
ばよく、CPUからアクセス可能なメモリなどの、処理対
象点選択ステップを実行する手段からアクセス可能な記
憶手段で記憶されればよい。First, the data of the points included in the point sequence is copied to the work point sequence (work point sequence preparation step, S111). The working point sequence may be managed by, for example, an array data structure, and may be stored in a storage unit accessible from a unit that executes the process target point selection step, such as a memory accessible from the CPU.
【0058】S101〜S106の処理は、前記作業用の点列を
処理の対象とする以外は図1と同様であるので、詳細な
説明は省略する。The processing of S101 to S106 is the same as that of FIG. 1 except that the working point sequence is targeted, and therefore detailed description thereof is omitted.
【0059】S106でカウンタ変数iの値が前記点列に含
まれる点の数よりも大きいと判断された場合は、所定の
終了条件を満たしたか否かを判定する(S112)。所定の
終了条件を満たしている場合には処理を終了する。所定
の終了条件を満たしていない場合にはS113に処理を進め
る。When it is determined in S106 that the value of the counter variable i is larger than the number of points included in the point sequence, it is determined whether or not a predetermined ending condition is satisfied (S112). If the predetermined termination condition is satisfied, the processing is terminated. If the predetermined termination condition is not satisfied, the process proceeds to S113.
【0060】終了条件とは、例えば本フローチャートに
示す処理を開始してから経過した時間が予め定められた
時間を超えた場合や、前記作業用点列に含まれている点
の総数とS104の処理によって算出された補間点の数の合
計が予め定められた数を超えた場合などである。前者の
条件によれば本フローチャートに示す処理が一定の時間
内に完了することを保証できるので、対話システムや実
時間システムなどに適している。後者の条件によれば、
補間点を生成した結果、作業用点列として準備したメモ
リ量を超える場合には処理を終了するので、利用できる
メモリ量に制限がある場合に適している。The end condition is, for example, when the time elapsed from the start of the process shown in this flowchart exceeds a predetermined time, the total number of points included in the work point sequence, and S104. For example, the total number of interpolation points calculated by the processing exceeds a predetermined number. According to the former condition, the processing shown in this flowchart can be guaranteed to be completed within a certain period of time, which is suitable for a dialogue system or a real-time system. According to the latter condition,
As a result of generating the interpolation points, if the amount of memory prepared as the work point sequence exceeds the amount of memory, the process is terminated, so it is suitable when the amount of available memory is limited.
【0061】S112で所定の処理条件を満たしていない場
合には、S104で算出された補間点を前記作業用の点列に
追加する(補間点追加ステップ、S113)。If the predetermined processing condition is not satisfied in S112, the interpolation point calculated in S104 is added to the working point sequence (interpolation point adding step, S113).
【0062】このとき、それぞれの補間点は、作業用の
点列に含まれていた点の間の、該補間点が位置するべき
位置に追加される。具体的な例は後述する。At this time, each interpolation point is added to the position where the interpolation point should be located between the points included in the working point sequence. A specific example will be described later.
【0063】S113の処理の後、S101に処理を戻す。After the processing of S113, the processing is returned to S101.
【0064】以上の処理により、所定の条件が満たされ
るまで、生成された補間点も処理対象点として繰り返し
補間点を算出することができる。Through the above processing, the generated interpolation points can be repeatedly calculated as the processing target points until the predetermined condition is satisfied.
【0065】図2に示した点列の例に対して、第1の実
施形態で説明したのと同じ補間点の算出方法を用いたと
すると、S101〜S113の処理を1回行った後の作業用点列
の状態は図7のようになる。すなわち、図2に示した点
列に、図4に示した補間点を、それぞれの補間点が位置
するべき位置である、処理対象点の次の位置に追加した
状態である。図7中の、添字が偶数である点はS113で追
加された補間点である。If the same interpolation point calculation method as that described in the first embodiment is used for the example of the point sequence shown in FIG. 2, the work after the processing of S101 to S113 is performed once. The state of the point sequence is as shown in FIG. That is, this is a state in which the interpolation points shown in FIG. 4 are added to the point sequence shown in FIG. 2 at the position next to the processing target point, which is the position where each interpolation point should be located. Points with even subscripts in FIG. 7 are interpolation points added in S113.
【0066】さらに、図7の作業用点列に対して、S101
〜S113の処理を行った後の作業用点列の状態は図8のよ
うになる。図7と同様に、添字が偶数である点はS113で
追加された補間点である。Further, with respect to the work point sequence in FIG. 7, S101
The state of the work point sequence after the processes of to S113 are as shown in FIG. Similar to FIG. 7, points with even subscripts are interpolation points added in S113.
【0067】図9は、上述の処理を繰り返して生成され
た補間点のうち一部を図示している。実線221は元の点
列を結んだ線分列、一点鎖線222はS101〜S113の処理を
1回行った後の作業用点列を結んだ線分列、二点鎖線22
3はS101〜S113の処理を2回行った後の作業用点列を結
んだ線分列、点線224はS101〜S113の処理を3回行った
後の作業用点列を結んだ線分列、である。また、図10
は、図9に示した範囲のうちの一部を更に拡大して図示
した図である。FIG. 9 shows a part of the interpolation points generated by repeating the above process. A solid line 221 is a line segment sequence that connects the original dot sequences, and a one-dot chain line 222 is a line segment sequence that connects the work point sequences after performing the processing of S101 to S113 once, and the two-dot chain line 22.
3 is a line segment sequence connecting the work point sequences after performing the processing of S101 to S113 twice, and dotted line 224 is a line segment sequence connecting the work point sequences after performing the processing of S101 to S113 three times. ,. In addition, FIG.
FIG. 10 is a diagram showing a part of the range shown in FIG. 9 in a further enlarged manner.
【0068】以上のように、S101〜S113の処理を繰り返
す度に補間点が新たに追加されるので、元の点列が表現
する形状を精度よく近似することができる。
(第3の実施形態)本発明の第3の実施形態について、
図11および図12に基づいて説明すれば、以下のとお
りである。第2の実施形態では補間点の算出を繰り返し
行うことによって近似精度を高める方法について説明し
たが、余りに微細な形状や直線に近い形状の場合は不要
な補間点の算出まで行ってしまうことがある。第3の実
施形態では、不要な補間点の算出を省略することによっ
て処理効率を向上する方法について説明する。As described above, since an interpolation point is newly added each time the processing of S101 to S113 is repeated, it is possible to accurately approximate the shape represented by the original point sequence. (Third Embodiment) Regarding the third embodiment of the present invention,
The following is a description with reference to FIGS. 11 and 12. In the second embodiment, the method of increasing the approximation accuracy by repeatedly calculating the interpolation points has been described. However, in the case of a too fine shape or a shape close to a straight line, unnecessary interpolation points may be calculated. . In the third embodiment, a method of improving processing efficiency by omitting calculation of unnecessary interpolation points will be described.
【0069】図11は、本発明の第3の実施形態の処理
の流れを説明するためのフローチャートである。FIG. 11 is a flow chart for explaining the flow of processing of the third embodiment of the present invention.
【0070】S101〜S106、S111〜S113の処理は、図1お
よび図6で説明したのと同様である。The processing of S101 to S106 and S111 to S113 is the same as that described with reference to FIGS.
【0071】また、S103の処理の後に、補間点の算出が
必要か否かを判定する(S121)。補間点の算出が必要と
判断された場合にはS104に処理を進める。補間点の算出
が不要と判断された場合にはS105に処理を進める。After the processing of S103, it is determined whether or not the calculation of interpolation points is necessary (S121). If it is determined that the interpolation points need to be calculated, the process proceeds to S104. If it is determined that the calculation of the interpolation points is unnecessary, the process proceeds to S105.
【0072】S121の処理は、例えばS102で選択された処
理対象点と、S103で選択された参照点それぞれとの距離
を計算し(距離算出ステップ)、前記距離のうち最も長
いものが予め定められた距離よりも短い場合には補間点
の算出を不要と判断する(補間点要否判断ステップ)。In the processing of S121, for example, the distance between the processing target point selected in S102 and each of the reference points selected in S103 is calculated (distance calculation step), and the longest one of the distances is predetermined. If it is shorter than the distance, it is judged that the calculation of the interpolation point is unnecessary (interpolation point necessity judgment step).
【0073】一般的なコンピュータなどで利用されてい
る表示装置では、ビットマップディスプレイのように図
形を画素単位に量子化して表示するので、画素よりも十
分に細かい精度まで形状を近似しても余り意味がない。
よって、上述のような処理対象点と参照点との距離が小
さい時には補間点の算出を行わないことによって不要な
処理を省くことができる。In a display device used in a general computer or the like, a graphic is quantized and displayed in pixel units like a bit map display. Therefore, even if the shape is approximated to a precision finer than the pixel, it is not enough. has no meaning.
Therefore, when the distance between the processing target point and the reference point is small as described above, unnecessary processing can be omitted by not calculating the interpolation point.
【0074】あるいは、S121の処理は、例えばS102で選
択された処理対象点と、S103で選択された参照点のうち
前記処理対象点の直前に位置する参照点とを結ぶベクト
ルと、前記処理対象点と前記参照点のうち前記処理対象
点の直後に位置する参照点とを結ぶベクトルとが成す角
度を算出し(角度算出ステップ)、前記角度と180度
との差が予め定められた角度よりも小さい場合には補間
点の算出を不要と判断する(補間点要否判断ステッ
プ)。Alternatively, in the processing of S121, for example, the vector connecting the processing target point selected in S102 and the reference point located immediately before the processing target point among the reference points selected in S103, and the processing target An angle formed by a vector connecting the point and the reference point located immediately after the processing target point among the reference points is calculated (angle calculation step), and the difference between the angle and 180 degrees is calculated from a predetermined angle. Is smaller, it is determined that the calculation of the interpolation point is unnecessary (interpolation point necessity determination step).
【0075】上述のようにして算出された角度が180
度に近い場合は、処理対象点と参照点がほぼ一直線上に
あるため、補間点を算出しても余り意味がなく、不要な
処理を省くことができる。The angle calculated as described above is 180
If it is close to the degree, the processing target point and the reference point are on a substantially straight line, and therefore calculation of the interpolation point is meaningless, and unnecessary processing can be omitted.
【0076】上述のS121の処理の例は組み合わせてもよ
いことは言うまでもない。It goes without saying that the above-described processing examples in S121 may be combined.
【0077】図12は、S101〜S113の処理を3回行った
後の作業用点列の一例を示した図である。但し、点301
〜314はS121の処理によって算出が省略された補間点を
表している。なお、これらの点301〜314は、省略されず
に算出された場合の位置に描いている。この図のよう
に、元の点列およびS101〜S113の処理が繰り返される過
程で算出された補間点によって近似される形状が直線に
近い部分では、新たな補間点の算出が省略されているこ
とが分かる。
(第4の実施形態)本発明の第4の実施形態について、
図13ないし図15に基づいて説明すれば、以下の通り
である。第1〜第3の実施形態では、元の点列が表現す
る形状は曲線である場合について説明したが、一部に折
れ曲がりを含む形状の場合は上述の処理では近似するこ
とができない。第4の実施形態では、点列に含まれる点
が角点であるか曲線状の点であるかを表している情報を
参照することで、折れ曲がりを含む形状を近似する方法
について説明する。FIG. 12 is a diagram showing an example of a work point sequence after performing the processing of S101 to S113 three times. However, point 301
˜314 represent the interpolation points whose calculation is omitted by the processing of S121. Note that these points 301 to 314 are drawn at the positions where they are calculated without omission. As shown in this figure, calculation of a new interpolation point is omitted in a portion where the shape approximated by the interpolation point calculated in the process of repeating the original point sequence and S101 to S113 is close to a straight line. I understand. (Fourth Embodiment) Regarding the fourth embodiment of the present invention,
The following is a description with reference to FIGS. 13 to 15. In the first to third embodiments, the case where the shape represented by the original point sequence is a curve has been described, but in the case of a shape including a part of the bend, the above processing cannot approximate the shape. In the fourth embodiment, a method of approximating a shape including a bend by referring to information indicating whether the points included in the point sequence are corner points or curved points will be described.
【0078】図13は、本発明の第4の実施形態の処理
の流れを説明するためのフローチャートである。FIG. 13 is a flow chart for explaining the flow of processing in the fourth embodiment of the present invention.
【0079】S101〜S106、S111〜S113の処理は、図1お
よび図6で説明したのと同様である。The processing of S101 to S106 and S111 to S113 is the same as that described with reference to FIGS.
【0080】また、S103の処理の後に、S102で選択され
た処理対象点あるいはS103で選択された参照点のうちの
いずれかの点が角点であるか否かを判定する(S131)。
角点であると判定された場合にはS104に処理を進める。
角点でないと判定された場合にはS105に処理を進める。After the processing of S103, it is determined whether any of the processing target point selected in S102 or the reference point selected in S103 is a corner point (S131).
If it is determined to be a corner point, the process proceeds to S104.
If it is determined that it is not a corner point, the process proceeds to S105.
【0081】図14は図2に示した点列の例に対して、
角点であるか否かを表す情報を付与したデータの例を示
している。それぞれの点に対応する添字の値に対応付け
て、角点である場合は1、角点でない場合は0の値が記
憶されている。FIG. 14 shows an example of the point sequence shown in FIG.
The example of the data which added the information showing whether it is a corner point is shown. Corresponding to the value of the subscript corresponding to each point, a value of 1 is stored if it is a corner point, and a value of 0 is stored if it is not a corner point.
【0082】図14の点列の例を図示すると図15のよ
うになる。点201〜207はそれぞれ図14における添字が
1から7の点に対応している。また、実線230は点201〜20
7が表現しようとしている形状であるとする。図3に示
した例と比較して、点202〜204間は直線分で結ばれてい
ることに注意されたい。The example of the point sequence shown in FIG. 14 is illustrated in FIG. The points 201 to 207 are the subscripts in FIG.
It corresponds to points 1 to 7. The solid line 230 indicates points 201 to 20.
Suppose 7 is the shape that we are trying to represent. It should be noted that the points 202 to 204 are connected by a straight line segment as compared with the example shown in FIG.
【0083】第1の実施形態で説明した補間点の算出方
法では、算出される補間点の位置は処理対象点と処理対
象点の次に位置する参照点との間に位置する点となる。
従って、処理対象点あるいは処理対象点の次に位置する
参照点のいずれかが角点である場合には、これらの点は
直線分で結ばれるので、補間点の算出を行わないように
すればよい。In the interpolation point calculation method described in the first embodiment, the position of the calculated interpolation point is a point located between the processing target point and the reference point located next to the processing target point.
Therefore, if either the processing target point or the reference point located next to the processing target point is a corner point, these points are connected by a straight line segment, so if the interpolation points are not calculated, Good.
【0084】すなわち、第1の実施形態で説明した補間
点の算出方法を用いている場合は、S131の処理では、S1
02で選択された処理対象点あるいは、S103で選択された
参照点のうち前記処理対象点の次に位置する参照点のど
ちらかが角点であるか否かを判定すればよい。That is, when the interpolation point calculation method described in the first embodiment is used, in the processing of S131, S1
It may be determined whether either the processing target point selected in 02 or the reference point located next to the processing target point among the reference points selected in S103 is a corner point.
【0085】図16は、S101〜S113の処理を3回行った
後の作業用点列の一例を示した図である。点202と点203
の間は処理対象点が点202であり、処理対象点の次に位
置する点が点203であるため、また、点203と点204の間
は処理対象点が点203であるため補間点が算出されてい
ない。このようにして、角点の前後では補間点が算出さ
れず、元の点列を直線分で結ぶような形状で近似するこ
とができる。FIG. 16 is a diagram showing an example of a work point sequence after performing the processing of S101 to S113 three times. Point 202 and point 203
The point to be processed is point 202 between points, and the point located next to the point to be processed is point 203, and the point to be processed is point 203 between point 203 and point 204. Not calculated. In this way, the interpolation points are not calculated before and after the corner point, and the original point sequence can be approximated by a shape connected by a straight line segment.
【0086】以上説明した曲線近似方法は、曲線近似方
法を実行するためのプログラムで実現される。このプロ
グラムはコンピュータで読み取り可能な記録媒体に格納
されている。本発明では、この記録媒体として、一般的
なコンピュータで処理が行われるために、一般的なコン
ピュータに内蔵あるいは接続されるROM(Read Only Memo
ry) などのメモリがプログラムメディアであってもよい
し、また、外部記憶装置としてプログラム読み取り装置
が設けられ、そこに記録媒体を挿入することで読み取り
可能なプログラムメディアであってもよい。The curve approximating method described above is realized by a program for executing the curve approximating method. This program is stored in a computer-readable recording medium. In the present invention, a ROM (Read Only Memo) that is built in or connected to a general computer is used as the recording medium because the process is performed by a general computer.
A memory such as ry) may be a program medium, or a program reading device provided as an external storage device and readable by inserting a recording medium therein.
【0087】いずれの場合においても、格納されている
プログラムはマイクロプロセッサがアクセスして実行さ
せる構成であってもよいし、あるいはいずれの場合もプ
ログラムを読み出し、読み出されたプログラムは、一般
的なコンピュータに構成されるRAM(Random Access Memo
ry) などのプログラム記憶エリアにダウンロードされ
て、そのプログラムが実行される方式であってもよい。
このダウンロード用のプログラムは予め本体装置に格納
されているものとする。In any case, the stored program may be configured to be accessed and executed by a microprocessor, or in any case, the program is read and the read program is a general program. RAM (Random Access Memo) configured in the computer
The program may be downloaded to a program storage area such as ry) and the program is executed.
It is assumed that this download program is stored in the main body device in advance.
【0088】ここで上記プログラムメディアは、本体と
分離可能に構成される記録媒体であり、磁気テープやカ
セットテープ等のテープ系、フレキシブルディスクやハ
ードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD等の
光ディスクのディスク系、ICカード(メモリカードを含
む)/ 光カード等のカード系、あるいはマスクROM 、EP
ROM 、EEPROM、フラッシュROM等による半導体メモリを
含めた固定的にプログラムを担持する媒体であってもよ
い。Here, the program medium is a recording medium which can be separated from the main body, and is a tape system such as a magnetic tape or a cassette tape, a magnetic disk such as a flexible disk or a hard disk, or a CD-ROM / MO / MD / Disc system of optical disc such as DVD, card system such as IC card (including memory card) / optical card, mask ROM, EP
It may be a medium that fixedly carries the program, including a semiconductor memory such as a ROM, an EEPROM, and a flash ROM.
【0089】また、本発明においてはインターネットを
含む通信ネットワークと接続可能なシステム構成である
ことから、通信ネットワークからプログラムをダウンロ
ードするように流動的にプログラムを担持する媒体を用
いてもよい。尚、このように通信ネットワークからプロ
グラムをダウンロードする場合には、そのダウンロード
用プログラムは予め本体装置に格納しておくか、あるい
は別な記録媒体からインストールされるものであっても
よい。Further, in the present invention, since the system configuration is such that it can be connected to a communication network including the Internet, it is possible to use a medium for carrying the program fluidly so as to download the program from the communication network. When the program is downloaded from the communication network in this way, the download program may be stored in the main body device in advance, or may be installed from another recording medium.
【0090】尚、記録媒体に格納されている内容として
はプログラムに限定されず、データであってもよい。The content stored in the recording medium is not limited to the program and may be data.
【0091】実施の形態1から4で説明した曲線近似方
法は、図17に示すような一般的なコンピュータを用い
て実施することができる。図17において、201は計
算処理を行うCPU (Central Processing Unit)、20
2はCPU201の処理の対象となるデータが記憶され
るメモリ、203はデータを記憶しているハードディス
クやCD-ROMなどの外部記憶装置、204は利用者が操作
してデータを入力するためのマウスやキーボードなどの
入力装置、205はCPU201が処理を行ったデータ
に応じて表示を行う表示装置、206はCPU201や
メモリ202が動作のタイミングをとるためのクロック
を発生するクロック発生器、207はCPU201、メ
モリ202、外部記憶装置203、入力装置204、表
示装置205、クロック発生器206などを相互に接続
するバスである。The curve approximating method described in the first to fourth embodiments can be implemented by using a general computer as shown in FIG. In FIG. 17, reference numeral 201 denotes a CPU (Central Processing Unit) for performing calculation processing, 20
Reference numeral 2 is a memory in which data to be processed by the CPU 201 is stored, 203 is an external storage device such as a hard disk or CD-ROM that stores data, and 204 is a mouse for a user to input data by operating it. And an input device such as a keyboard, 205 is a display device that displays according to the data processed by the CPU 201, 206 is a clock generator that generates a clock for the CPU 201 and the memory 202 to take operation timing, and 207 is the CPU 201. , A memory 202, an external storage device 203, an input device 204, a display device 205, a clock generator 206, and the like.
【0092】また、図18は本発明の曲線近似装置の構
成を説明するためのブロック図である。図18におい
て、301は形状を表している点列を記憶する点列記憶
手段、302は前記点列記憶手段301に記憶されてい
る点のうち任意の点を処理対象点として選択する処理対
象点選択手段、303は前記点列記憶手段301に記憶
されている点から、一つあるいは複数の点を参照点とし
て選択する参照点選択手段、304は前記処理対象点選
択手段302で選択された処理対象点と前記参照点選択
手段303で選択された参照点とから曲線近似するため
の補間点を算出する補間点算出手段である。前記点列記
憶手段301は前記メモリ202および外部記憶装置2
03のいずれか、あるいは両方に構成されればよい。ま
た、前記処理対象点選択手段302および前記参照点選
択手段303および前記補間点算出手段304は前記メ
モリ202に記憶されているプログラムに従って動作す
るCPU201として構成されればよい。FIG. 18 is a block diagram for explaining the structure of the curve approximating apparatus of the present invention. In FIG. 18, 301 is a point sequence storage unit that stores a point sequence representing a shape, and 302 is a processing target point that selects an arbitrary point among the points stored in the point sequence storage unit 301 as a processing target point. A selection unit, 303 is a reference point selection unit for selecting one or a plurality of points from the points stored in the point sequence storage unit 301 as a reference point, and 304 is a process selected by the processing target point selection unit 302. Interpolation point calculation means for calculating interpolation points for curve approximation from the target points and the reference points selected by the reference point selection means 303. The point sequence storage means 301 includes the memory 202 and the external storage device 2.
It may be configured to any one or both of 03. Further, the processing point selection means 302, the reference point selection means 303, and the interpolation point calculation means 304 may be configured as a CPU 201 that operates according to a program stored in the memory 202.
【0093】図18は主として実施の形態1に対応する
構成を示しているが、実施の形態2ではさらに点列を作
業用の点列に複製する作業点列準備手段、補間点を作業
用の点列に追加する手段を備える。また、実施の形態3
では、さらに処理対象点および参照点間の距離を算出す
る距離算出手段、前記距離を参照して補間点の算出の要
/不要を判断する補間点要否判断手段を備える。さらに
処理対象点および参照点で構成されるベクトルの成す角
度を算出する角度算出手段を備える。また、実施の形態
4ではさらに処理対象点あるいは参照点のうちいずれか
の点が角点であるか否かを判断する角点判断手段を備え
る。FIG. 18 mainly shows the configuration corresponding to the first embodiment, but in the second embodiment, the working point sequence preparing means for copying the point sequence into the working point sequence and the interpolating points for working are further provided. A means for adding to the point sequence is provided. In addition, the third embodiment
Then, it further comprises a distance calculation means for calculating a distance between the processing target point and the reference point, and an interpolation point necessity judgment means for judging whether the calculation of the interpolation point is necessary or unnecessary by referring to the distance. Further, it is provided with an angle calculation means for calculating an angle formed by a vector composed of the processing target point and the reference point. Further, the fourth embodiment further includes an corner point determination means for determining whether any one of the processing target point and the reference point is a corner point.
【0094】[0094]
【発明の効果】本発明に関わる曲線近似方法は、以上の
ように、複数の点からなる点列によって表される形状
を、該点列を通過する曲線として近似する方法におい
て、前記点列に含まれる任意の点を処理対象点として選
択する処理対象点選択ステップと、前記点列に含まれる
一つあるいは複数の点を参照点として選択する参照点選
択ステップと、前記処理対象点と前記参照点とから曲線
近似するための補間点を算出する補間点算出ステップ
と、を有していることを特徴としている。As described above, the curve approximation method according to the present invention is a method of approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence, A processing target point selecting step of selecting any included point as a processing target point, a reference point selecting step of selecting one or more points included in the point sequence as a reference point, the processing target point and the reference And an interpolation point calculating step of calculating an interpolation point for curve approximation from the points.
【0095】それゆえ、前記点列を通過する曲線を簡単
な処理で近似することができると共に、前記点列に含ま
れる点の一部を移動させるだけで、データ構造を変更す
ることなく、前記点列で表される図形を変形させること
ができるという効果を奏する。Therefore, the curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved without changing the data structure. An effect that the figure represented by the dot sequence can be deformed is obtained.
【0096】本発明に関わる曲線近似方法は、以上のよ
うに、複数の点からなる点列によって表される形状を、
該点列を通過する曲線として近似する方法において、前
記点列を作業用の点列に複製する作業点列準備ステップ
と、前記作業用の点列に含まれる任意の点を処理対象点
として選択する処理対象点選択ステップと、前記作業用
の点列に含まれる一つあるいは複数の点を参照点として
選択する参照点選択ステップと、前記処理対象点と前記
参照点とから曲線近似するための補間点を算出する補間
点算出ステップと、前記補間点算出ステップで算出され
た補間点を前記作業用の点列に追加する補間点追加ステ
ップとを有し、前記参照点選択ステップと補間点算出ス
テップと補間点追加ステップとを、所定の条件が満たさ
れるまで繰り返すことを特徴としている。As described above, the curve approximating method according to the present invention transforms a shape represented by a point sequence consisting of a plurality of points into
In a method of approximating as a curve passing through the point sequence, a working point sequence preparing step of duplicating the point sequence into a working point sequence, and selecting an arbitrary point included in the working point sequence as a processing target point A processing target point selecting step, a reference point selecting step of selecting one or a plurality of points included in the working point sequence as a reference point, and a curve approximation from the processing target point and the reference point An interpolation point calculation step of calculating an interpolation point, and an interpolation point addition step of adding the interpolation point calculated in the interpolation point calculation step to the working point sequence, the reference point selection step and the interpolation point calculation. It is characterized in that the step and the interpolation point adding step are repeated until a predetermined condition is satisfied.
【0097】それゆえ、前記点列を通過する曲線を簡単
な処理で近似することができると共に、前記点列に含ま
れる点の一部を移動させるだけで、データ構造を変更す
ることなく、前記点列で表される図形を変形させること
ができるという効果を奏する。更に、この近似の処理は
所定の条件が満たされるまで繰り返されるので、前記曲
線を処理量やメモリ量の制限の範囲内で可能な限り精度
よく近似することができるという効果を奏する。Therefore, the curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved without changing the data structure. An effect that the figure represented by the dot sequence can be deformed is obtained. Further, since this approximation processing is repeated until a predetermined condition is satisfied, there is an effect that the curve can be approximated as accurately as possible within the limits of the processing amount and the memory amount.
【0098】本発明に関わる曲線近似方法は、以上のよ
うに、上記の構成に加えて、前記処理対象点および前記
参照点間の距離を算出する距離算出ステップと、前記距
離算出ステップで算出された距離を参照して補間点の算
出の要/不要を判断する補間点要否判断ステップとを有
し、前記補間点算出ステップは前記補間点要否判断ステ
ップで補間点の算出を要すると判断された場合に補間点
を算出することを特徴としている。As described above, in the curve approximation method according to the present invention, in addition to the above configuration, the distance calculation step for calculating the distance between the processing target point and the reference point and the distance calculation step are performed. And an interpolating point necessity determining step for determining whether or not the interpolating point should be calculated with reference to the calculated distance, and the interpolating point calculating step determines that the interpolating point needs to be calculated in the interpolating point necessity determining step. It is characterized in that an interpolation point is calculated when it is performed.
【0099】それゆえ、さらに、不要な補間点の算出を
行わないようにすることができ、前記曲線を近似するた
めに要する処理量やメモリ量を低減させることができる
という効果を奏する。Therefore, it is possible to prevent unnecessary interpolation points from being calculated, and it is possible to reduce the processing amount and memory amount required to approximate the curve.
【0100】本発明に関わる曲線近似方法は、以上のよ
うに、上記の構成に加えて、前記処理対象点および前記
参照点で構成されるベクトルの成す角度を算出する角度
算出ステップと、前記角度算出ステップで算出された角
度を参照して補間点の算出の要/不要を判断する補間点
要否判断ステップとを有し、前記補間点算出ステップは
前記補間点要否判断ステップで補間点の算出を要すると
判断された場合に補間点を算出することを特徴としてい
る。As described above, in the curve approximation method according to the present invention, in addition to the above configuration, an angle calculation step of calculating an angle formed by a vector composed of the processing target point and the reference point, and the angle An interpolation point necessity judgment step for judging necessity / unnecessity of calculation of an interpolation point with reference to the angle calculated in the calculation step, wherein the interpolation point calculation step is performed in the interpolation point necessity judgment step. The feature is that an interpolation point is calculated when it is determined that calculation is required.
【0101】それゆえ、さらに、不要な補間点の算出を
行わないようにすることができ、前記曲線を近似するた
めに要する処理量やメモリ量を低減させることができ
る。Therefore, it is possible to prevent unnecessary interpolation points from being calculated, and it is possible to reduce the processing amount and memory amount required to approximate the curve.
【0102】本発明に関わる曲線近似方法は、以上のよ
うに、上記の構成に加えて、前記点列に含まれている点
はそれぞれが2つの線分をつないでいる角点であるか、
曲線上の点であるかを表している情報を併せて有してお
り、前記処理対象点あるいは参照点のうちのいずれかの
点が角点であるか否かを判断する角点判断ステップとを
有し、前記補間点算出ステップは前記角点判断ステップ
で該処理対象点あるいは参照点のうちのいずれかの点が
角点でないと判断された場合に補間点を算出することを
特徴としている。As described above, in the curve approximation method according to the present invention, in addition to the above-mentioned configuration, whether the points included in the point sequence are corner points connecting two line segments,
An angle point determination step for determining whether or not any one of the processing target point or the reference point is an angle point, which also has information indicating whether it is a point on a curve The interpolating point calculating step is characterized in that the interpolating point calculating step calculates the interpolating point when it is judged in the corner point judging step that any one of the processing target point or the reference point is not a corner point. .
【0103】それゆえ、さらに、形状の一部に折れ曲が
り箇所を含んでいる場合でも、該折れ曲がり箇所を表す
角点に対しては上述の補間点の算出を行わないので、該
角点と、その前後の点とは元の点列で表される形状と同
じ形状となり、曲線を当てはめる処理を行うことなく、
複雑な図形を近似することができるという効果を奏す
る。Therefore, even when a part of the shape includes a bending point, the above-mentioned interpolation point is not calculated for the corner point representing the bending point. The front and back points have the same shape as the shape represented by the original point sequence, and without the curve fitting process,
It is possible to approximate a complicated figure.
【0104】本発明の曲線近似装置は、以上のように、
複数の点からなる点列によって表される形状を、該点列
を通過する曲線として近似する装置において、前記点列
に含まれている点を記憶する点列記憶手段と、前記点列
記憶手段に記憶されている点のうち任意の点を処理対象
点として選択する処理対象点選択手段と、前記点列記憶
手段に記憶されている点から、一つあるいは複数の点を
参照点として選択する参照点選択手段と、前記処理対象
点と前記参照点とから曲線近似するための補間点を算出
する補間点算出手段と、を有していることを特徴として
いる。The curve approximating apparatus of the present invention, as described above,
In a device for approximating a shape represented by a point sequence composed of a plurality of points as a curve passing through the point sequence, a point sequence storage means for storing the points included in the point sequence, and the point sequence storage means. One or a plurality of points is selected as a reference point from the processing target point selecting means for selecting an arbitrary point as a processing target point from the points stored in and the points stored in the point sequence storage means. It is characterized in that it has a reference point selecting means and an interpolation point calculating means for calculating an interpolation point for curve approximation from the processing target point and the reference point.
【0105】それゆえ、前記点列を通過する曲線を簡単
な処理で近似することができると共に、前記点列に含ま
れる点の一部を移動させるだけで、データ構造を変更す
ることなく、前記点列で表される図形を変形させること
ができるという効果を奏する。Therefore, the curve passing through the point sequence can be approximated by a simple process, and only a part of the points included in the point sequence can be moved without changing the data structure. An effect that the figure represented by the dot sequence can be deformed is obtained.
【0106】本発明に関わる曲線近似プログラムは、上
述の曲線近似方法をコンピュータに実行させるための曲
線近似プログラムである。A curve approximation program according to the present invention is a curve approximation program for causing a computer to execute the above-described curve approximation method.
【0107】それゆえ、一般的なコンピュータが上述の
曲線近似方法を実行することを実現できるという効果を
奏する。Therefore, there is an effect that a general computer can realize the above-described curve approximation method.
【図1】本発明の第1の実施形態の処理の流れを説明す
るためのフローチャートである。FIG. 1 is a flowchart for explaining a flow of processing according to a first embodiment of the present invention.
【図2】配列のデータ構造で管理されている点列の具体
的な例を示す図である。FIG. 2 is a diagram showing a specific example of a point sequence managed by an array data structure.
【図3】図2の点列の例を図示した図である。FIG. 3 is a diagram illustrating an example of the point sequence in FIG.
【図4】補間点の座標の例である。FIG. 4 is an example of coordinates of interpolation points.
【図5】図3に示した点列に図4の補間点を併せて図示
した図である。5 is a diagram showing the point sequence shown in FIG. 3 and the interpolation points shown in FIG. 4 together.
【図6】本発明の第2の実施形態の処理の流れを説明す
るためのフローチャートである。FIG. 6 is a flowchart illustrating a processing flow of the second embodiment of the present invention.
【図7】S101〜S113の処理を1回行った後の作業用点列
の状態を示す図である。FIG. 7 is a diagram showing a state of a work point sequence after performing the processing of S101 to S113 once.
【図8】図7の作業用点列に対して、S101〜S113の処理
を行った後の作業用点列の状態を示す図である。8 is a diagram showing a state of a work point sequence after performing the processing of S101 to S113 on the work point sequence of FIG.
【図9】補間点の生成処理を繰り返して生成された補間
点のうち一部を図示した図である。FIG. 9 is a diagram illustrating a part of the interpolation points generated by repeating the interpolation point generation processing.
【図10】図9に示した範囲のうちの一部を更に拡大し
て図示した図である。FIG. 10 is a diagram further enlarging a part of the range shown in FIG.
【図11】本発明の第3の実施形態の処理の流れを説明
するためのフローチャートである。FIG. 11 is a flowchart for explaining a processing flow according to the third embodiment of the present invention.
【図12】S101〜S113の処理を3回行った後の作業用点
列の一例を示した図である。FIG. 12 is a diagram showing an example of a work point sequence after performing the processing of S101 to S113 three times.
【図13】本発明の第4の実施形態の処理の流れを説明
するためのフローチャートである。FIG. 13 is a flowchart illustrating a processing flow according to a fourth embodiment of the present invention.
【図14】角点であるか否かを表す情報を付与したデー
タの例を示している。FIG. 14 shows an example of data to which information indicating whether it is a corner point is added.
【図15】図14の点列の例を図示した図である。FIG. 15 is a diagram illustrating an example of the point sequence in FIG.
【図16】S101〜S113の処理を3回行った後の作業用点
列の一例を示した図である。FIG. 16 is a diagram showing an example of a work point sequence after performing the processing of S101 to S113 three times.
【図17】本発明の曲線近似方法に用いられる一般的な
コンピュータの構成を示すブロック図である。FIG. 17 is a block diagram showing the configuration of a general computer used in the curve approximation method of the present invention.
【図18】本発明の曲線近似装置の構成を説明するため
のブロック図である。FIG. 18 is a block diagram for explaining the configuration of a curve approximating apparatus of the present invention.
【図19】従来の曲線近似方法の例を説明するための図
である。FIG. 19 is a diagram for explaining an example of a conventional curve approximation method.
【図20】従来の曲線近似方法の例を説明するための図
である。FIG. 20 is a diagram for explaining an example of a conventional curve approximation method.
S102 処理対象点選択ステップ S103 参照点選択ステップ S104 補間点算出ステップ S111 作業点列準備ステップ S113 補間点追加ステップ S121 距離算出ステップ S122 補間点要否判断ステップ S102 Process target point selection step S103 Reference point selection step S104 Interpolation point calculation step S111 Work point sequence preparation step S113 Interpolation point addition step S121 Distance calculation step S122 Interpolation point necessity determination step
Claims (8)
形状を、該点列を通過する曲線として近似する方法にお
いて、前記点列に含まれる任意の点を処理対象点として
選択する処理対象点選択ステップと、前記点列に含まれ
る一つあるいは複数の点を参照点として選択する参照点
選択ステップと、前記処理対象点と前記参照点とから曲
線近似するための補間点を算出する補間点算出ステップ
と、を有していることを特徴としている曲線近似方法。1. A method of approximating a shape represented by a point sequence composed of a plurality of points as a curve passing through the point sequence, wherein a processing target for selecting an arbitrary point included in the point sequence as a processing target point A point selecting step, a reference point selecting step for selecting one or a plurality of points included in the point sequence as reference points, and an interpolation for calculating an interpolation point for curve approximation from the processing target point and the reference point. A curve approximation method comprising: a point calculation step.
形状を、該点列を通過する曲線として近似する方法にお
いて、前記点列を作業用の点列に複製する作業点列準備
ステップと、前記作業用の点列に含まれる任意の点を処
理対象点として選択する処理対象点選択ステップと、前
記作業用の点列に含まれる一つあるいは複数の点を参照
点として選択する参照点選択ステップと、前記処理対象
点と前記参照点とから曲線近似するための補間点を算出
する補間点算出ステップと、前記補間点算出ステップで
算出された補間点を前記作業用の点列に追加する補間点
追加ステップとを有し、前記参照点選択ステップと補間
点算出ステップと補間点追加ステップとを、所定の条件
が満たされるまで繰り返すことを特徴としている曲線近
似方法。2. A method for approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence, a work point sequence preparing step of copying the point sequence into a work point sequence. A processing target point selecting step of selecting an arbitrary point included in the working point sequence as a processing target point, and a reference point selecting one or a plurality of points included in the working point sequence as a reference point A selection step, an interpolation point calculation step of calculating an interpolation point for curve approximation from the processing target point and the reference point, and an interpolation point calculated in the interpolation point calculation step is added to the working point sequence. And a step of adding the interpolation point, wherein the step of selecting the reference point, the step of calculating the interpolation point, and the step of adding the interpolation point are repeated until a predetermined condition is satisfied.
離を算出する距離算出ステップと、前記距離算出ステッ
プで算出された距離を参照して補間点の算出の要/不要
を判断する補間点要否判断ステップとを有し、前記補間
点算出ステップは前記補間点要否判断ステップで補間点
の算出を要すると判断された場合に補間点を算出するこ
とを特徴とする、請求項1または2に記載の曲線近似方
法。3. A distance calculation step for calculating a distance between the processing target point and the reference point, and an interpolation point for judging necessity / non-necessity of calculation of an interpolation point by referring to the distance calculated in the distance calculation step. 3. The method according to claim 1, further comprising: a necessity determination step, wherein the interpolation point calculation step calculates the interpolation point when it is determined in the interpolation point necessity determination step that the interpolation point needs to be calculated. The curve approximation method described in 2.
されるベクトルの成す角度を算出する角度算出ステップ
と、前記角度算出ステップで算出された角度を参照して
補間点の算出の要/不要を判断する補間点要否判断ステ
ップとを有し、前記補間点算出ステップは前記補間点要
否判断ステップで補間点の算出を要すると判断された場
合に補間点を算出することを特徴とする、請求項1また
は2に記載の曲線近似方法。4. An angle calculation step of calculating an angle formed by a vector composed of the processing target point and the reference point, and necessity / non-necessity of calculation of an interpolation point by referring to the angle calculated in the angle calculation step. And a step of determining whether or not an interpolation point is required, wherein the interpolation point calculation step calculates an interpolation point when it is determined in the interpolation point necessity determination step that an interpolation point needs to be calculated. The curve approximation method according to claim 1 or 2.
2つの線分をつないでいる角点であるか、曲線上の点で
あるかを表している情報を併せて有しており、前記処理
対象点あるいは参照点のうちのいずれかの点が角点であ
るか否かを判断する角点判断ステップとを有し、前記補
間点算出ステップは前記角点判断ステップで該処理対象
点あるいは参照点のうちのいずれかの点が角点でないと
判断された場合に補間点を算出することを特徴とする、
請求項1または2に記載の曲線近似方法。5. The points included in the point sequence also have information indicating whether they are corner points connecting two line segments or points on a curve. A corner point determining step of determining whether any one of the processing target point or the reference point is a corner point, and the interpolation point calculation step is performed by the corner point determining step. Characterized in that an interpolation point is calculated when it is determined that one of the points or the reference points is not a corner point,
The curve approximation method according to claim 1.
形状を、該点列を通過する曲線として近似する装置にお
いて、前記点列に含まれている点を記憶する点列記憶手
段と、前記点列記憶手段に記憶されている点のうち任意
の点を処理対象点として選択する処理対象点選択手段
と、前記点列記憶手段に記憶されている点から、一つあ
るいは複数の点を参照点として選択する参照点選択手段
と、前記処理対象点と前記参照点とから曲線近似するた
めの補間点を算出する補間点算出手段と、を有している
ことを特徴としている曲線近似装置。6. An apparatus for approximating a shape represented by a point sequence composed of a plurality of points as a curve passing through the point sequence, and point sequence storage means for storing the points included in the point sequence, One or a plurality of points are selected from the processing target point selection means for selecting an arbitrary point as a processing target point from the points stored in the point sequence storage means, and the points stored in the point sequence storage means. A curve approximating device comprising: a reference point selecting means for selecting as a reference point; and an interpolation point calculating means for calculating an interpolation point for curve approximation from the processing target point and the reference point. .
形状を、該点列を通過する曲線として近似する装置にお
いて、前記点列に含まれている点を記憶する点列記憶手
段と、前記点列記憶手段に記憶されている点列を作業用
の点列に複製する作業点列準備手段と、前記作業用の点
列に含まれる任意の点を処理対象点として選択する処理
対象点選択手段と、前記作業用の点列に含まれる一つあ
るいは複数の点を参照点として選択する参照点選択手段
と、前記処理対象点と前記参照点とから曲線近似するた
めの補間点を算出する補間点算出手段と、前記補間点算
出手段で算出された補間点を前記作業用の点列に追加す
る補間点追加手段とを有し、前記参照点選択手段と補間
点算出手段と補間点追加手段とを、所定の条件が満たさ
れるまで繰り返すことを特徴としている曲線近似装置。7. An apparatus for approximating a shape represented by a point sequence consisting of a plurality of points as a curve passing through the point sequence, and a point sequence storage means for storing the points included in the point sequence, Work point sequence preparation means for copying the point sequence stored in the point sequence storage means to a work point sequence, and a processing target point for selecting any point included in the work point sequence as a processing target point Selecting means, reference point selecting means for selecting one or a plurality of points included in the working point sequence as reference points, and calculating interpolation points for curve approximation from the processing target points and the reference points Interpolation point calculating means and interpolation point adding means for adding the interpolation points calculated by the interpolation point calculating means to the working point sequence, and the reference point selecting means, the interpolation point calculating means, and the interpolation point. Repeat the additional means until the prescribed conditions are met. And a curve approximation device.
の曲線近似方法をコンピュータに実行させるための曲線
近似プログラム。8. A curve approximation program for causing a computer to execute the curve approximation method according to any one of claims 1 to 5.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001237542A JP2003051020A (en) | 2001-08-06 | 2001-08-06 | Method and device for approximating curve and curve approximation program to be used therefor |
PCT/JP2002/007694 WO2003015031A1 (en) | 2001-08-06 | 2002-07-29 | Curve approximation method, curve approximation apparatus, and curve approximation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001237542A JP2003051020A (en) | 2001-08-06 | 2001-08-06 | Method and device for approximating curve and curve approximation program to be used therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003051020A true JP2003051020A (en) | 2003-02-21 |
Family
ID=19068612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001237542A Pending JP2003051020A (en) | 2001-08-06 | 2001-08-06 | Method and device for approximating curve and curve approximation program to be used therefor |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2003051020A (en) |
WO (1) | WO2003015031A1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6022280A (en) * | 1983-07-18 | 1985-02-04 | Nippon Telegr & Teleph Corp <Ntt> | Graphic generating device |
JP2663857B2 (en) * | 1993-12-03 | 1997-10-15 | 日本電気株式会社 | Approximation curve generator |
JPH08329261A (en) * | 1995-05-31 | 1996-12-13 | Canon Inc | Parameteric curve generator |
JP3555411B2 (en) * | 1997-11-11 | 2004-08-18 | 日本ビクター株式会社 | Vector data interpolation method, vector data interpolation device, and storage medium storing vector data interpolation program |
-
2001
- 2001-08-06 JP JP2001237542A patent/JP2003051020A/en active Pending
-
2002
- 2002-07-29 WO PCT/JP2002/007694 patent/WO2003015031A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2003015031A1 (en) | 2003-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11830143B2 (en) | Tessellation method using recursive sub-division of triangles | |
US11900543B2 (en) | Tessellation method using displacement factors | |
US6608631B1 (en) | Method, apparatus, and computer program product for geometric warps and deformations | |
US9053553B2 (en) | Methods and apparatus for manipulating images and objects within images | |
JP6301590B2 (en) | Design of 3D modeling objects | |
US8098244B2 (en) | Evolutionary direct manipulation of free form deformation representations for design optimization | |
JP2008033940A (en) | Run time/computer graphic animation/conversion in engine from deformation data for mesh to animation data for skeleton, skinning, and shading | |
JPH04287292A (en) | Method and device for rendering trimmed parametric surface | |
MX2007014662A (en) | Large mesh deformation using the volumetric graph laplacian. | |
US6603473B1 (en) | Detail data pertaining to the shape of an object surface and related methods and systems | |
JPH06124314A (en) | Computer aided design system and method for correcting geometrical object in system thereof | |
Bischoff et al. | Towards hardware implementation of loop subdivision | |
US6222553B1 (en) | Hybrid subdivision in computer graphics | |
JP2002520750A (en) | Numerical calculation method of parameterized surface in eigenspace of subdivision matrix of irregular patch | |
US7982732B2 (en) | Evolutionary design optimization using extended direct manipulation of free form deformations | |
US7015917B2 (en) | Curved surface subdivision apparatus | |
JP2003051020A (en) | Method and device for approximating curve and curve approximation program to be used therefor | |
Chen et al. | Ray casting free‐form deformed‐volume objects | |
US6920415B1 (en) | Method of trimming a representation of an object surface comprising a mesh of tessellated polygons and related system | |
JP2003006552A (en) | Simulation system, simulation method and simulation program | |
JP4479957B2 (en) | Curved surface subdivision device | |
JP3511301B2 (en) | Surface data generation method | |
JP3019283B2 (en) | Curved boundary condition generator | |
Kahler et al. | Dynamic refinement of deformable triangle meshes for rendering | |
JPH11242752A (en) | Image generating device and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050628 |