JPH06251161A - Curved line/curved surface display method and graphic display system - Google Patents

Curved line/curved surface display method and graphic display system

Info

Publication number
JPH06251161A
JPH06251161A JP5035618A JP3561893A JPH06251161A JP H06251161 A JPH06251161 A JP H06251161A JP 5035618 A JP5035618 A JP 5035618A JP 3561893 A JP3561893 A JP 3561893A JP H06251161 A JPH06251161 A JP H06251161A
Authority
JP
Japan
Prior art keywords
weight
subset
curve
division
weights
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
Application number
JP5035618A
Other languages
Japanese (ja)
Inventor
Toshiharu Kawasaki
敏治 川崎
Tooru Sakaihara
徹 酒井原
Toshiyuki Kuwana
利幸 桑名
Tatsuyoshi Nakamura
辰喜 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP5035618A priority Critical patent/JPH06251161A/en
Publication of JPH06251161A publication Critical patent/JPH06251161A/en
Pending legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

PURPOSE:To provide a display method for a free curved line/curved surface without generating division by zero, the underfined number of partitions, system down, runaway, and erroneous display, etc., in the calculation of the number of partitions when a curved line/curved surface is approximated to a polygonal line or polyhedron even when any kind of set of weight with respect to a curved line/curved surface to be displayed is supplied. CONSTITUTION:The curved line/curved surface stored in a filing device 813 in advance or inputted from a mouse 804, etc., is stored in a memory 802. A program to decide the number of partitions used when the curved line/curved surface is approximated to the polygonal line or polyhedron is stored in the device 813. When the number of portions is decided, calculation is performed by separating the weight into positive, zero, and negative parts. The program is read out by the memory 802, and is executed by a CPU 801, then, the number of polygonal lines/polyhedrons is decided, and the graphic data on the curved line/curved surface is generated, and is stored in the memory 802, and it is transferred to a graphic subsystem 807, then, it is displayed on a CRT 811.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、曲線及び曲面をグラフ
ィックディスプレイ等に表示する際の曲線・曲面の表示
方法および装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for displaying a curved line / curved surface when displaying the curved line / curved surface on a graphic display or the like.

【0002】[0002]

【従来の技術】最近のグラフィックシステムは、テキス
ト、折線、多面体等に加え、曲線や曲面(自由曲線や自
由曲面)のようなより一般的なプリミティブの表示機能
を備えている。然し、従来のグラフィックシステムにお
いて、自由曲線及び自由曲面を表示する方法は、多くの
場合次の様に行っていた。即ち、自由曲線及び自由曲面
をアプリケーション側で一旦適当な分割数(大抵は、固
定値)で分割し、折線及び多面体で近似したものを作成
し、グラフィックシステムへは近似した折線及び多面体
を送り、グラフィックシステムはその折線及び多面体を
表示するような方式である。然し、この方式は、以下に
挙げるような不利益を含む。
2. Description of the Related Art Recent graphic systems have a display function of more general primitives such as a curve, a curved surface (a free curve or a free curved surface) in addition to a text, a polygonal line, a polyhedron and the like. However, in a conventional graphic system, a method of displaying a free curve and a free curved surface is often performed as follows. That is, the free-form curve and the free-form surface are temporarily divided on the application side by an appropriate division number (usually a fixed value), an approximation is made with polygonal lines and polyhedra, and the approximate polyline and polyhedron are sent to the graphic system. The graphic system is a system that displays the polygonal lines and the polyhedron. However, this method has the following disadvantages.

【0003】(1)自由曲線及び自由曲面のデータ量よ
りは、それらの曲線及び曲面を近似するための折線及び
多面体の方がデータ量が大きい。従って、アプリケーシ
ョンとグラフィックシステム間での通信量が多くなる。
(1) The data amount of a polygonal line and a polyhedron for approximating the curved line and the curved surface is larger than that of the free curve and the curved surface. Therefore, the amount of communication between the application and the graphic system increases.

【0004】(2)アプリケーション側では、グラフィ
ックシステムが表示するディスプレイ上でのサイズが把
握出来ない。従って、分割数を上記の様にシステム固有
にするなどの必要があり、結局過剰に又は過少に分割す
ることが避けられない。
(2) The application side cannot grasp the size on the display displayed by the graphic system. Therefore, it is necessary to make the number of divisions peculiar to the system as described above, and it is inevitable that the number of divisions is excessive or excessive.

【0005】以上の問題を解決するため、最近では、グ
ラフィックシステムが、自由曲線及び自由曲面の定義式
又は制御点を受け取り、分割数を計算し、折線及び多面
体に分割し、表示するシステムが現れた。このようなシ
ステムにおいては、上記二つの問題は解決され、更に、
後述する NURB (non-uniform rational B-spline) 曲線
・曲面や Bezier 曲線・曲面のように凸包性を有する自
由曲線・曲面におけるクリッピング判定も制御点のみか
ら出来、全体の性能向上が望める。
In order to solve the above problems, recently, a graphic system has appeared, which receives definition equations or control points of free-form curves and free-form surfaces, calculates the number of divisions, divides them into polygonal lines and polyhedra, and displays them. It was In such a system, the above two problems are solved, and further,
Clipping judgment on free-form curves / curved surfaces having convex hullness such as NURB (non-uniform rational B-spline) curves / curved surfaces and Bezier curves / curved surfaces, which will be described later, can be performed only from the control points, and overall performance can be improved.

【0006】ここで、凸包性とは、次のことを言う。先
ず、線形空間 X において、点集合{xi|i∈I} の凸包 co
{xi|i∈I} とは、総ての点 xi を含む最小の凸集合のこ
とである。ここで、I は、添字集合である。特に、I が
有限集合 {1, 2, …, n}の場合
Here, the convex hull property means the following. First, in the linear space X, the convex hull co of the point set {x i | i ∈ I}
{x i | i ∈ I} is the smallest convex set containing all points x i . Where I is the set of subscripts. Especially when I is a finite set {1, 2,…, n}

【0007】[0007]

【数1】 [Equation 1]

【0008】で与えられる。次に、凸包性を説明する。
区間 [a, b] を定義域とする自由曲線が、制御点の集合
{Pi|i = 1, 2, …, n} から定まっているとき、曲線 c
が凸包性を持つとは、曲線上の任意の点が co{Pi|i =
1, 2, …, n} に含まれることである。即ち、任意の t
∈[a, b] に対して、c(t)∈co{Pi|i = 1, 2, …, n} が
成り立つことである。同様に、矩形領域 [a, b]×[c,
d] を定義域とする自由曲面が、制御点の集合 {Pij|i =
1, 2, …, m; j = 1, 2, …, n} から定まっていると
き、曲面 s が凸包性を持つとは、曲面上の任意の点が
co{Pij|i = 1, 2,…, m; j = 1, 2, …, n} に含まれる
ことである。即ち、任意の (u, v)∈[a, b]×[c, d] に
対して、s(u, v)∈co{Pij|i = 1, 2, …, m; j = 1, 2,
…, n} が成り立つことである。
Is given by Next, the convex hull property will be described.
A free-form curve whose domain is the interval [a, b] is a set of control points
When determined from {P i | i = 1, 2,…, n}, the curve c
Has a convex hull property if any point on the curve is co {P i | i =
It is included in 1, 2,…, n}. That is, any t
For ∈ [a, b], c (t) ∈ co {P i | i = 1, 2,…, n}. Similarly, rectangular area [a, b] × [c,
The free-form surface whose domain is d] is the set of control points {P ij | i =
When 1, 2,…, m; j = 1, 2,…, n}, the surface s has convex hullness and any point on the surface is
co {P ij | i = 1, 2,…, m; j = 1, 2,…, n}. That is, for any (u, v) ∈ [a, b] × [c, d], s (u, v) ∈ co {P ij | i = 1, 2,…, m; j = 1 , 2,
…, N} is established.

【0009】一般に、曲線を直接ドット列として発生さ
せようとすると複雑な処理を必要とするため、複数の連
続した線分からなる折線で近似して表示する。線分を発
生するには、例えば、DDA(Digital Differential An
alizer)を用いる方法がある。 即ち、曲線の折線近似
は、曲線上に適当なN(≧1)個の分割点を採り、始点と
第1番目の分割点、第1番目の分割点と第2番目の分割
点、……、第N−1番目の分割点と第N番目の分割点、
第N番目の分割点と終点とを線分で結ぶことによってな
される。
Generally, since it is necessary to perform a complicated process to directly generate a curved line as a dot row, the curved line is approximated by a polygonal line and displayed. To generate a line segment, for example, DDA (Digital Differential An
alizer). That is, in the polygonal line approximation of the curve, appropriate N (≧ 1) dividing points are taken on the curve, and the starting point and the first dividing point, the first dividing point and the second dividing point, ... , The (N-1) th division point and the Nth division point,
This is done by connecting the Nth division point and the end point with a line segment.

【0010】同様に、曲面を直接ドット列として発生さ
せようとすると複雑な処理を必要とするため、複数の連
続した多角形からなる開多面体又は閉多面体で近似して
表示する。多角形を塗り潰すドット列を発生するには、
線分発生の場合と同様に、三次元のDDAを用いる方法
がある。
Similarly, since a complicated process is required to directly generate a curved surface as a dot array, it is approximated and displayed by an open polyhedron or a closed polyhedron composed of a plurality of continuous polygons. To generate a string of dots that fills a polygon,
Similar to the case of generating line segments, there is a method of using a three-dimensional DDA.

【0011】即ち、曲面の開多面体近似又は閉多面体近
似は、曲面上に適当なM×N個(M,N≧1)の分割点を
採り、このようにして出来る格子を四角形又は更に対角
線で分割した三角形の集まりとして近似する。
That is, in the open polyhedron approximation or the closed polyhedron approximation of a curved surface, appropriate M × N (M, N ≧ 1) dividing points are taken on the curved surface, and a grid formed in this way is formed into a quadrangle or a diagonal line. It is approximated as a set of divided triangles.

【0012】曲線及び曲面の分割点の求め方としては、
曲線及び曲面の各座標がパラメータによる数式で表現さ
れている場合に、パラメータの値を始点から終点までで
等分し、各パラメータの値における点を分割点とする方
法がある。この分割数を求める方法としては、従来“Su
rface algorithms using bounds on derivatives”(D.
Filip, R. Magedson, and R. Markot, 1986)や“Real-t
ime rendering of trimmed surfaces”(A. Rockwood,
K. Heaton, and T. Davis, 1989)等に記載されているよ
うな方法がある。
As a method of obtaining the dividing points of the curve and the curved surface,
In the case where each coordinate of a curve and a curved surface is expressed by a mathematical expression based on a parameter, there is a method in which the value of the parameter is equally divided from the start point to the end point and the point at each parameter value is used as a division point. The conventional method for obtaining this number of divisions is "Su
rface algorithms using bounds on derivatives ”(D.
Filip, R. Magedson, and R. Markot, 1986) and “Real-t
ime rendering of trimmed surfaces ”(A. Rockwood,
K. Heaton, and T. Davis, 1989).

【0013】[0013]

【発明が解決しようとする課題】上記の自由曲線・曲面
表示装置は、自由曲線及び自由曲面の折線及び多面体で
近似を行う処理部分と、折線及び多面体の表示を行う処
理部分とに大きく分類される。折線及び多面体で近似を
行う処理部分は、自由曲線及び自由曲面の定義域を等分
割する分割数の計算、分割点より作られる折線及び多面
体の頂点座標の計算、及び、曲面においては単位法線の
計算を含む。
The above-described free-form curve / curved surface display device is roughly classified into a processing part for approximating the free-form curve and the free-form surface with polygonal lines and polyhedra, and a processing part for displaying the polyline and polyhedron. It The processing part that approximates with polygonal lines and polyhedrons is the calculation of the number of divisions that divide the domain of free-form curves and free-form surfaces equally, the calculation of the vertex coordinates of polygonal lines and polyhedra created from the division points, and the unit normal for curved surfaces. Including the calculation of.

【0014】分割数計算の上記従来技術は、何れも制御
点のウェイト(後に詳述)での除算を含んでおり、ウェ
イトが0の場合が想定されていなかった。然し、ディス
プレイ上の表示サイズに応じた分割数を計算する場合な
ど透視変換を行う必要があるが、例え、自由曲線及び自
由曲面の定義時にウェイトが0でなくとも、透視変換後
にウェイトが0になることが起こり得る。従って、ウェ
イトに0のものが発生するとグラフィックシステムがシ
ステムダウンする、又は、分割数が不定となるために暴
走又は正しい表示が得られないなどの不具合が起こる。
All of the above-mentioned conventional techniques for calculating the number of divisions include division by the weight (detailed later) of the control point, and the case where the weight is 0 was not assumed. However, it is necessary to perform perspective transformation when calculating the number of divisions according to the display size on the display, for example, even if the weight is not 0 when the free curve and free curved surface are defined, the weight becomes 0 after the perspective transformation. It can happen. Therefore, if a weight of 0 occurs, the graphic system will be down, or the number of divisions will be indeterminate, causing problems such as runaway or incorrect display.

【0015】本発明は、表示すべき自由曲線及び自由曲
面の制御点のウェイトに0のものがあっても、上記不具
合が現れない自由曲線・曲面表示方法および装置を提供
することを目的とする。
It is an object of the present invention to provide a free curve / curved surface display method and apparatus in which the above-mentioned problems do not appear even if the weights of the control points of the free curve and free curved surface to be displayed are zero. .

【0016】[0016]

【問題を解決するための手段】上記課題を解決するため
に本発明によれば、表示すべき曲線の制御点の集合と、
該制御点に掛かるウェイトの集合と、曲線を折線で近似
する際の精度に関する許容誤差値とを保持するための記
憶手段と、制御点の集合及びウェイトの集合により定ま
る曲線を折線で近似する折線近似手段と、折線を表示す
る表示手段とを備えるグラフィック表示システムにおい
て、折線近似手段は、許容誤差値、制御点の集合及びウ
ェイトの集合に基づいて、曲線を折線により近似する際
の折線の数を決定するための分割数計算手段を備えるこ
とができる。
According to the present invention for solving the above problems, a set of control points of a curve to be displayed,
Storage means for holding a set of weights applied to the control points and an allowable error value regarding accuracy when the curve is approximated by a polygonal line, and a polygonal line for approximating the curve defined by the set of control points and the set of weights with a polygonal line In the graphic display system including the approximating means and the displaying means for displaying the polygonal line, the polygonal line approximating means determines the number of polygonal lines when approximating the curve by the polygonal line based on the tolerance value, the set of control points and the set of weights. It is possible to provide a division number calculation means for determining.

【0017】この分割数計算手段は、ウェイトの集合
を、ウェイトが0である部分集合と、ウェイトが0でな
い部分集合とに分離して、それぞれの部分集合について
折線の数を決定するための演算を行なう分離演算手段
と、この分離演算手段により部分集合について演算され
た演算結果を統合し、折線の数を決定する統合演算手段
と、を備えることができる。
This division number calculation means separates the set of weights into a subset with a weight of 0 and a subset with a non-zero weight, and performs an operation for determining the number of broken lines for each subset. It is possible to provide a separation calculation means for performing the above and a calculation processing means for integrating the calculation results calculated for the subset by the separation calculation means to determine the number of broken lines.

【0018】前記分離演算手段は、ウェイトが0でない
部分集合についてはウェイトによる除算をおこなうプロ
セスを有し、ウェイトが0の部分についてはウェイトに
よる除算をおこなうプロセスを有しない手段とすること
ができる。
The separation calculating means may be a means that has a process of performing division by weight for a subset whose weight is not 0, and does not have a process of performing division by weight for a portion whose weight is 0.

【0019】また、表示すべき曲面の制御点の集合と、
該制御点に掛かるウェイトの集合と、曲面を多面体で近
似する際の精度に関する許容誤差値とを保持するための
記憶手段と、制御点の集合、及び、ウェイトの集合によ
り定まる曲面を多面体で近似する多面体近似手段と、多
面体を表示する表示手段とを備えるグラフィック表示シ
ステムにおいて、多面体近似手段は、許容誤差値、制御
点の集合及びウェイトの集合に基づいて、曲面を多面体
により近似する際の多面体の数を決定するための演算を
行なう分割数計算手段を備えることもできる。
Further, a set of curved surface control points to be displayed,
A storage means for holding a set of weights applied to the control points and a tolerance value regarding accuracy when approximating a curved surface with a polyhedron, a set of control points, and a curved surface defined by the set of weights are approximated with a polyhedron In a graphic display system comprising a polyhedron approximating means for displaying a polyhedron, the polyhedron approximating means is a polyhedron when approximating a curved surface by a polyhedron based on a tolerance value, a set of control points and a set of weights. It is also possible to provide a division number calculating means for performing an operation for determining the number of.

【0020】この分割数計算手段は、ウェイトの集合
を、ウェイトが0である部分集合と、ウェイトが0でな
い部分集合とに分離して、それぞれの部分集合につい
て、多面体の数を決定するための演算を行なう分離演算
手段と、この分離演算手段により部分集合について演算
された演算結果を統合し、多面体の数を決定する統合演
算手段とを備えることもできる。
The division number calculation means separates the set of weights into a subset with a weight of 0 and a subset with a non-zero weight, and determines the number of polyhedra for each subset. It is also possible to provide a separation calculation means for performing a calculation and an integration calculation means for determining the number of polyhedra by integrating the calculation results calculated by the separation calculation means for the subset.

【0021】前記分離演算手段は、ウェイトが0でない
部分集合についてはウェイトによる除算をおこなうプロ
セスを有し、ウェイトが0の部分についてはウェイトに
よる除算をおこなうプロセスを有しないとすることもで
きる。
The separating operation means may have a process of performing division by weight for a subset whose weight is not 0, and may not have a process of performing division by weight for a part whose weight is 0.

【0022】[0022]

【作用】曲線を表示する場合の折線による近似に際し
て、許容誤差値、制御点の集合及びウェイトの集合に基
づいて折線の数を決定する。
When the curve is displayed by the broken line, the number of broken lines is determined based on the tolerance value, the set of control points and the set of weights.

【0023】この折線の数の決定に際して、ウェイトの
集合を、ウェイトが0である部分集合とウェイトが0で
ない部分集合とに分離して、それぞれの部分集合につい
て折線の数を決定するための演算を行なう。このように
部分集合について演算された演算結果を統合して折線の
数を決定する。
In determining the number of polygonal lines, a set of weights is divided into a subset having a weight of 0 and a subset having a weight of not 0, and an operation for determining the number of polygonal lines for each subset. Do. In this way, the calculation results calculated for the subsets are integrated to determine the number of broken lines.

【0024】上記の演算に際して、ウェイトが0でない
部分集合においてはウェイトによる除算をおこなうプロ
セスを有し、ウェイトが0の部分集合においてはウェイ
トによる除算をおこなうプロセスを有しない。演算に際
して、ウェイトが0の部分においては、ウェイトによる
除算を行なわずに、ウェイトが0でない部分におけるウ
ェイトの絶対値の最小値による除算をおこなう。
In the above calculation, a process of performing division by weight is performed in a subset whose weight is not 0, and a process of performing division by weight is not performed in a subset whose weight is 0. In the calculation, in the portion where the weight is 0, the division by the weight is not performed, but the division is performed by the minimum absolute value of the weight in the portion where the weight is not 0.

【0025】曲面を表示する場合の多面体による近似に
際して、許容誤差値、制御点の集合及びウェイトの集合
に基づいて多面体の数を決定する。
When approximating with a polyhedron when displaying a curved surface, the number of polyhedrons is determined based on a tolerance value, a set of control points, and a set of weights.

【0026】この多面体の数の決定に際して、ウェイト
の集合を、ウェイトが0である部分集合とウェイトが0
でない部分集合とに分離して、それぞれの部分集合につ
いて多面体の数を決定するための演算を行なう。このよ
うに部分集合について演算された演算結果を統合して多
面体の数を決定する。
In determining the number of polyhedra, a set of weights is divided into a subset having a weight of 0 and a weight of 0.
And a calculation for determining the number of polyhedra for each subset. In this way, the number of polyhedra is determined by integrating the calculation results calculated for the subsets.

【0027】上記の演算に際して、ウェイトが0でない
部分集合においてはウェイトによる除算をおこなうプロ
セスを有し、ウェイトが0の部分集合においてはウェイ
トによる除算をおこなうプロセスを有しない。演算に際
して、ウェイトが0の部分においては、ウェイトによる
除算を行なわずに、ウェイトが0でない部分におけるウ
ェイトの絶対値の最小値による除算をおこなう。
In the above calculation, a process of performing division by weight is included in a subset whose weight is not 0, and a process of performing division by weight is not included in a subset whose weight is 0. In the calculation, in the portion where the weight is 0, the division by the weight is not performed, but the division is performed by the minimum absolute value of the weight in the portion where the weight is not 0.

【0028】従って、ウェイトに0のものがあってもグ
ラフィックシステムがシステムダウンする、又は、分割
数が不定となるために暴走又は正しい表示が得られない
などの不具合が起こらない。
Therefore, even if the weight is 0, there is no problem that the graphic system goes down, or the number of divisions becomes indefinite and a runaway or correct display cannot be obtained.

【0029】[0029]

【実施例】先ず、図8を用いて、グラフィックシステム
の機器構成の一例について簡単に説明する。
First, an example of the equipment configuration of a graphic system will be briefly described with reference to FIG.

【0030】一般に、グラフィックシステムは、CPU
801、メインメモリ802、グラフィックサブシステ
ム807、CRT811等の機器から構成され、その他
にデータ入力を行うためのキーボード803、マウス8
04、スタイラスペン805、ダイアル812等の各種
入力装置、図形データ等を記憶保存するファイリング装
置813等が、システムバス806を介して接続され、
データ交換を行う。又、グラフィックサブシステム80
7は、グラフィックLSI808及びフレームメモリ8
10等から構成され、フレームバス809を介して接続
され、データ交換を行う。
Generally, a graphics system is a CPU
801, a main memory 802, a graphic subsystem 807, a CRT 811, and other devices, and a keyboard 803 and a mouse 8 for inputting data.
04, a stylus pen 805, various input devices such as a dial 812, a filing device 813 for storing and saving graphic data, etc. are connected via a system bus 806,
Exchange data. Also, the graphics subsystem 80
7 is a graphic LSI 808 and a frame memory 8
10 and the like, which are connected via a frame bus 809 to exchange data.

【0031】次に、このような構成を持つグラフィック
システムを用いて、一般のプリミティブをCRT811
に表示する処理について説明する。
Next, using the graphic system having such a configuration, a general primitive is added to the CRT 811.
The process of displaying in will be described.

【0032】先ず、キーボード803、マウス804、
スタイラスペン805、ダイアル812等の各種入力装
置によってデータを入力し、システムバス806を介し
てメインメモリ802に図形データを作成する。又は、
予め作成された図形データをファイリング装置813よ
りシステムバス806を介してメインメモリ802に転
送する。CPU801は、メインメモリ802内の図形
データを、必要ならば、キーボード803、マウス80
4、スタイラスペン805、ダイアル812等の各種入
力装置からシステムバス806を介して送られる指示に
従って変更を加える。図形データの変更には、例えば、
図形の回転、平行移動、視点の変更等の幾何演算や後述
する自由曲線の折線近似演算や自由曲面の多面体近似演
算、等を含んでいる。CPU801は、上記の様にして
作成されたメインメモリ802内の図形データをシステ
ムバス806を介して順次グラフィックサブシステム8
07へ転送する。グラフィックサブシステム807で
は、グラフィックLSI808が、送られてくる図形デ
ータをCRT811に表示するために、幾何的に(即
ち、座標データとして)与えられた図形データ及び図形
種類(線分、多角形、等)に従って、ドットイメージを
作成する。この処理は、例えば、線分の座標データから
DDAによってドット列を発生する処理や多角形の座標
データから三次元DDAによって多角形内部を塗り潰す
ドット列を発生する処理、等を含む。作成されたドット
イメージは、フレームメモリバス809を介してフレー
ムメモリ810に転送され、最後に、グラフィックサブ
システム807は、フレームメモリ810のドットイメ
ージをRGB信号等に変換し、CRT811はそれを表
示する。
First, a keyboard 803, a mouse 804,
Data is input by various input devices such as a stylus pen 805 and a dial 812, and graphic data is created in the main memory 802 via the system bus 806. Or
Preliminarily created graphic data is transferred from the filing device 813 to the main memory 802 via the system bus 806. The CPU 801 converts the graphic data in the main memory 802 into a keyboard 803 and a mouse 80 if necessary.
4. Changes are made in accordance with instructions sent via the system bus 806 from various input devices such as the stylus pen 805 and the dial 812. To change the figure data, for example,
It includes geometrical operations such as rotation, parallel movement of figures, and change of viewpoint, and polygonal line approximation calculation of free curve and polyhedral approximation calculation of free curved surface, which will be described later. The CPU 801 sequentially sends the graphic data in the main memory 802 created as described above via the system bus 806 to the graphic subsystem 8.
Transfer to 07. In the graphic subsystem 807, the graphic LSI 808 displays the graphic data sent thereto on the CRT 811, so that the graphic data geometrically (ie, as coordinate data) and the graphic type (line segment, polygon, etc.) are given. ), Create a dot image. This processing includes, for example, processing for generating a dot row by DDA from coordinate data of a line segment, processing for generating a dot row for filling the inside of a polygon by three-dimensional DDA from polygonal coordinate data, and the like. The created dot image is transferred to the frame memory 810 via the frame memory bus 809, and finally, the graphic subsystem 807 converts the dot image of the frame memory 810 into an RGB signal or the like, and the CRT 811 displays it. .

【0033】次に、自由曲線及び自由曲面について簡単
に説明する。
Next, the free curve and the free curved surface will be briefly described.

【0034】図9は、T パラメタ空間のある区間 [a,
b] から XYZ 空間への像としての自由曲線 c を表した
図である。即ち、自由曲線901とは、一次元空間 T
の或る領域(定義域)903から三次元空間 XYZ への
写像902として定義されるものである。写像902
は、通常コンピュータでの扱い易さからパラメタ t に
関する多項式、又は、一旦四次元 XYZW 空間への多項式
として定義しておき後にこれを同次座標として見て W
座標で除する有理多項式が用いられる。即ち、写像90
2は、
FIG. 9 shows a section [a,
It is a figure showing the free curve c as an image from [b] to XYZ space. That is, the free curve 901 is the one-dimensional space T
Is defined as a mapping 902 from a certain area (domain) 903 of the above to the three-dimensional space XYZ. Map 902
Is usually defined as a polynomial with respect to the parameter t or a polynomial in the four-dimensional XYZW space for ease of handling by a computer, and then this is viewed as homogeneous coordinates and W
A rational polynomial that divides by coordinates is used. That is, the map 90
2 is

【0035】[0035]

【数2】 [Equation 2]

【0036】又は、Or

【0037】[0037]

【数3】 [Equation 3]

【0038】の形をしていると考え、以後の説明を行
う。ここで、写像 x、y、z、w は、それぞれ t に関す
る多項式である。
The following description will be given, assuming that it is in the form of. Where the mappings x, y, z, w are polynomials in t, respectively.

【0039】写像902の定義域903は、通常コンピ
ュータでの扱い易さから閉区間が採られる。又、写像9
02は、到る処で連続であり、有限個の点を除いて充分
滑らかな(即ち、高次の微分が連続になる)ものを扱
う。
The domain 903 of the mapping 902 is usually a closed section because it is easy for a computer to handle. Also, the map 9
02 is continuous everywhere, and handles a sufficiently smooth one (that is, a high-order derivative becomes continuous) except for a finite number of points.

【0040】上記の要請を満たす自由曲線の例として、
NURB (non-uniform rational B-spline) 曲線や ration
al Bezier 曲線がある。NURB 曲線は、区分的に ration
al Bezier 曲線に変換出来ることが知られている。従っ
て、ここでは rational Bezier 曲線を例にとって以下
説明する。rational Bezier 曲線は、
As an example of a free curve satisfying the above requirements,
NURB (non-uniform rational B-spline) curve and ration
There is an al Bezier curve. NURB curves are piecewise ration
It is known that it can be converted to al Bezier curve. Therefore, the rational Bezier curve will be described below as an example. The rational Bezier curve is

【0041】[0041]

【数4】 [Equation 4]

【0042】によって定義される関数族 {Bik}(Bernst
ein 関数族と呼ばれる)を用いて
A family of functions defined by {B ik } (Bernst
ein function family)

【0043】[0043]

【数5】 [Equation 5]

【0044】の様に定義される自由曲線である。この曲
線の定義域は、[0, 1] であり、次数は、K であり、{P
[i]=(x[i], y[i], z[i])|0≦i≦K} は制御点の集合、
{w[i]|0≦i≦K} はウェイトの集合である。
It is a free curve defined as follows. The domain of this curve is [0, 1], the degree is K, and {P
[i] = (x [i], y [i], z [i]) | 0 ≦ i ≦ K} is a set of control points,
{w [i] | 0 ≦ i ≦ K} is a set of weights.

【0045】図10は、UV パラメタ空間のある矩形領
域 [a, b]×[c, d] から XYZ 空間への像としての自由
曲面 s を表した図である。即ち、自由曲面1001と
は、二次元空間 UV の或る領域(定義域)1003から
三次元空間 XYZ への写像1002として定義されるも
のである。写像1002は、通常コンピュータでの扱い
易さからパラメタ u 及び v に関する多項式、又は、一
旦四次元 XYZW 空間への多項式として定義しておき後に
これを同次座標として見て W 座標で除する有理多項式
が用いられる。即ち、写像1002は、
FIG. 10 is a diagram showing the free-form surface s as an image from the rectangular area [a, b] × [c, d] having the UV parameter space to the XYZ space. That is, the free-form surface 1001 is defined as a mapping 1002 from a certain area (domain) 1002 of the two-dimensional space UV to the three-dimensional space XYZ. The map 1002 is a rational polynomial that is usually defined as a polynomial with respect to the parameters u and v, or a polynomial in the four-dimensional XYZW space, which is then viewed as homogeneous coordinates and divided by W coordinates because of easy handling by a computer. Is used. That is, the map 1002 is

【0046】[0046]

【数6】 [Equation 6]

【0047】又は、Or

【0048】[0048]

【数7】 [Equation 7]

【0049】の形をしていると考え、以後の説明を行
う。ここで、写像 x、y、z、w は、それぞれ u 及び v
に関する多項式である。
The following description will be given, assuming that it is in the form of. Where the mappings x, y, z, w are u and v, respectively.
Is a polynomial with respect to.

【0050】写像1002の定義域1003は、通常、
コンピュータでの扱い易さから矩形領域が採られる。
又、写像1002は、到る処で連続であり、有限個の点
を除いて充分滑らかな(即ち、高次の微分が連続にな
る)ものを扱う。
The domain 1003 of the mapping 1002 is usually
A rectangular area is adopted because it is easy to handle on a computer.
The mapping 1002 is continuous everywhere, and is sufficiently smooth except for a finite number of points (that is, high-order differential becomes continuous).

【0051】上記の要請を満たす自由曲面の例として、
NURB 曲面や rational Bezier 曲面がある。NURB 曲線
と同様に、NURB 曲面は、区分的に rational Bezier 曲
面に変換出来ることが知られている。従って、ここでは
rational Bezier 曲面を例にとって以下説明する。rat
ional Bezier 曲面は、Bernstein 関数族を用いて
As an example of a free-form surface satisfying the above requirements,
There are NURB surfaces and rational Bezier surfaces. Similar to the NURB curve, it is known that the NURB surface can be converted piecewise into a rational Bezier surface. Therefore, here
The rational Bezier curved surface will be described below as an example. rat
ional Bezier surface uses Bernstein function family

【0052】[0052]

【数8】 [Equation 8]

【0053】の様に定義される自由曲面である。この曲
面の定義域は、[0, 1]×[0, 1] であり、次数は、U 方
向が uK、V 方向が vK であり、{P[i][j]=(x[i][j], y
[i][j], z[i][j])|0≦i≦uK, 0≦j≦vK} は制御点の集
合、{w[i][j]|0≦i≦uK, 0≦j≦vK} はウェイトの集合
である。
It is a free-form surface defined as follows. The domain of this surface is [0, 1] × [0, 1], the order is uK in the U direction and vK in the V direction, and {P [i] [j] = (x [i] [j], y
[i] [j], z [i] [j]) | 0≤i≤uK, 0≤j≤vK} is a set of control points, {w [i] [j] | 0≤i≤uK, 0 ≤j≤vK} is a set of weights.

【0054】以上のような自由曲線及び自由曲面を対象
として、これらの表示手順について図1を用いて簡単に
説明する。
The display procedure of the free curve and the free curved surface as described above will be briefly described with reference to FIG.

【0055】先ず、グラフィックシステムは、アプリケ
ーションから表示手順の開始の指示を受け、表示を行う
ための各種初期処理を行う(ステップ101)。次に、
各プリミティブデータ及び属性データ(又は、コマン
ド)を受け取り(ステップ102)、プリミティブの種
類に従って(更に、場合によっては属性に従って)処理
を分岐する(ステップ103)。もし終了命令であれ
ば、表示手順の各種終了処理を行い(ステップ10
8)、終了する。入力されたプリミティブが、自由曲線
の場合は、先ず、折線に近似し(ステップ104)、そ
して表示する(ステップ105)。同様に、入力された
プリミティブが、自由曲面の場合は、先ず、多面体に近
似し(ステップ106)、そして表示する(ステップ1
07)。以後は、終了命令が入力されるまで、ステップ
102からの処理を繰り返す。
First, the graphic system receives an instruction to start a display procedure from an application and performs various initial processing for displaying (step 101). next,
Each primitive data and attribute data (or command) is received (step 102), and the processing is branched according to the type of primitive (further, depending on the attribute) (step 103). If it is an end command, various end processes of the display procedure are performed (step 10
8) The process ends. If the input primitive is a free-form curve, it is first approximated to a polygonal line (step 104) and displayed (step 105). Similarly, when the input primitive is a free-form surface, it is first approximated to a polyhedron (step 106) and displayed (step 1).
07). After that, the processing from step 102 is repeated until the end command is input.

【0056】ここで、ステップ104及びステップ10
6における折線近似及び多面体近似は、折線近似手段及
び多面体近似手段が行ない、上記グラフィックシステム
ではCPU801が行なう。又、ステップ105及びス
テップ107における表示は、折線表示手段及び多面体
表示手段が行ない、上記グラフィックシステムではグラ
フィックサブシステム807が行う。この近似および表
示の処理は、自由曲線・曲面以外の一般のプリミティブ
に関して、上述したものと同じである。
Here, step 104 and step 10
The polygonal line approximation and the polyhedron approximation in 6 are performed by the polygonal line approximation means and the polyhedron approximation means, and are performed by the CPU 801 in the above graphic system. The display in step 105 and step 107 is performed by the polygonal line display means and the polyhedron display means, and is performed by the graphic subsystem 807 in the above graphic system. This approximation and display processing is the same as that described above for general primitives other than free-form curves and curved surfaces.

【0057】次に、図2を用いて折線近似手段の構成に
ついて述べる。
Next, the construction of the broken line approximation means will be described with reference to FIG.

【0058】折線近似手段は、自由曲線の制御点の集合
及び各制御点のウェイトの集合及び折線近似パラメタを
受け取り、分割数計算手段201によって分割数を計算
し、座標計算手段202によって分割点の座標を計算
し、折線作成手段203によって各分割点を連結して折
線を作成し、折線表示手段へ折線データを受け渡す。
The polygonal line approximation means receives the set of control points of the free curve and the set of weights of each control point and the polygonal line approximation parameter, calculates the number of divisions by the division number calculation means 201, and calculates the division points by the coordinate calculation means 202. The coordinates are calculated, the division points are connected by the polygonal line creating means 203 to create a polygonal line, and the polygonal line data is transferred to the polygonal line display means.

【0059】分割数計算手段201においては、分割数
を、以下のように算出する。
The division number calculation means 201 calculates the division number as follows.

【0060】算出するための式として、”The grarphic
al processing of B-splines in ahighly dynamic envi
ronment (S.S.Abi-Ezzi,1989,Rensselaer Polytechnic
Research Center)"のP.154にある、
As an equation for calculating, "The grarphic
al processing of B-splines in ahighly dynamic envi
ronment (SSAbi-Ezzi, 1989, Rensselaer Polytechnic
Research Center) ", page 154,

【0061】[0061]

【数32】 [Equation 32]

【0062】を基礎とする。ここで、Based on here,

【0063】[0063]

【数9】 [Equation 9]

【0064】及びAnd

【0065】[0065]

【数10】 [Equation 10]

【0066】である。特に、曲線cが、(数5)のrati
onal Beier 曲線である場合には、
It is In particular, the curve c is the rati of (Equation 5)
If it is an onal Beier curve,

【0067】[0067]

【数33】 [Expression 33]

【0068】であるから、全てのw[i]が正の場合、凸包
性によって、
Therefore, if all w [i] are positive, by convex hullability,

【0069】[0069]

【数34】 [Equation 34]

【0070】とできる。従って、(数32)の代わり
に、
It is possible to Therefore, instead of (Equation 32),

【0071】[0071]

【数35】 [Equation 35]

【0072】とすれば十分である。以上が、前記P.1
54を中心として記述されている。
The above is sufficient. The above is the above P. 1
54 is mainly described.

【0073】しかしながら、上記の事実は、“全てのw
[i]が正の場合”という制限付きである。そこで、この
制限を取り除くことを考える。以後、
However, the above fact is "all w
There is a restriction "when [i] is positive. So we will consider removing this restriction.

【0074】[0074]

【数36】 [Equation 36]

【0075】として考える。三角不等式を用いて、(数
33)を、
Consider as. Using the triangular inequality, (33)

【0076】[0076]

【数37】 [Equation 37]

【0077】のように変形することができる。It can be modified as follows.

【0078】ここで、第1項に関して、分母の第2項
は、分子で考えられている範囲(w[i]w[j]>0)におい
て、絶対値が十分に小さいと仮定できる。故に、(数3
7)の第1項は、
Regarding the first term, it can be assumed that the second term of the denominator has a sufficiently small absolute value in the range (w [i] w [j]> 0) considered in the numerator. Therefore, (Equation 3
The first term of 7) is

【0079】[0079]

【数38】 [Equation 38]

【0080】のように変形することができる。It can be modified as follows.

【0081】同様に、(数37)の第2項は、Similarly, the second term of (Equation 37) is

【0082】[0082]

【数39】 [Formula 39]

【0083】のように変形することができる。It can be modified as follows.

【0084】第3項に関しては、Regarding the third term,

【0085】[0085]

【数40】 [Formula 40]

【0086】であり、ここで、(数40)の分母の第2
項、第4項は、分子で考えている範囲において、絶対値
が十分に小さいと仮定でき、また、第1項、第3項のう
ち、どちらかを無視する代わりにw[j]の絶対値の最小値
を採ることにすれば(今は、w[j]>0の方を採る)、
Where the second of the denominator of (Equation 40) is
It can be assumed that the absolute values of the terms and the fourth term are sufficiently small in the range considered by the numerator, and instead of ignoring either the first or the third term, the absolute value of w [j] If you decide to take the minimum value (currently w [j]> 0),

【0087】[0087]

【数41】 [Formula 41]

【0088】となる。第4項、第5項、第6項も同様
に、
It becomes Similarly, the fourth, fifth, and sixth terms

【0089】[0089]

【数42】 [Equation 42]

【0090】[0090]

【数43】 [Equation 43]

【0091】[0091]

【数44】 [Equation 44]

【0092】となる。It becomes

【0093】第7項に関しては、分子は各項の最大値、
分母は各項の最小値を採ることで略近似できるものと仮
定できる。故に、
For the seventh term, the numerator is the maximum of each term,
It can be assumed that the denominator can be approximated by taking the minimum value of each term. Therefore,

【0094】[0094]

【数45】 [Equation 45]

【0095】とできる。It can be

【0096】以上により、分割数Nを、From the above, the number of divisions N is

【0097】[0097]

【数46】 [Equation 46]

【0098】のように決定することができる。ここで、It can be determined as follows. here,

【0099】[0099]

【数47】 [Equation 47]

【0100】とすると、分割数Nを、Then, the division number N is

【0101】[0101]

【数11】 [Equation 11]

【0102】のように決定することができる。It can be determined as follows.

【0103】図3は、分割数計算手段201の機能構成
図である。
FIG. 3 is a functional block diagram of the division number calculation means 201.

【0104】図3の分割数計算手段201の構成を用い
た分割数計算手段201は、次のような流れに沿って、
(数11)で決定される分割数Nを計算する。
The division number calculation means 201 using the configuration of the division number calculation means 201 of FIG. 3 follows the following flow.
The number of divisions N determined by (Equation 11) is calculated.

【0105】(ステップ3−1)二つのカウンタ301
(counter1 及び counter2)を 0 に初期化する。次数
レジスタ303(K)を自由曲線の次数で初期化する。
演算レジスタ307(MAX1 乃至 MAX7 及び Winv1 及び
Winv2)を 0.0 で初期化する。折線近似パラメタレジ
スタ308(TOL)を折線近似パラメタで初期化する。
(Step 3-1) Two counters 301
Initialize (counter1 and counter2) to 0. The degree register 303 (K) is initialized with the degree of the free curve.
Operation register 307 (MAX1 to MAX7 and Winv1 and
Winv2) is initialized to 0.0. The polygonal line approximation parameter register 308 (TOL) is initialized with the polygonal line approximation parameter.

【0106】(ステップ3−2)変数 i を counter1、
変数 j を counter2 とするとき、K 及び counter1 及
び制御点の集合304及びウェイトの集合305より読
み出した x[i-1], y[i-1], z[i-1], w[i-1]; x[i], y
[i], z[i], w[i]; x[i+1], y[i+1], z[i+1], w[i+1]; x
[j], y[j], z[j], w[j] より、ノルム演算装置306を
用いて、以下の(ステップ3−2−1)乃至(ステップ
3−2−8)を行なう。
(Step 3-2) Set variable i to counter1,
When the variable j is counter2, x [i-1], y [i-1], z [i-1], w [i- read from K and counter1, the set 304 of control points and the set 305 of weights. 1]; x [i], y
[i], z [i], w [i]; x [i + 1], y [i + 1], z [i + 1], w [i + 1]; x
From [j], y [j], z [j], w [j], the following (step 3-2-1) to (step 3-2-8) are performed using the norm calculation device 306.

【0107】(ステップ3−2−1)三次元ベクトル A
[i]w[j]-B[i]P[j] のノルム(この値を NORM で表す)
を計算する。ここで、A[i] 及び B[i] は、
(Step 3-2-1) Three-dimensional vector A
Norm of [i] w [j] -B [i] P [j] (represent this value by NORM)
To calculate. Where A [i] and B [i] are

【0108】[0108]

【数9】 [Equation 9]

【0109】及びAnd

【0110】[0110]

【数10】 [Equation 10]

【0111】とする。It is assumed that

【0112】(ステップ3−2−2)w[i]w[j]>0 のと
き、NORM を w[i]w[j] で除算した値を改めて NORM と
し、演算レジスタ307内の MAX1 と比較して大きけれ
ば、NORM を MAX1 に格納する。w[i]>0 のとき、w[i]
の逆数が演算レジスタ307内の Winv1 より大きけれ
ば、Winv1 に w[i] の逆数を格納する。w[i]<0 のと
き、-w[i] の逆数が演算レジスタ307内の Winv2 よ
り大きければ、Winv2 に -w[i] の逆数を格納する。
(Step 3-2-2) When w [i] w [j]> 0, the value obtained by dividing NORM by w [i] w [j] is set again as NORM and is set to MAX1 in the operation register 307. If it is larger than the comparison value, NORM is stored in MAX1. When w [i]> 0, w [i]
If the reciprocal of is larger than Winv1 in the operation register 307, the reciprocal of w [i] is stored in Winv1. When w [i] <0, if the reciprocal of -w [i] is larger than Winv2 in the operation register 307, the reciprocal of -w [i] is stored in Winv2.

【0113】(ステップ3−2−3)w[i]w[j]<0 のと
き、NORM を -w[i]w[j] で除算した値を改めて NORM と
し、演算レジスタ307内の MAX2 より大きければ、NO
RM を MAX2 に格納する。w[i]>0 のとき、w[i] の逆数
が演算レジスタ307内の Winv1 より大きければ、Win
v1 に w[i] の逆数を格納する。w[i]<0 のとき、-w[i]
の逆数が演算レジスタ307内の Winv2 より大きけれ
ば、Winv2 に -w[i] の逆数を格納する。
(Step 3-2-3) When w [i] w [j] <0, the value obtained by dividing NORM by -w [i] w [j] is set again as NORM and MAX2 in the operation register 307 is set. Greater than, NO
Store RM in MAX2. If w [i]> 0 and the reciprocal of w [i] is greater than Winv1 in the operation register 307, Win
Store the reciprocal of w [i] in v1. -w [i] when w [i] <0
If the reciprocal of is larger than Winv2 in the operation register 307, the reciprocal of -w [i] is stored in Winv2.

【0114】(ステップ3−2−4)w[i]>0、w[j]=0
のとき、NORM を w[i] で除算した値を改めて NORM と
し、演算レジスタ307内の MAX3 と比較して大きけれ
ば、NORM を MAX3 に格納する。w[i] の逆数が演算レジ
スタ307内の Winv1 より大きければ、Winv1 に w[i]
の逆数を格納する。
(Step 3-2-4) w [i]> 0, w [j] = 0
At this time, the value obtained by dividing NORM by w [i] is set again as NORM, and if it is larger than MAX3 in the operation register 307, if NORM is stored, NORM is stored in MAX3. If the reciprocal of w [i] is larger than Winv1 in the operation register 307, w [i] is set in Winv1.
Stores the reciprocal of.

【0115】(ステップ3−2−5)w[i]<0、w[j]=0
のとき、NORM を -w[i] で除算した値を改めて NORM
とし、演算レジスタ307内の MAX4 と比較して大きけ
れば、NORM を MAX4 に格納する。-w[i] の逆数が演算
レジスタ307内の Winv2 より大きければ、Winv2に -
w[i] の逆数を格納する。
(Step 3-2-5) w [i] <0, w [j] = 0
, The value obtained by dividing NORM by -w [i] is NORM again.
If it is larger than MAX4 in the operation register 307, NORM is stored in MAX4. -If the reciprocal of w [i] is greater than Winv2 in the operation register 307, then Winv2 is set to-
Stores the reciprocal of w [i].

【0116】(ステップ3−2−6)w[i]=0、w[j]>0
のとき、NORM を w[j] で除算した値を改めて NORM と
し、演算レジスタ307内の MAX5 と比較して大きけれ
ば、NORM を MAX5 に格納する。
(Step 3-2-6) w [i] = 0, w [j]> 0
At this time, the value obtained by dividing NORM by w [j] is set again as NORM, and if it is larger than MAX5 in the arithmetic register 307, if NORM is stored in NORM, it is stored in MAX5.

【0117】(ステップ3−2−7)w[i]=0、w[j]<0
のとき、NORM を -w[j] で除算した値を改めて NORM
とし、演算レジスタ307内の MAX6 と比較して大きけ
れば、NORM を MAX6 に格納する。
(Step 3-2-7) w [i] = 0, w [j] <0
, The value obtained by dividing NORM by -w [j] is NORM again.
If it is larger than MAX6 in the operation register 307, NORM is stored in MAX6.

【0118】(ステップ3−2−8)w[i]=0、w[j]=0
のとき、NORM が演算レジスタ307内の MAX7 と比較
して大きければ、NORM を MAX7 に格納する。
(Step 3-2-8) w [i] = 0, w [j] = 0
At this time, if NORM is larger than MAX7 in the operation register 307, NORM is stored in MAX7.

【0119】(ステップ3−3)counter1 及び counte
r2 をインクリメント装置302を用いて以下の処理を
行なう。
(Step 3-3) counter1 and counte
The following processing is performed by using the increment device 302 for r2.

【0120】counter2<K ならば counter2 を1インク
リメントする。
If counter2 <K, counter2 is incremented by 1.

【0121】counter2=K 且つ counter1<K ならば co
unter2 を 0 で初期化し、counter1を1インクリメント
する。
If counter2 = K and counter1 <K, co
Initialize unter2 with 0 and increment counter1 by 1.

【0122】以上の処理の後に、(ステップ3−2)か
ら処理を繰り返す。
After the above processing, the processing is repeated from (Step 3-2).

【0123】counter2=K 且つ counter1=K ならば
(ステップ3−4)へ進む。
If counter2 = K and counter1 = K, the process proceeds to step 3-4.

【0124】(ステップ3−4)上記のようにして求め
たMAX1 乃至 MAX7 及び Winv1 及び Winv2 及び TOL よ
り、分割数演算装置309を用いて、自由曲線の分割数
Nを(数11)で計算することができる。
(Step 3-4) From MAX1 to MAX7, Winv1, Winv2, and TOL obtained as described above, the division number calculation unit 309 is used to calculate the division number N of the free curve by (Equation 11). be able to.

【0125】分割数計算手段201においては、分割数
を、以下のように算出することもできる。
The division number calculating means 201 can also calculate the division number as follows.

【0126】算出するための式として、“Surface algo
rithms using bounds on derivatives”(D. Filip, R.
Magedson, and R. Markot, 1986)のTheorem 2を基礎と
する。このTheorem 2から、
As a formula for calculating, "Surface algo
rithms using bounds on derivatives ”(D. Filip, R.
Based on Theorem 2 by Magedson, and R. Markot, 1986). From this Theorem 2,

【0127】[0127]

【数48】 [Equation 48]

【0128】で分割数を算出できることは、容易にわか
る。ここで、
It is easy to see that the number of divisions can be calculated with. here,

【0129】[0129]

【数12】 [Equation 12]

【0130】及びAnd

【0131】[0131]

【数13】 [Equation 13]

【0132】である。ただし、Theorem 2の成立条件か
ら、(数48)は全てのw[i]が正の場合にのみ成立す
る。
It is However, from the condition for satisfying Theorem 2, (Equation 48) is satisfied only when all w [i] are positive.

【0133】ここで、(数48)に対して、(数32)
から(数46)を導出したのと同様の変形を行ない、
Here, with respect to (Equation 48), (Equation 32)
The same transformation as that of deriving (Equation 46) from

【0134】[0134]

【数49】 [Equation 49]

【0135】[0135]

【数50】 [Equation 50]

【0136】とおくと、分割数Nを、Putting the number of divisions N,

【0137】[0137]

【数14】 [Equation 14]

【0138】で計算することができる。It can be calculated by

【0139】図4は、(数14)に基づいて分割数を算
出する分割数計算手段201の機能構成図である。
FIG. 4 is a functional block diagram of the division number calculation means 201 for calculating the division number based on (Equation 14).

【0140】図4の分割数計算手段の構成を用いた分割
数計算手段201は、次のような流れに沿って分割数を
計算する。
The division number calculation means 201 using the configuration of the division number calculation means of FIG. 4 calculates the division number according to the following flow.

【0141】(ステップ4−1)三つのカウンタ401
(counter1 及び counter2 及び counter3)を 0 に初
期化する。次数レジスタ403(K)を自由曲線の次数
で初期化する。演算レジスタ407(MAX1 乃至 MAX15
及び Winv1 及び Winv2)を 0.0 で初期化する。折線近
似パラメタレジスタ408(TOL)を折線近似パラメタ
で初期化する。
(Step 4-1) Three counters 401
Initialize (counter1, counter2, counter3) to 0. The degree register 403 (K) is initialized with the degree of the free curve. Operation register 407 (MAX1 to MAX15
And Winv1 and Winv2) are initialized to 0.0. The polygonal line approximation parameter register 408 (TOL) is initialized with the polygonal line approximation parameter.

【0142】(ステップ4−2)変数 i を counter1、
変数 j を counter2 、変数 k を counter3 とすると
き、K 及び counter1 及び制御点の集合404及びウェ
イトの集合405より読み出した x[i-2], y[i-2], z[i
-2], w[i-2]; x[i-1], y[i-1], z[i-1], w[i-1]; x[i],
y[i], z[i], w[i]; x[i+1], y[i+1], z[i+1], w[i+1];
x[i+2], y[i+2], z[i+2], w[i+2]; x[j], y[j], z[j],
w[j]; x[k-1], y[k-1], z[k-1], w[k-1]; x[k], y[k],
z[k], w[k]; x[k+1], y[k+1], z[k+1], w[k+1] より、
ノルム演算装置406を用いて、以下の(ステップ4−
2−1)乃至(ステップ4−2−16)を行なう。
(Step 4-2) Set the variable i to counter1,
When the variable j is counter2 and the variable k is counter3, x [i-2], y [i-2], z [i read from K and counter1, the control point set 404 and the weight set 405.
-2], w [i-2]; x [i-1], y [i-1], z [i-1], w [i-1]; x [i],
y [i], z [i], w [i]; x [i + 1], y [i + 1], z [i + 1], w [i + 1];
x [i + 2], y [i + 2], z [i + 2], w [i + 2]; x [j], y [j], z [j],
w [j]; x [k-1], y [k-1], z [k-1], w [k-1]; x [k], y [k],
z [k], w [k]; x [k + 1], y [k + 1], z [k + 1], w [k + 1]
The following (step 4-
2-1) to (Step 4-2-16) are performed.

【0143】(ステップ4−2−1)三次元ベクトル
(C[i]w[j]-D[i]P[j])w[k]-2(A[i]w[j]-B[i]P[j])B[k]
のノルム(この値を NORM で表す)を計算する。ここ
で、A[i] 及び B[i] は、(数9)及び(数10)であ
り、C[i] 及び D[i] は、
(Step 4-2-1) Three-dimensional vector
(C [i] w [j] -D [i] P [j]) w [k] -2 (A [i] w [j] -B [i] P [j]) B [k]
Calculate the norm of (expressed as NORM). Here, A [i] and B [i] are (Equation 9) and (Equation 10), and C [i] and D [i] are

【0144】[0144]

【数12】 [Equation 12]

【0145】及びAnd

【0146】[0146]

【数13】 [Equation 13]

【0147】とする。It is assumed that

【0148】(ステップ4−2−2)w[i]w[j]w[k]>0
のとき、NORM を w[i]w[j]w[k] で除算した値を改めて
NORMとし、演算レジスタ407内の MAX1 と比較して大
きければ、NORM を MAX1 に格納する。w[i]>0 のと
き、w[i] の逆数が演算レジスタ407内の Winv1 より
大きければ、Winv1 に w[i] の逆数を格納する。w[i]<
0 のとき、-w[i] の逆数が演算レジスタ407内の Win
v2 より大きければ、Winv2 に -w[i] の逆数を格納す
る。
(Step 4-2-2) w [i] w [j] w [k]> 0
, NORM divided by w [i] w [j] w [k] again
NORM is set, and if it is larger than MAX1 in the operation register 407, NORM is stored in MAX1. When w [i]> 0, if the reciprocal of w [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. w [i] <
When 0, the reciprocal of -w [i] is Win in the operation register 407.
If it is larger than v2, the reciprocal of -w [i] is stored in Winv2.

【0149】(ステップ4−2−3)w[i]w[j]w[k]<0
のとき、NORM を -w[i]w[j]w[k] で除算した値を改めて
NORM とし、演算レジスタ407内の MAX2 より大きけ
れば、NORM を MAX2 に格納する。w[i]>0 のとき、w
[i] の逆数が演算レジスタ407内の Winv1 より大き
ければ、Winv1 に w[i] の逆数を格納する。w[i]<0 の
とき、-w[i] の逆数が演算レジスタ407内の Winv2
より大きければ、Winv2 に -w[i] の逆数を格納する。
(Step 4-2-3) w [i] w [j] w [k] <0
Then NORM divided by -w [i] w [j] w [k] again
If NORM is set and is larger than MAX2 in the operation register 407, NORM is stored in MAX2. When w [i]> 0, w
If the reciprocal of [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. When w [i] <0, the reciprocal of -w [i] is Winv2 in the operation register 407.
If larger, store the reciprocal of -w [i] in Winv2.

【0150】(ステップ4−2−4)w[i]w[j]>0、w
[k]=0 のとき、NORM を w[i]w[j] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX3 と比較し
て大きければ、NORM を MAX3に格納する。w[i]>0 のと
き、w[i] の逆数が演算レジスタ407内の Winv1 より
大きければ、Winv1 に w[i] の逆数を格納する。w[i]<
0 のとき、-w[i] の逆数が演算レジスタ407内の Win
v2 より大きければ、Winv2 に -w[i] の逆数を格納す
る。
(Step 4-2-4) w [i] w [j]> 0, w
When [k] = 0, the value obtained by dividing NORM by w [i] w [j] is set again as NORM, and if it is larger than MAX3 in the operation register 407, NORM is stored in MAX3. When w [i]> 0, if the reciprocal of w [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. w [i] <
When 0, the reciprocal of -w [i] is Win in the operation register 407.
If it is larger than v2, the reciprocal of -w [i] is stored in Winv2.

【0151】(ステップ4−2−5)w[i]w[j]<0、w
[k]=0 のとき、NORM を -w[i]w[j] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX4 と比較
して大きければ、NORM を MAX4に格納する。w[i]>0 の
とき、w[i] の逆数が演算レジスタ407内の Winv1 よ
り大きければ、Winv1 に w[i] の逆数を格納する。w[i]
<0 のとき、-w[i] の逆数が演算レジスタ407内の W
inv2 より大きければ、Winv2 に -w[i] の逆数を格納す
る。
(Step 4-2-5) w [i] w [j] <0, w
When [k] = 0, the value obtained by dividing NORM by -w [i] w [j] is set again as NORM, and if it is larger than MAX4 in the operation register 407, NORM is stored in MAX4. When w [i]> 0, if the reciprocal of w [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. w [i]
When <0, the reciprocal of -w [i] is W in the operation register 407.
If it is larger than inv2, the reciprocal of -w [i] is stored in Winv2.

【0152】(ステップ4−2−6)w[k]w[i]>0、w
[j]=0 のとき、NORM を w[k]w[i] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX5 と比較し
て大きければ、NORM を MAX5に格納する。w[i]>0 のと
き、w[i] の逆数が演算レジスタ407内の Winv1 より
大きければ、Winv1 に w[i] の逆数を格納する。w[i]<
0 のとき、-w[i] の逆数が演算レジスタ407内の Win
v2 より大きければ、Winv2 に -w[i] の逆数を格納す
る。
(Step 4-2-6) w [k] w [i]> 0, w
When [j] = 0, the value obtained by dividing NORM by w [k] w [i] is set again as NORM, and if it is larger than MAX5 in the operation register 407, NORM is stored in MAX5. When w [i]> 0, if the reciprocal of w [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. w [i] <
When 0, the reciprocal of -w [i] is Win in the operation register 407.
If it is larger than v2, the reciprocal of -w [i] is stored in Winv2.

【0153】(ステップ4−2−7)w[k]w[i]<0、w
[j]=0 のとき、NORM を -w[k]w[i] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX6 と比較
して大きければ、NORM を MAX6に格納する。w[i]>0 の
とき、w[i] の逆数が演算レジスタ407内の Winv1 よ
り大きければ、Winv1 に w[i] の逆数を格納する。w[i]
<0 のとき、-w[i] の逆数が演算レジスタ407内の W
inv2 より大きければ、Winv2 に -w[i] の逆数を格納す
る。
(Step 4-2-7) w [k] w [i] <0, w
When [j] = 0, the value obtained by dividing NORM by -w [k] w [i] is set again as NORM, and if it is larger than MAX6 in the operation register 407, NORM is stored in MAX6. When w [i]> 0, if the reciprocal of w [i] is larger than Winv1 in the operation register 407, the reciprocal of w [i] is stored in Winv1. w [i]
When <0, the reciprocal of -w [i] is W in the operation register 407.
If it is larger than inv2, the inverse of -w [i] is stored in Winv2.

【0154】(ステップ4−2−8)w[i]=0、w[j]w
[k]>0 のとき、NORM を w[j]w[k] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX7 と比較し
て大きければ、NORM を MAX7に格納する。
(Step 4-2-8) w [i] = 0, w [j] w
When [k]> 0, NORM is divided by w [j] w [k] to obtain NORM again, and if it is larger than MAX7 in the arithmetic register 407, NORM is stored in MAX7.

【0155】(ステップ4−2−9)w[i]=0、w[j]w
[k]<0 のとき、NORM を -w[j]w[k] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX8 と比較
して大きければ、NORM を MAX8に格納する。
(Step 4-2-9) w [i] = 0, w [j] w
When [k] <0, the value obtained by dividing NORM by -w [j] w [k] is set as NORM again, and if it is larger than MAX8 in the operation register 407, NORM is stored in MAX8.

【0156】(ステップ4−2−10)w[i]=0、w[j]>
0、w[k]=0 のとき、NORM を w[i] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX9 と比較し
て大きければ、NORM を MAX9に格納する。 w[i] の逆数
が演算レジスタ407内の Winv1 より大きければ、Win
v1 に w[i] の逆数を格納する。
(Step 4-2-10) w [i] = 0, w [j]>
When 0, w [k] = 0, the value obtained by dividing NORM by w [i] is set again as NORM, and if it is larger than MAX9 in the operation register 407, NORM is stored in MAX9. If the reciprocal of w [i] is greater than Winv1 in the operation register 407, Win
Store the reciprocal of w [i] in v1.

【0157】(ステップ4−2−11)w[i]<0、w[j]=
0、w[k]=0 のとき、NORM を -w[i] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX10 と比
較して大きければ、NORM を MAX10 に格納する。-w[i]
の逆数が演算レジスタ407内の Winv2 より大きけれ
ば、Winv2 に -w[i] の逆数を格納する。
(Step 4-2-11) w [i] <0, w [j] =
When 0, w [k] = 0, the value obtained by dividing NORM by -w [i] is set again as NORM, and if it is larger than MAX10 in the operation register 407, NORM is stored in MAX10. -w [i]
If the reciprocal of is larger than Winv2 in the operation register 407, the reciprocal of -w [i] is stored in Winv2.

【0158】(ステップ4−2−12)w[i]=0、w[j]>
0、w[k]=0 のとき、NORM を w[j] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX11 と比較
して大きければ、NORM を MAX11 に格納する。
(Step 4-2-12) w [i] = 0, w [j]>
When 0, w [k] = 0, the value obtained by dividing NORM by w [j] is set again as NORM, and if it is larger than MAX11 in the arithmetic register 407, NORM is stored in MAX11.

【0159】(ステップ4−2−13)w[i]=0、w[j]<
0、w[k]=0 のとき、NORM を -w[j] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX12 と比
較して大きければ、NORM を MAX12 に格納する。
(Step 4-2-13) w [i] = 0, w [j] <
When 0, w [k] = 0, the value obtained by dividing NORM by -w [j] is set again as NORM, and if it is larger than MAX12 in the arithmetic register 407, NORM is stored in MAX12.

【0160】(ステップ4−2−14)w[i]=0、w[j]=
0、w[k]>0 のとき、NORM を w[k] で除算した値を改め
て NORM とし、演算レジスタ407内の MAX13 と比較
して大きければ、NORM を MAX13 に格納する。
(Step 4-2-14) w [i] = 0, w [j] =
When 0 and w [k]> 0, the value obtained by dividing NORM by w [k] is set as NORM again, and if it is larger than MAX13 in the operation register 407, NORM is stored in MAX13.

【0161】(ステップ4−2−15)w[i]=0、w[j]=
0、w[k]<0 のとき、NORM を -w[k] で除算した値を改
めて NORM とし、演算レジスタ407内の MAX14 と比
較して大きければ、NORM を MAX14 に格納する。
(Step 4-2-15) w [i] = 0, w [j] =
When 0, w [k] <0, NORM is divided by -w [k] to obtain NORM again, and if it is larger than MAX14 in the arithmetic register 407, NORM is stored in MAX14.

【0162】(ステップ4−2−16)w[i]=0、w[j]=
0、w[k]=0 のとき、NORM が演算レジスタ407内の M
AX15と比較して大きければ、NORM を MAX15 に格納す
る。
(Step 4-2-16) w [i] = 0, w [j] =
When 0 and w [k] = 0, NORM is the M in the operation register 407.
If it is larger than AX15, store NORM in MAX15.

【0163】(ステップ4−3)counter1 及び counte
r2 及び counter3 をインクリメント装置402を用い
て以下の処理を行なう。
(Step 4-3) counter1 and counte
The following processing is performed on the r2 and counter3 using the increment device 402.

【0164】counter3<K ならば counter3 を1インク
リメントする。
If counter3 <K, counter3 is incremented by 1.

【0165】counter3=K 且つ counter2<K ならば co
unter3 を 0 で初期化し、counter2を1インクリメント
する。
If counter3 = K and counter2 <K, co
Initialize unter3 with 0 and increment counter2 by 1.

【0166】counter3=K 且つ counter2=K 且つ coun
ter1<K ならば counter3 及び counter2 を 0 で初期
化し、counter1 を1インクリメントする。
Counter3 = K and counter2 = K and coun
If ter1 <K, counter3 and counter2 are initialized to 0 and counter1 is incremented by 1.

【0167】以上の処理の後に、(ステップ4−2)か
ら処理を繰り返す。
After the above processing, the processing is repeated from (step 4-2).

【0168】counter3=K 且つ counter2=K 且つ coun
ter1=K ならば(ステップ4−4)へ進む。
Counter3 = K and counter2 = K and coun
If ter1 = K, proceed to (Step 4-4).

【0169】(ステップ4−4)上記のようにして求め
たMAX1 乃至 MAX15 及び Winv1 及び Winv2 及び TO
Lより、分割数演算装置409を用いて、自由曲線の分
割数 N を(数14)で計算することができる。
(Step 4-4) MAX1 to MAX15, Winv1, Winv2, and TO obtained as described above
From L, the division number N of the free curve can be calculated by (Equation 14) using the division number calculation device 409.

【0170】次に、座標計算手段202は、上記いずれ
かの分割数計算手段201によって得られた分割数 N
を用いて、自由曲線のパラメタ t=0, 1/N, 2/N, …, 1
の座標値を計算する。座標値の計算法としては、Horne
r の方法、前進差分法、Bezier 曲線であれば de Caste
ljau アルゴリズムなどがある。
Next, the coordinate calculating means 202 determines the number of divisions N obtained by any one of the above-mentioned number of division calculating means 201.
, The parameters of the free curve t = 0, 1 / N, 2 / N,…, 1
Calculate the coordinate values of. Horne can be used to calculate the coordinate values.
de Caste for r method, forward difference method, Bezier curve
There is ljau algorithm.

【0171】Horner の方法に関しては、“Curves and
surface for computer aided geometric design, secon
d edition ”(G.Farin ,1990,Academic Press)のP.47等
に、前進差分法に関しては同書のP.80-P.81等に、de Ca
steljau アルゴリズムに関しては同書のP.29等に記載さ
れている。
For Horner's method, see “Curves and
surface for computer aided geometric design, secon
d edition ”(G. Farin, 1990, Academic Press), P.47, etc., and forward difference method, P.80-P.81, etc., de Ca
The steljau algorithm is described on page 29 of the same book.

【0172】次に、折線作成手段203は、分割点、即
ち、自由曲線のパラメタ t=0, 1/N, 2/N, …, 1 の点
を順次連結して、座標計算手段202で計算した座標と
共に折線データを作成する。
Next, the polygonal line creating means 203 successively connects the division points, that is, the points of the free curve parameters t = 0, 1 / N, 2 / N, ... The polygonal line data is created together with the coordinates.

【0173】最後に、折線作成手段203によって作成
された折線データは、折線表示手段に受け渡され、グラ
フィックディスプレイに表示される。
Finally, the polygonal line data created by the polygonal line creating means 203 is transferred to the polygonal line display means and displayed on the graphic display.

【0174】次に、図5を用いて多面体近似手段の構成
について述べる。
Next, the structure of the polyhedral approximation means will be described with reference to FIG.

【0175】多面体近似手段は、自由曲面の制御点の集
合及び各制御点のウェイトの集合及び多面体近似パラメ
タを受け取り、分割数計算手段501によって、分割数
を計算し、座標計算手段502によって分割点の座標を
計算し、単位法線計算手段503によって分割点の単位
法線を計算し、多面体作成手段504によって各分割点
を連結して多面体を作成し、多面体表示手段へ多面体デ
ータを受け渡す。
The polyhedral approximation means receives the set of control points of the free-form surface, the set of weights of each control point and the polyhedral approximation parameter, calculates the number of divisions by the division number calculation means 501, and calculates the division points by the coordinate calculation means 502. , The unit normal calculation unit 503 calculates the unit normal of the division point, the polyhedral creation unit 504 connects the division points to create a polyhedron, and transfers the polyhedron data to the polyhedron display unit.

【0176】分割数計算手段501においては、分割数
を、以下のように算出する。
The division number calculation means 501 calculates the division number as follows.

【0177】算出するための式として、”The grarphic
al processing of B-splines in ahighly dynamic envi
ronment (S.S.Abi-Ezzi,1989,Rensselaer Polytechnic
Research Center)"のP.155にある式を基礎とす
る。(数32)から(数11)を導出したのと同様に、
上記P.155の式から、下記の(数19)および(数
20)を導出することができ、自由曲面の U 方向分割
数(この値を uN で表す)を(数19)で、自由曲面の
V 方向分割数(この値を vN で表す)を(数20)で
計算することができる。
As an equation for calculating, "The grarphic
al processing of B-splines in ahighly dynamic envi
ronment (SSAbi-Ezzi, 1989, Rensselaer Polytechnic
Research Center) ", P. 155. Based on the equations (32) to (11),
The above P. The following (Equation 19) and (Equation 20) can be derived from the equation of 155, and the number of divisions of the free-form surface in the U direction (this value is represented by uN) is (Equation 19).
The number of divisions in the V direction (this value is represented by vN) can be calculated by (Equation 20).

【0178】[0178]

【数19】 [Formula 19]

【0179】[0179]

【数20】 [Equation 20]

【0180】図6は、分割数計算手段501の機能構成
図である。
FIG. 6 is a functional block diagram of the division number calculation means 501.

【0181】図6の分割数計算手段501の構成を用い
た分割数計算手段501は、次のような流れに沿って分
割数を計算する。
The division number calculation means 501 using the configuration of the division number calculation means 501 of FIG. 6 calculates the division number according to the following flow.

【0182】(ステップ6−1)四つのカウンタ601
(ucounter1 及び ucounter2 及び vcounter1 及び vco
unter2)を 0 に初期化する。二つの次数レジスタ60
3(uK 及び vK)を自由曲面の U 方向及び V 方向の次
数で初期化する。演算レジスタ607(uMAX1 乃至 uMA
X7 及び vMAX1 乃至 vMAX7 及び Winv1 及び Winv2)を
0.0 で初期化する。二つの多面体近似パラメタレジス
タ608(uTOL 及び vTOL)を、予めメモリに格納され
ている多面体近似パラメタで初期化する。
(Step 6-1) Four Counters 601
(Ucounter1 and ucounter2 and vcounter1 and vco
unter2) is initialized to 0. Two degree register 60
Initialize 3 (uK and vK) by the degree of the free-form surface in the U and V directions. Operation register 607 (uMAX1 to uMA
X7 and vMAX1 to vMAX7 and Winv1 and Winv2)
Initialize with 0.0. The two polyhedron approximation parameter registers 608 (uTOL and vTOL) are initialized with the polyhedron approximation parameters stored in advance in the memory.

【0183】(ステップ6−2)変数 i を ucounter
1、変数 j を vcounter1、変数 k を ucounter2、変数
lを vcounter2 とするとき、uK 及び vK 及び ucounter
1 及び vcounter1 及び制御点の集合604及びウェイ
トの集合605より読み出した x[i-1][j], y[i-1][j],
z[i-1][j], w[i-1][j]; x[i][j-1], y[i][j-1], z[i]
[j-1], w[i][j-1]; x[i][j], y[i][j], z[i][j], w[i]
[j]; x[i][j+1], y[i][j+1], z[i][j+1], w[i][j+1]; x
[i+1][j], y[i+1][j], z[i+1][j], w[i+1][j]; x[k]
[l], y[k][l], z[k][l], w[k][l] より、ノルム演算装
置606を用いて、以下の(ステップ6−2−1)乃至
(ステップ6−2−8)を行なう。
(Step 6-2) Set variable i to ucounter
1, variable j is vcounter1, variable k is ucounter2, variable
When l is vcounter2, uK and vK and ucounter
1 and vcounter1, x [i-1] [j], y [i-1] [j], which are read from the set 604 of control points and the set 605 of weights,
z [i-1] [j], w [i-1] [j]; x [i] [j-1], y [i] [j-1], z [i]
[j-1], w [i] [j-1]; x [i] [j], y [i] [j], z [i] [j], w [i]
[j]; x [i] [j + 1], y [i] [j + 1], z [i] [j + 1], w [i] [j + 1]; x
[i + 1] [j], y [i + 1] [j], z [i + 1] [j], w [i + 1] [j]; x [k]
From [l], y [k] [l], z [k] [l], w [k] [l], the following (step 6-2-1) to (step Perform 6-2-8).

【0184】(ステップ6−2−1)三次元ベクトル E
[i][j]w[k][l]-F[i][j]P[k][l] のノルム(この値を uN
ORMで表す)及び G[i][j]w[k][l]-H[i][j]P[k][l] のノ
ルム(この値を vNORM で表す)を計算する。ここで、E
[i][j] 及び F[i][j] 及び G[i][j] 及び H[i][j]は、
(Step 6-2-1) Three-dimensional vector E
[i] [j] w [k] [l] -F [i] [j] P [k] [l] norm (this value is uN
ORM) and G [i] [j] w [k] [l] -H [i] [j] P [k] [l] norm (this value is expressed as vNORM). Where E
[i] [j] and F [i] [j] and G [i] [j] and H [i] [j] are

【0185】[0185]

【数15】 [Equation 15]

【0186】及びAnd

【0187】[0187]

【数16】 [Equation 16]

【0188】及びAnd

【0189】[0189]

【数17】 [Equation 17]

【0190】及びAnd

【0191】[0191]

【数18】 [Equation 18]

【0192】とする。It is assumed that

【0193】(ステップ6−2−2)w[i][j]w[k][l]>
0 のとき、uNORM を w[i][j]w[k][l] で除算した値を改
めてuNORM とし、演算レジスタ607内の uMAX1 と比
較して大きければ、uNORM をuMAX1 に格納する。又、こ
のとき、vNORM を w[i][j]w[k][l] で除算した値を改め
て vNORM とし、演算レジスタ607内の vMAX1 と比較
して大きければ、vNORM を vMAX1 に格納する。w[i][j]
>0 のとき、w[i][j] の逆数が演算レジスタ607内の
Winv1 より大きければ、Winv1 に w[i][j] の逆数を格
納する。w[i][j]<0 のとき、-w[i][j] の逆数が演算レ
ジスタ607内の Winv2 より大きければ、Winv2 に -w
[i][j] の逆数を格納する。
(Step 6-2-2) w [i] [j] w [k] [l]>
When it is 0, the value obtained by dividing uNORM by w [i] [j] w [k] [l] is newly set as uNORM, and if it is larger than uMAX1 in the operation register 607, it is stored in uMAX1. At this time, the value obtained by dividing vNORM by w [i] [j] w [k] [l] is set again as vNORM, and if it is larger than vMAX1 in the operation register 607, vNORM is stored in vMAX1. w [i] [j]
When> 0, the reciprocal of w [i] [j] is stored in the arithmetic register 607.
If it is larger than Winv1, the reciprocal of w [i] [j] is stored in Winv1. When w [i] [j] <0, if the reciprocal of -w [i] [j] is larger than Winv2 in the operation register 607, Winw2 will show -w.
Stores the reciprocal of [i] [j].

【0194】(ステップ6−2−3)w[i][j]w[k][l]<
0 のとき、uNORM を -w[i][j]w[k][l] で除算した値を
改めて uNORM とし、演算レジスタ607内の uMAX2 と
比較して大きければ、uNORMを uMAX2 に格納する。又、
このとき、vNORM を -w[i][j]w[k][l] で除算した値を
改めて vNORM とし、演算レジスタ607内の vMAX2 と
比較して大きければ、vNORM を vMAX2 に格納する。w
[i][j]>0 のとき、w[i][j] の逆数が演算レジスタ60
7内の Winv1 より大きければ、Winv1 に w[i][j] の逆
数を格納する。w[i][j]<0 のとき、-w[i][j] の逆数が
演算レジスタ607内の Winv2 より大きければ、Winv2
に -w[i][j] の逆数を格納する。
(Step 6-2-3) w [i] [j] w [k] [l] <
When it is 0, the value obtained by dividing uNORM by -w [i] [j] w [k] [l] is set again as uNORM. If it is larger than uMAX2 in the operation register 607, uNORM is stored in uMAX2. or,
At this time, the value obtained by dividing vNORM by -w [i] [j] w [k] [l] is set again as vNORM, and if it is larger than vMAX2 in the operation register 607, vNORM is stored in vMAX2. w
When [i] [j]> 0, the reciprocal of w [i] [j] is the arithmetic register 60
If it is larger than Winv1 in 7, the reciprocal of w [i] [j] is stored in Winv1. If w [i] [j] <0, and the reciprocal of -w [i] [j] is greater than Winv2 in the operation register 607, Winv2
Store the reciprocal of -w [i] [j] in.

【0195】(ステップ6−2−4)w[i][j]>0、w[k]
[l]=0 のとき、uNORM を w[i][j] で除算した値を改め
て uNORM とし、演算レジスタ607内の uMAX3 と比較
して大きければ、uNORM を uMAX3 に格納する。又、こ
のとき、vNORM を w[i][j] で除算した値を改めて vNOR
M とし、演算レジスタ607内の vMAX3 と比較して大
きければ、vNORM を vMAX3 に格納する。w[i][j] の逆
数が演算レジスタ607内の Winv1 より大きければ、W
inv1 に w[i][j] の逆数を格納する。
(Step 6-2-4) w [i] [j]> 0, w [k]
When [l] = 0, the value obtained by dividing uNORM by w [i] [j] is set again as uNORM, and if it is larger than uMAX3 in the operation register 607, uNORM is stored in uMAX3. Also, at this time, the value obtained by dividing vNORM by w [i] [j] is updated to vNOR.
M, and vNORM is stored in vMAX3 if larger than vMAX3 in the operation register 607. If the reciprocal of w [i] [j] is greater than Winv1 in the operation register 607,
Store the reciprocal of w [i] [j] in inv1.

【0196】(ステップ6−2−5)w[i][j]<0、w[k]
[l]=0 のとき、uNORM を -w[i][j] で除算した値を改
めてuNORM とし、演算レジスタ607内の uMAX4 と比
較して大きければ、uNORM をuMAX4 に格納する。又、こ
のとき、vNORM を -w[i][j] で除算した値を改めて vNO
RM とし、演算レジスタ607内の vMAX4 と比較して大
きければ、vNORM を vMAX4 に格納する。-w[i][j] の逆
数が演算レジスタ607内の Winv2 より大きければ、W
inv2 に -w[i][j] の逆数を格納する。
(Step 6-2-5) w [i] [j] <0, w [k]
When [l] = 0, the value obtained by dividing uNORM by -w [i] [j] is set again as uNORM, and if it is larger than uMAX4 in the operation register 607, it is stored in uMAX4. In addition, at this time, the value obtained by dividing vNORM by -w [i] [j] is updated to vNO
RM, and vNORM is stored in vMAX4 if it is larger than vMAX4 in the operation register 607. -If the reciprocal of w [i] [j] is greater than Winv2 in the operation register 607, W
Store the reciprocal of -w [i] [j] in inv2.

【0197】(ステップ6−2−6)w[i][j]=0、w[k]
[l]>0 のとき、uNORM を w[k][l] で除算した値を改め
て uNORM とし、演算レジスタ607内の uMAX5 と比較
して大きければ、uNORM を uMAX5 に格納する。又、こ
のとき、vNORM を w[k][l] で除算した値を改めて vNOR
M とし、演算レジスタ607内の vMAX5 と比較して大
きければ、vNORM を vMAX5 に格納する。
(Step 6-2-6) w [i] [j] = 0, w [k]
When [l]> 0, the value obtained by dividing uNORM by w [k] [l] is set again as uNORM. If it is larger than uMAX5 in the operation register 607, uNORM is stored in uMAX5. Also, at this time, the value obtained by dividing vNORM by w [k] [l] is re-established as vNOR.
M, and vNORM is stored in vMAX5 if it is larger than vMAX5 in the operation register 607.

【0198】(ステップ6−2−7)w[i][j]=0、w[k]
[l]<0 のとき、uNORM を -w[k][l] で除算した値を改
めてuNORM とし、演算レジスタ607内の uMAX6 と比
較して大きければ、uNORM をuMAX6 に格納する。又、こ
のとき、vNORM を -w[k][l] で除算した値を改めて vNO
RM とし、演算レジスタ607内の vMAX6 と比較して大
きければ、vNORM を vMAX6 に格納する。
(Step 6-2-7) w [i] [j] = 0, w [k]
When [l] <0, the value obtained by dividing uNORM by -w [k] [l] is set as uNORM again, and if it is larger than uMAX6 in the operation register 607, uNORM is stored in uMAX6. Also, at this time, the value obtained by dividing vNORM by -w [k] [l] is updated to vNO
RM, and vNORM is stored in vMAX6 if larger than vMAX6 in the operation register 607.

【0199】(ステップ6−2−8)w[i][j]=0、w[k]
[l]=0 のとき、uNORM が演算レジスタ607内の uMAX
7 と比較して大きければ、uNORM を uMAX7 に格納す
る。又、このとき、vNORM が演算レジスタ607内の v
MAX7 と比較して大きければ、vNORM を vMAX7 に格納す
る。
(Step 6-2-8) w [i] [j] = 0, w [k]
When [l] = 0, uNORM is the uMAX value in the arithmetic register 607.
If it is greater than 7, store uNORM in uMAX7. Also, at this time, vNORM is v in the operation register 607.
If it is larger than MAX7, store vNORM in vMAX7.

【0200】(ステップ6−3)ucounter1 及び ucoun
ter2 及び vcounter1 及び vcounter2 をインクリメン
ト装置602を用いて以下の処理を行なう。
(Step 6-3) ucounter1 and ucoun
The following processing is performed using the increment device 602 for ter2, vcounter1 and vcounter2.

【0201】vcounter2<vK ならば vcounter2 を1イ
ンクリメントする。
If vcounter2 <vK, vcounter2 is incremented by 1.

【0202】vcounter2=vK 且つ ucounter2<uK なら
ば vcounter2 を 0 で初期化し、ucounter2 を1インク
リメントする。
If vcounter2 = vK and ucounter2 <uK, vcounter2 is initialized to 0 and ucounter2 is incremented by 1.

【0203】vcounter2=vK 且つ ucounter2=uK 且つ
vcounter1<vK ならば vcounter2及び ucounter2 を 0
で初期化し、vcounter1 を1インクリメントする。
Vcounter2 = vK and ucounter2 = uK and
If vcounter1 <vK, set vcounter2 and ucounter2 to 0
Initialize with and increment vcounter1 by 1.

【0204】vcounter2=vK 且つ ucounter2=uK 且つ
vcounter1=vK 且つ ucounter1<uKならば vcounter2
及び ucounter2 及び vcounter1 を 0 で初期化し、uco
unter1 を1インクリメントする。
Vcounter2 = vK and ucounter2 = uK and
If vcounter1 = vK and ucounter1 <uK, vcounter2
, Ucounter2 and vcounter1 are initialized to 0, and uco
Increment unter1 by 1.

【0205】以上の処理の後に、(ステップ6−2)か
ら処理を繰り返す。
After the above processing, the processing is repeated from (Step 6-2).

【0206】vcounter2=vK 且つ ucounter2=uK 且つ
vcounter1=vK 且つ ucounter1=uKならば(ステップ6
−4)へ進む。
Vcounter2 = vK and ucounter2 = uK and
If vcounter1 = vK and ucounter1 = uK (step 6)
Go to -4).

【0207】(ステップ6−4)上記のようにして求め
たuMAX1 乃至 uMAX7 及び Winv1 及び Winv2 及び uTOL
より、分割数演算装置609を用いて、自由曲面の U
方向分割数( uN )を(数19)で計算することができ
る。
(Step 6-4) uMAX1 to uMAX7 and Winv1 and Winv2 and uTOL obtained as described above
Therefore, by using the division number calculation unit 609,
The number of direction divisions (uN) can be calculated by (Equation 19).

【0208】同様に、vMAX1 乃至 vMAX7 及び Winv1 及
び Winv2 及び vTOL より、分割数演算装置609を用
いて、自由曲面の V 方向分割数( vN )を(数20)
で計算することができる。
Similarly, from vMAX1 to vMAX7 and Winv1 and Winv2 and vTOL, the number of divisions (vN) of the free-form surface in the V direction is calculated by using the division number calculation unit 609 (Equation 20).
Can be calculated by

【0209】分割数計算手段501においては、分割数
を、以下のように算出することもできる。
The division number calculation means 501 can also calculate the division number as follows.

【0210】算出するための式として、“Surface algo
rithms using bounds on derivatives”(D. Filip, R.
Magedson, and R. Markot, 1986)の3.1節にある式を基
礎とする。
As a formula for calculating, "Surface algo
rithms using bounds on derivatives ”(D. Filip, R.
Based on the formula in Section 3.1 of Magedson, and R. Markot, 1986).

【0211】[0211]

【数27】 [Equation 27]

【0212】及びAnd

【0213】[0213]

【数28】 [Equation 28]

【0214】及びAnd

【0215】[0215]

【数29】 [Equation 29]

【0216】とするときWhen

【0217】[0217]

【数30】 [Equation 30]

【0218】及びAnd

【0219】[0219]

【数31】 [Equation 31]

【0220】とするとき、(数48)から(数14)を
導出したのと同様に、上記3.1節の式から、(数30)
および(数31)を導出することができ、自由曲面の U
方向分割数(この値を uN で表す)を(数30)で、
自由曲面の V 方向分割数(この値を vN で表す)を
(数31)で計算することができる。
Then, in the same way as (Equation 14) is derived from (Equation 48), (Equation 30) is obtained from the equation in the above section 3.1.
And (Equation 31) can be derived, and the free-form surface U
The number of direction divisions (this value is represented by uN) is (Equation 30),
The number of V-direction divisions of a free-form surface (this value is represented by vN) can be calculated using (Equation 31).

【0221】図7は、(数30)および(数31)で分
割数を計算する分割数計算手段501の機能構成図であ
る。
FIG. 7 is a functional block diagram of the division number calculation means 501 for calculating the number of divisions in (Equation 30) and (Equation 31).

【0222】図7の分割数計算手段の構成を用いた分割
数計算手段501は、次のような流れに沿って分割数を
計算する。
The division number calculation means 501 using the configuration of the division number calculation means of FIG. 7 calculates the division number according to the following flow.

【0223】(ステップ7−1)六つのカウンタ701
(ucounter1 及び ucounter2 及び ucounter3 及び vco
unter1 及び vcounter2 及び vcounter3)を 0 に初期
化する。二つの次数レジスタ703(uK 及び vK)を自
由曲面の U 方向の次数及び V 方向の次数で初期化す
る。演算レジスタ707(uuMAX1 乃至 uuMAX15 及び u
vMAX1 乃至 uvMAX15vvMAX1 乃至 vvMAX15 及び Winv1
及び Winv2)を 0.0 で初期化する。二つの多面体近似
パラメタレジスタ708(uTOL 及び vTOL)を多面体近
似パラメタで初期化する。
(Step 7-1) Six counters 701
(Ucounter1 and ucounter2 and ucounter3 and vco
unter1 and vcounter2 and vcounter3) are initialized to 0. Two degree registers 703 (uK and vK) are initialized with the degree in the U direction and the degree in the V direction of the free-form surface. Operation register 707 (uuMAX1 to uuMAX15 and u
vMAX1 to uvMAX15vvMAX1 to vvMAX15 and Winv1
And Winv2) is initialized to 0.0. Two polyhedron approximation parameter registers 708 (uTOL and vTOL) are initialized with polyhedron approximation parameters.

【0224】(ステップ7−2)変数 i を ucounter
1、変数 j を vcounter1 、変数 k を ucounter2、変数
lを vcounter2、変数 p を ucounter3 、変数 q を vc
ounter3 とするとき、uK及び vK及び ucounter1 及び v
counter1 及び制御点の集合704及びウェイトの集合
705より読み出した x[i-2][j], y[i-2][j], z[i-2]
[j], w[i-2][j]; x[i-1][j-1], y[i-1][j-1], z[i-1][j
-1], w[i-1][j-1]; x[i-1][j], y[i-1][j],z[i-1][j],
w[i-1][j]; x[i-1][j+1], y[i-1][j+1], z[i-1][j+1],
w[i-1][j+1]; x[i][j-2], y[i][j-2], z[i][j-2], w[i]
[j-2]; x[i][j-1], y[i][j-1], z[i][j-1], w[i][j-1];
x[i][j], y[i][j], z[i][j], w[i][j]; x[i][j+1], y
[i][j+1], z[i][j+1], w[i][j+1]; x[i][j+2], y[i][j+
2], z[i][j+2], w[i][j+2]; x[i+1][j-1], y[i+1][j-
1], z[i+1][j-1], w[i+1][j-1]; x[i+1][j], x[i+1]
[j],y[i+1][j], z[i+1][j], w[i+1][j]; x[i+1][j+1],
y[i+1][j+1], z[i+1][j+1],w[i+1][j+1]; x[i+2][j], y
[i+2][j], z[i+2][j], w[i+2][j]; x[k][l], y[k][l],
z[k][l], w[k][l]; x[p-1][q], y[p-1][q], z[p-1][q],
w[p-1][q]; x[p][q-1], y[p][q-1], z[p][q-1], w[p]
[q-1]; x[p][q], y[p][q], z[p][q], w[p][q]; x[p][q+
1], y[p][q+1], z[p][q+1], w[p][q+1]; x[p+1][q], y
[p+1][q], z[p+1][q], w[p+1][q] より、ノルム演算装
置706を用いて、以下の(ステップ7−2−1)乃至
(ステップ7−2−16)を行なう。
(Step 7-2) Set variable i to ucounter
1, variable j is vcounter1, variable k is ucounter2, variable
l for vcounter2, variable p for ucounter3, variable q for vc
ounter3, uK and vK and ucounter1 and v
x [i-2] [j], y [i-2] [j], z [i-2] read from counter1, control point set 704, and weight set 705
[j], w [i-2] [j]; x [i-1] [j-1], y [i-1] [j-1], z [i-1] [j
-1], w [i-1] [j-1]; x [i-1] [j], y [i-1] [j], z [i-1] [j],
w [i-1] [j]; x [i-1] [j + 1], y [i-1] [j + 1], z [i-1] [j + 1],
w [i-1] [j + 1]; x [i] [j-2], y [i] [j-2], z [i] [j-2], w [i]
[j-2]; x [i] [j-1], y [i] [j-1], z [i] [j-1], w [i] [j-1];
x [i] [j], y [i] [j], z [i] [j], w [i] [j]; x [i] [j + 1], y
[i] [j + 1], z [i] [j + 1], w [i] [j + 1]; x [i] [j + 2], y [i] [j +
2], z [i] [j + 2], w [i] [j + 2]; x [i + 1] [j-1], y [i + 1] [j-
1], z [i + 1] [j-1], w [i + 1] [j-1]; x [i + 1] [j], x [i + 1]
[j], y [i + 1] [j], z [i + 1] [j], w [i + 1] [j]; x [i + 1] [j + 1],
y [i + 1] [j + 1], z [i + 1] [j + 1], w [i + 1] [j + 1]; x [i + 2] [j], y
[i + 2] [j], z [i + 2] [j], w [i + 2] [j]; x [k] [l], y [k] [l],
z [k] [l], w [k] [l]; x [p-1] [q], y [p-1] [q], z [p-1] [q],
w [p-1] [q]; x [p] [q-1], y [p] [q-1], z [p] [q-1], w [p]
[q-1]; x [p] [q], y [p] [q], z [p] [q], w [p] [q]; x [p] [q +
1], y [p] [q + 1], z [p] [q + 1], w [p] [q + 1]; x [p + 1] [q], y
From [p + 1] [q], z [p + 1] [q], w [p + 1] [q], the following (Step 7-2-1) to ( Perform step 7-2-16).

【0225】(ステップ7−2−1)三次元ベクトル
(I[i][j]w[k][l]-J[i][j]P[k][l])w[p][q]-2(E[i][j]w
[k][l]-F[i][j]P[k][l])F[p][q] のノルム(この値を u
uNORM で表す)及び (K[i][j]w[k][l]-L[i][j]P[k][l])
w[p][q]-(E[i][j]w[k][l]-F[i][j]P[k][l])H[p][q]-(G
[i][j]w[k][l]-H[i][j]P[k][l])F[p][q] のノルム(こ
の値を uvNORM で表す)及び (M[i][j]w[k][l]-N[i][j]
P[k][l])w[p][q]-2(G[i][j]w[k][l]-H[i][j]P[k][l])H
[p][q] のノルム(この値を vvNORM で表す)を計算す
る。ここで、E[i][j]及び F[i][j] 及び G[i][j] 及び
H[i][j] は、数15及び数16及び数17及び数18で
あり、I[i][j] 及び J[i][j] 及び K[i][j] 及び L[i]
[j] 及び M[i][j] 及び N[i][j] は、
(Step 7-2-1) Three-dimensional vector
(I [i] [j] w [k] [l] -J [i] [j] P [k] [l]) w [p] [q] -2 (E [i] [j] w
[k] [l] -F [i] [j] P [k] [l]) The norm of F [p] [q] (this value is u
uNORM) and (K [i] [j] w [k] [l] -L [i] [j] P [k] [l])
w [p] [q]-(E [i] [j] w [k] [l] -F [i] [j] P [k] [l]) H [p] [q]-(G
[i] [j] w [k] [l] -H [i] [j] P [k] [l]) The norm of F [p] [q] (this value is represented by uvNORM) and (M [ i] [j] w [k] [l] -N [i] [j]
P [k] [l]) w [p] [q] -2 (G [i] [j] w [k] [l] -H [i] [j] P [k] [l]) H
Calculate the norm of [p] [q] (this value is represented by vvNORM). Where E [i] [j] and F [i] [j] and G [i] [j] and
H [i] [j] is Equation 15 and Equation 16 and Equation 17 and Equation 18, and I [i] [j] and J [i] [j] and K [i] [j] and L [i ]
[j] and M [i] [j] and N [i] [j] are

【0226】[0226]

【数21】 [Equation 21]

【0227】及びAnd

【0228】[0228]

【数22】 [Equation 22]

【0229】及びAnd

【0230】[0230]

【数23】 [Equation 23]

【0231】及びAnd

【0232】[0232]

【数24】 [Equation 24]

【0233】及びAnd

【0234】[0234]

【数25】 [Equation 25]

【0235】及びAnd

【0236】[0236]

【数26】 [Equation 26]

【0237】とする。It is assumed that

【0238】(ステップ7−2−2)w[i][j]w[k][l]w
[p][q]>0 のとき、uuNORM を w[i][j]w[k][l]w[p][q]
で除算した値を改めて uuNORM とし、演算レジスタ70
7内の uuMAX1 と比較して大きければ、uuNORM を uuMA
X1 に格納する。又、このとき、vNORM を w[i][j]w[k]
[l]w[p][q] で除算した値を改めて uvNORM とし、演算
レジスタ707内の uvMAX1 と比較して大きければ、uv
NORM を uvMAX1 に格納する。又、このとき、vvNORM を
w[i][j]w[k][l]w[p][q] で除算した値を改めて vvNORM
とし、演算レジスタ707内の vvMAX1 と比較して大
きければ、vvNORM を vvMAX1 に格納する。w[i][j]>0
のとき、w[i][j] の逆数が演算レジスタ707内の Win
v1 より大きければ、Winv1 に w[i][j] の逆数を格納す
る。w[i][j]<0 のとき、-w[i][j]の逆数が演算レジス
タ707内の Winv2 より大きければ、Winv2 に -w[i]
[j]の逆数を格納する。
(Step 7-2-2) w [i] [j] w [k] [l] w
When [p] [q]> 0, set uuNORM to w [i] [j] w [k] [l] w [p] [q]
The value divided by is set again as uuNORM, and the operation register 70
If it is larger than uuMAX1 in 7, uuNORM is uuMA
Store in X1. At this time, vNORM is set to w [i] [j] w [k]
The value divided by [l] w [p] [q] is set as uvNORM again, and if it is larger than uvMAX1 in the operation register 707, if it is larger, uv
Store NORM in uvMAX1. Also, at this time, vvNORM
The value divided by w [i] [j] w [k] [l] w [p] [q] is again vvNORM
Then, if it is larger than vvMAX1 in the operation register 707, vvNORM is stored in vvMAX1. w [i] [j]> 0
, The reciprocal of w [i] [j] is Win in the operation register 707.
If it is larger than v1, the reciprocal of w [i] [j] is stored in Winv1. When w [i] [j] <0, if the reciprocal of -w [i] [j] is greater than Winv2 in the operation register 707, Winv2 contains -w [i].
Stores the reciprocal of [j].

【0239】(ステップ7−2−3)w[i][j]w[k][l]w
[p][q]<0 のとき、uuNORM を -w[i][j]w[k][l]w[p][q]
で除算した値を改めて uuNORM とし、演算レジスタ7
07内の uuMAX2 と比較して大きければ、uuNORM を uu
MAX1 に格納する。又、このとき、uvNORM を -w[i][j]w
[k][l]w[p][q] で除算した値を改めて uvNORM とし、演
算レジスタ707内の uvMAX2 と比較して大きければ、
uvNORM を uvMAX1 に格納する。又、このとき、vvNORM
を -w[i][j]w[k][l]w[p][q] で除算した値を改めて vvN
ORM とし、演算レジスタ707内の vvMAX2 と比較して
大きければ、vvNORM を vvMAX2 に格納する。w[i][j]>
0 のとき、w[i][j] の逆数が演算レジスタ707内の W
inv1 より大きければ、Winv1 に w[i][j] の逆数を格納
する。w[i][j]<0 のとき、-w[i][j] の逆数が演算レジ
スタ707内の Winv2 より大きければ、Winv2 に -w
[i][j] の逆数を格納する。
(Step 7-2-3) w [i] [j] w [k] [l] w
When [p] [q] <0, set uuNORM to -w [i] [j] w [k] [l] w [p] [q]
The value divided by is set again as uuNORM, and the operation register 7
If it is larger than uuMAX2 in 07, set uuNORM to uu
Store in MAX1. Also, at this time, set uvNORM to -w [i] [j] w
The value divided by [k] [l] w [p] [q] is set to uvNORM again, and if it is larger than uvMAX2 in the operation register 707,
Store uvNORM in uvMAX1. Also, at this time, vvNORM
The value obtained by dividing by -w [i] [j] w [k] [l] w [p] [q] is vvN
If it is ORM and it is larger than vvMAX2 in the operation register 707, vvNORM is stored in vvMAX2. w [i] [j]>
When 0, the reciprocal of w [i] [j] is W in the operation register 707.
If it is larger than inv1, the reciprocal of w [i] [j] is stored in Winv1. When w [i] [j] <0, if the reciprocal of -w [i] [j] is larger than Winv2 in the operation register 707, Winw2 displays -w.
Stores the reciprocal of [i] [j].

【0240】(ステップ7−2−4)w[i][j]w[k][l]>
0、w[p][q]=0 のとき、uuNORM を w[i][j]w[k][l] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX3 と比較して大きければ、uuNORM を uuMAX3
に格納する。又、このとき、uvNORM を w[i][j]w[k]
[l] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX3 と比較して大きければ、uvNORM を
uvMAX3 に格納する。又、このとき、vvNORM を w[i][j]
w[k][l] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX3 と比較して大きければ、vvNORM
を vvMAX3 に格納する。w[i][j]>0 のとき、w[i][j]
の逆数が演算レジスタ707内の Winv1 より大きけれ
ば、Winv1に w[i][j] の逆数を格納する。w[i][j]<0
のとき、-w[i][j] の逆数が演算レジスタ707内の Wi
nv2 より大きければ、Winv2 に -w[i][j] の逆数を格納
する。
(Step 7-2-4) w [i] [j] w [k] [l]>
When 0, w [p] [q] = 0, the value obtained by dividing uuNORM by w [i] [j] w [k] [l] is set as uuNORM again, and the arithmetic register 707
UuNORM is larger than uuMAX3 in
To store. At this time, uvNORM is set to w [i] [j] w [k]
The value divided by [l] is set as uvNORM again. If it is larger than uvMAX3 in the operation register 707, if it is larger, uvNORM is
Store in uvMAX3. At this time, vvNORM is set to w [i] [j]
The value divided by w [k] [l] is set again as vvNORM, and if it is larger than vvMAX3 in the operation register 707, it is vvNORM.
Is stored in vvMAX3. When w [i] [j]> 0, w [i] [j]
If the reciprocal of is larger than Winv1 in the operation register 707, the reciprocal of w [i] [j] is stored in Winv1. w [i] [j] <0
, The reciprocal of -w [i] [j] is Wi in the operation register 707.
If it is larger than nv2, the reciprocal of -w [i] [j] is stored in Winv2.

【0241】(ステップ7−2−5)w[i][j]w[k][l]<
0、w[p][q]=0 のとき、uuNORM を -w[i][j]w[k][l] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX4 と比較して大きければ、uuNORM を uuMAX4
に格納する。又、このとき、uvNORM を -w[i][j]w[k]
[l] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX4 と比較して大きければ、uvNORM を
uvMAX4 に格納する。又、このとき、vvNORM を-w[i][j]
w[k][l] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX4 と比較して大きければ、vvNORM
を vvMAX4 に格納する。w[i][j]>0のとき、w[i][j]
の逆数が演算レジスタ707内の Winv1 より大きけれ
ば、Winv1 に w[i][j] の逆数を格納する。w[i][j]<0
のとき、-w[i][j] の逆数が演算レジスタ707内の Wi
nv2 より大きければ、Winv2 に -w[i][j] の逆数を格納
する。
(Step 7-2-5) w [i] [j] w [k] [l] <
When 0, w [p] [q] = 0, the value obtained by dividing uuNORM by -w [i] [j] w [k] [l] is set again as uuNORM, and the operation register 707
UuNORM is uuMAX4
To store. At this time, set uvNORM to -w [i] [j] w [k]
The value divided by [l] is set as uvNORM again, and if it is larger than uvMAX4 in the operation register 707, if it is larger, then uvNORM is changed to
Store in uvMAX4. Also, at this time, set vvNORM to -w [i] [j]
The value divided by w [k] [l] is set to vvNORM again, and if it is larger than vvMAX4 in the operation register 707, it is vvNORM.
Is stored in vvMAX4. When w [i] [j]> 0, w [i] [j]
If the reciprocal of is larger than Winv1 in the operation register 707, the reciprocal of w [i] [j] is stored in Winv1. w [i] [j] <0
, The reciprocal of -w [i] [j] is Wi in the operation register 707.
If it is larger than nv2, the reciprocal of -w [i] [j] is stored in Winv2.

【0242】(ステップ7−2−6)w[p][q]w[i][j]>
0、w[k][l]=0 のとき、uuNORM を w[p][q]w[i][j] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX5 と比較して大きければ、uuNORM を uuMAX5
に格納する。又、このとき、uvNORM を w[p][q]w[i]
[j] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX5 と比較して大きければ、uvNORM を
uvMAX5 に格納する。又、このとき、vvNORM を w[p][q]
w[i][j] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX5 と比較して大きければ、vvNORM
を vvMAX5 に格納する。w[i][j]>0 のとき、w[i][j]
の逆数が演算レジスタ707内の Winv1 より大きけれ
ば、Winv1に w[i][j] の逆数を格納する。w[i][j]<0
のとき、-w[i][j] の逆数が演算レジスタ707内の Wi
nv2 より大きければ、Winv2 に -w[i][j] の逆数を格納
する。
(Step 7-2-6) w [p] [q] w [i] [j]>
When 0 and w [k] [l] = 0, the value obtained by dividing uuNORM by w [p] [q] w [i] [j] is set again as uuNORM, and the operation register 707
UuNORM is uuMAX5
To store. At this time, uvNORM is set to w [p] [q] w [i]
The value divided by [j] is set as uvNORM again, and if it is larger than uvMAX5 in the operation register 707, if uvNORM is larger,
Store in uvMAX5. At this time, vvNORM is set to w [p] [q]
The value divided by w [i] [j] is set to vvNORM again, and if it is larger than vvMAX5 in the operation register 707, it is vvNORM.
Is stored in vvMAX5. When w [i] [j]> 0, w [i] [j]
If the reciprocal of is larger than Winv1 in the operation register 707, the reciprocal of w [i] [j] is stored in Winv1. w [i] [j] <0
, The reciprocal of -w [i] [j] is Wi in the operation register 707.
If it is larger than nv2, the reciprocal of -w [i] [j] is stored in Winv2.

【0243】(ステップ7−2−7)w[p][q]w[i][j]<
0、w[k][l]=0 のとき、uuNORM を -w[p][q]w[i][j] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX6 と比較して大きければ、uuNORM を uuMAX6
に格納する。又、このとき、uvNORM を -w[p][q]w[i]
[j] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX6 と比較して大きければ、uvNORM を
uvMAX6 に格納する。又、このとき、vvNORM を-w[p][q]
w[i][j] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX6 と比較して大きければ、vvNORM
を vvMAX6 に格納する。w[i][j]>0のとき、w[i][j]
の逆数が演算レジスタ707内の Winv1 より大きけれ
ば、Winv1 に w[i][j] の逆数を格納する。w[i][j]<0
のとき、-w[i][j] の逆数が演算レジスタ707内の Wi
nv2 より大きければ、Winv2 に -w[i][j] の逆数を格納
する。
(Step 7-2-7) w [p] [q] w [i] [j] <
When 0, w [k] [l] = 0, the value obtained by dividing uuNORM by -w [p] [q] w [i] [j] is set again as uuNORM, and the operation register 707
UuNORM is uuMAX6
To store. At this time, set uvNORM to -w [p] [q] w [i]
The value divided by [j] is set as uvNORM again, and if it is larger than uvMAX6 in the operation register 707, if uvNORM is larger,
Store in uvMAX6. Also, at this time, vvNORM is -w [p] [q]
The value divided by w [i] [j] is set to vvNORM again, and if it is larger than vvMAX6 in the operation register 707 and is larger, vvNORM
Is stored in vvMAX6. When w [i] [j]> 0, w [i] [j]
If the reciprocal of is larger than Winv1 in the operation register 707, the reciprocal of w [i] [j] is stored in Winv1. w [i] [j] <0
, The reciprocal of -w [i] [j] is Wi in the operation register 707.
If it is larger than nv2, the reciprocal of -w [i] [j] is stored in Winv2.

【0244】(ステップ7−2−8)w[i][j]=0、w[k]
[l]w[p][q]>0 のとき、uuNORM を w[k][l]w[p][q] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX7 と比較して大きければ、uuNORM を uuMAX7
に格納する。又、このとき、uvNORM を w[k][l]w[p]
[q] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX7 と比較して大きければ、uvNORM を
uvMAX7 に格納する。又、このとき、vvNORM を w[k][l]
w[p][q] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX7 と比較して大きければ、vvNORM
を vvMAX7 に格納する。
(Step 7-2-8) w [i] [j] = 0, w [k]
When [l] w [p] [q]> 0, the value obtained by dividing uuNORM by w [k] [l] w [p] [q] is set again as uuNORM, and the operation register 707
UuNORM is larger than uuMAX7 in
To store. At this time, uvNORM is set to w [k] [l] w [p]
The value divided by [q] is set to uvNORM again, and if it is larger than uvMAX7 in the operation register 707, then uvNORM is
Store in uvMAX7. At this time, vvNORM is set to w [k] [l]
The value divided by w [p] [q] is set again as vvNORM, and if it is larger than vvMAX7 in the operation register 707, it is vvNORM.
Is stored in vvMAX7.

【0245】(ステップ7−2−9)w[i][j]=0、w[k]
[l]w[p][q]<0 のとき、uuNORM を -w[k][l]w[p][q] で
除算した値を改めて uuNORM とし、演算レジスタ707
内の uuMAX8 と比較して大きければ、uuNORM を uuMAX8
に格納する。又、このとき、uvNORM を -w[k][l]w[p]
[q] で除算した値を改めて uvNORM とし、演算レジスタ
707内の uvMAX8 と比較して大きければ、uvNORM を
uvMAX8 に格納する。又、このとき、vvNORM を-w[k][l]
w[p][q] で除算した値を改めて vvNORM とし、演算レジ
スタ707内の vvMAX8 と比較して大きければ、vvNORM
を vvMAX8 に格納する。
(Step 7-2-9) w [i] [j] = 0, w [k]
When [l] w [p] [q] <0, the value obtained by dividing uuNORM by -w [k] [l] w [p] [q] is set again as uuNORM, and the operation register 707
If it is larger than uuMAX8 in the above, set uuNORM to uuMAX8
To store. At this time, set uvNORM to -w [k] [l] w [p]
The value divided by [q] is set as uvNORM again, and if it is larger than uvMAX8 in the operation register 707, if it is larger, then uvNORM is set.
Store in uvMAX8. Also, at this time, set vvNORM to -w [k] [l]
The value divided by w [p] [q] is set again as vvNORM, and if it is larger than vvMAX8 in the operation register 707, it is vvNORM.
Is stored in vvMAX8.

【0246】(ステップ7−2−10)w[i][j]>0、w[k]
[l]=0、w[p][q]=0 のとき、uuNORM を w[i][j] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX9 と比較して大きければ、uuNORM を uuMAX9
に格納する。又、このとき、uvNORM を w[i][j] で除算
した値を改めて uvNORM とし、演算レジスタ707内の
uvMAX9 と比較して大きければ、uvNORM を uvMAX9 に
格納する。又、このとき、vvNORM を w[i][j]で除算し
た値を改めて vvNORM とし、演算レジスタ707内の v
vMAX9 と比較して大きければ、vvNORM を vvMAX9 に格
納する。 w[i][j] の逆数が演算レジスタ707内の Wi
nv1 より大きければ、Winv1 に w[i][j] の逆数を格納
する。
(Step 7-2-10) w [i] [j]> 0, w [k]
When [l] = 0 and w [p] [q] = 0, the value obtained by dividing uuNORM by w [i] [j] is set again as uuNORM. If it is larger than uuMAX9 in the operation register 707, uuNORM UuMAX9
To store. At this time, the value obtained by dividing uvNORM by w [i] [j] is set as uvNORM again, and the value in the operation register 707
If it is larger than uvMAX9, store uvNORM in uvMAX9. Also, at this time, the value obtained by dividing vvNORM by w [i] [j] is set again as vvNORM, and v in the operation register 707
If it is larger than vMAX9, store vvNORM in vvMAX9. The reciprocal of w [i] [j] is Wi in the operation register 707.
If it is larger than nv1, the reciprocal of w [i] [j] is stored in Winv1.

【0247】(ステップ7−2−11)w[i][j]<0、w[k]
[l]=0、w[p][q]=0 のとき、uuNORM を -w[i][j] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX10 と比較して大きければ、uuNORM を uuMAX10
に格納する。又、このとき、uvNORM を -w[i][j]で除
算した値を改めて uvNORM とし、演算レジスタ707内
の uvMAX10 と比較して大きければ、uvNORM を uvMAX10
に格納する。又、このとき、vvNORM を -w[i][j] で除
算した値を改めて vvNORM とし、演算レジスタ707内
の vvMAX10と比較して大きければ、vvNORM を vvMAX10
に格納する。 -w[i][j] の逆数が演算レジスタ707内
の Winv2 より大きければ、Winv2 に -w[i][j] の逆数
を格納する。
(Step 7-2-11) w [i] [j] <0, w [k]
When [l] = 0 and w [p] [q] = 0, the value obtained by dividing uuNORM by -w [i] [j] is set again as uuNORM, and if it is larger than uuMAX10 in the operation register 707, uuNORM to uuMAX10
To store. At this time, the value obtained by dividing uvNORM by -w [i] [j] is set again as uvNORM, and if it is larger than uvMAX10 in the arithmetic register 707, if uvNORM is larger than uvMAX10,
To store. Also, at this time, the value obtained by dividing vvNORM by -w [i] [j] is set again as vvNORM. If it is larger than vvMAX10 in the operation register 707, if vvNORM is larger than vvMAX10,
To store. If the reciprocal of -w [i] [j] is larger than Winv2 in the operation register 707, the reciprocal of -w [i] [j] is stored in Winv2.

【0248】(ステップ7−2−12)w[i][j]=0、w[k]
[l]>0、w[p][q]=0 のとき、uuNORM を w[k][l] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX11 と比較して大きければ、uuNORM を uuMAX11
に格納する。又、このとき、uvNORM を w[k][l] で除
算した値を改めて uvNORM とし、演算レジスタ707内
の uvMAX11 と比較して大きければ、uvNORM を uvMAX11
に格納する。又、このとき、vvNORM を w[k][l] で除
算した値を改めて vvNORM とし、演算レジスタ707内
の vvMAX11 と比較して大きければ、vvNORM を vvMAX11
に格納する。
(Step 7-2-12) w [i] [j] = 0, w [k]
When [l]> 0 and w [p] [q] = 0, the value obtained by dividing uuNORM by w [k] [l] is set as uuNORM again, and if it is larger than uuMAX11 in the operation register 707, it is uuNORM. UuMAX11
To store. At this time, the value obtained by dividing uvNORM by w [k] [l] is set again as uvNORM, and if it is larger than uvMAX11 in the arithmetic register 707, if uvNORM is uvMAX11, then
To store. Also, at this time, the value obtained by dividing vvNORM by w [k] [l] is set again as vvNORM, and if it is larger than vvMAX11 in the arithmetic register 707, if vvNORM is larger than vvMAX11
To store.

【0249】(ステップ7−2−13)w[i][j]=0、w[k]
[l]<0、w[p][q]=0 のとき、uuNORM を -w[k][l] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX12 と比較して大きければ、uuNORM を uuMAX12
に格納する。又、このとき、uvNORM を -w[k][l]で除
算した値を改めて uvNORM とし、演算レジスタ707内
の uvMAX12 と比較して大きければ、uvNORM を uvMAX12
に格納する。又、このとき、vvNORM を -w[k][l] で除
算した値を改めて vvNORM とし、演算レジスタ707内
の vvMAX12と比較して大きければ、vvNORM を vvMAX12
に格納する。
(Step 7-2-13) w [i] [j] = 0, w [k]
When [l] <0 and w [p] [q] = 0, the value obtained by dividing uuNORM by -w [k] [l] is set as uuNORM again, and if it is larger than uuMAX12 in the operation register 707, uuNORM to uuMAX12
To store. At this time, the value obtained by dividing uvNORM by -w [k] [l] is set as uvNORM again. If it is larger than uvMAX12 in the operation register 707, if uvNORM is uvMAX12,
To store. Also, at this time, the value obtained by dividing vvNORM by -w [k] [l] is set again as vvNORM, and if it is larger than vvMAX12 in the operation register 707, if vvNORM is larger than vvMAX12,
To store.

【0250】(ステップ7−2−14)w[i][j]=0、w[k]
[l]=0、w[p][q]>0 のとき、uuNORM を w[p][q] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX13 と比較して大きければ、uuNORM を uuMAX13
に格納する。又、このとき、uvNORM を w[p][q] で除
算した値を改めて uvNORM とし、演算レジスタ707内
の uvMAX13 と比較して大きければ、uvNORM を uvMAX13
に格納する。又、このとき、vvNORM を w[p][q] で除
算した値を改めて vvNORM とし、演算レジスタ707内
の vvMAX13 と比較して大きければ、vvNORM を vvMAX13
に格納する。
(Step 7-2-14) w [i] [j] = 0, w [k]
When [l] = 0 and w [p] [q]> 0, the value obtained by dividing uuNORM by w [p] [q] is set again as uuNORM. If it is larger than uuMAX13 in the operation register 707, uuNORM UuMAX13
To store. At this time, the value obtained by dividing uvNORM by w [p] [q] is set again as uvNORM, and if it is larger than uvMAX13 in the operation register 707, uvNORM is set to uvMAX13.
To store. At this time, the value obtained by dividing vvNORM by w [p] [q] is set again as vvNORM. If it is larger than vvMAX13 in the operation register 707, if vvNORM is larger than vvMAX13
To store.

【0251】(ステップ7−2−15)w[i][j]=0、w[k]
[l]=0、w[p][q]<0 のとき、uuNORM を -w[p][q] で除
算した値を改めて uuNORM とし、演算レジスタ707内
の uuMAX14 と比較して大きければ、uuNORM を uuMAX14
に格納する。又、このとき、uvNORM を -w[p][q]で除
算した値を改めて uvNORM とし、演算レジスタ707内
の uvMAX14 と比較して大きければ、uvNORM を uvMAX14
に格納する。又、このとき、vvNORM を -w[p][q] で除
算した値を改めて vvNORM とし、演算レジスタ707内
の vvMAX14と比較して大きければ、vvNORM を vvMAX14
に格納する。
(Step 7-2-15) w [i] [j] = 0, w [k]
When [l] = 0 and w [p] [q] <0, the value obtained by dividing uuNORM by -w [p] [q] is set again as uuNORM, and if it is larger than uuMAX14 in the operation register 707, uuNORM to uuMAX14
To store. At this time, the value obtained by dividing uvNORM by -w [p] [q] is set again as uvNORM, and if it is larger than uvMAX14 in the operation register 707, then uvNORM is set to uvMAX14.
To store. At this time, the value obtained by dividing vvNORM by -w [p] [q] is set again as vvNORM, and if it is larger than vvMAX14 in the operation register 707, if vvNORM is vvMAX14,
To store.

【0252】(ステップ7−2−16)w[i][j]=0、w[k]
[l]=0、w[p][q]=0 のとき、uuNORM が演算レジスタ7
07内の uuMAX15 と比較して大きければ、uuNORM を u
uMAX15 に格納する。又、このとき、uvNORM が演算レジ
スタ707内の uvMAX15 と比較して大きければ、uvNOR
M を uvMAX15 に格納する。又、このとき、vvNORM が演
算レジスタ707内の vvMAX15 と比較して大きけれ
ば、vvNORM を vvMAX15 に格納する。
(Step 7-2-16) w [i] [j] = 0, w [k]
When [l] = 0 and w [p] [q] = 0, uuNORM is the arithmetic register 7.
If it is larger than uuMAX15 in 07, uuNORM is set to u
Store in uMAX15. At this time, if uvNORM is larger than uvMAX15 in the arithmetic register 707, uvNOR
Store M in uvMAX15. At this time, if vvNORM is larger than vvMAX15 in the operation register 707, vvNORM is stored in vvMAX15.

【0253】(ステップ7−3)ucounter1 及び ucoun
ter2 及び ucounter3 及び vcounter1 及び vcounter2
及び vcounter3 をインクリメント装置702を用いて
以下の処理を行なう。
(Step 7-3) ucounter1 and ucoun
ter2 and ucounter3 and vcounter1 and vcounter2
And vcounter3 using the increment device 702, the following processing is performed.

【0254】vcounter3<vK ならば vcounter3 を1イ
ンクリメントする。
If vcounter3 <vK, vcounter3 is incremented by 1.

【0255】vcounter3=vK 且つ ucounter3<uK なら
ば vcounter3 を 0 で初期化し、ucounter3 を1インク
リメントする。
If vcounter3 = vK and ucounter3 <uK, vcounter3 is initialized to 0 and ucounter3 is incremented by 1.

【0256】vcounter3=vK 且つ ucounter3=uK 且つ
vcounter2<vK ならば vcounter3及び ucounter3 を 0
で初期化し、vcounter2 を1インクリメントする。
Vcounter3 = vK and ucounter3 = uK and
If vcounter2 <vK, set vcounter3 and ucounter3 to 0
Initialize with and increment vcounter2 by 1.

【0257】vcounter3=vK 且つ ucounter3=uK 且つ
vcounter2=vK 且つ ucounter2<uKならば vcounter3
及び ucounter3 及び vcounter2 を 0 で初期化し、uco
unter2 を1インクリメントする。
Vcounter3 = vK and ucounter3 = uK and
If vcounter2 = vK and ucounter2 <uK, vcounter3
, Ucounter3 and vcounter2 are initialized to 0, and uco
Increment unter2 by 1.

【0258】vcounter3=vK 且つ ucounter3=uK 且つ
vcounter2=vK 且つ ucounter2=uK且つ vcounter1<vK
ならば vcounter3 及び ucounter3 及び vcounter2 及
びucounter2 を 0 で初期化し、vcounter1 を1インク
リメントする。
Vcounter3 = vK and ucounter3 = uK and
vcounter2 = vK and ucounter2 = uK and vcounter1 <vK
Then, vcounter3 and ucounter3 and vcounter2 and ucounter2 are initialized to 0, and vcounter1 is incremented by 1.

【0259】vcounter3=vK 且つ ucounter3=uK 且つ
vcounter2=vK 且つ ucounter2=uK且つ vcounter1=vK
且つ ucounter1<uK ならば vcounter3 及び ucounter
3及び vcounter2 及び ucounter2 及び vcounter1 を 0
で初期化し、ucounter1を1インクリメントする。
Vcounter3 = vK and ucounter3 = uK and
vcounter2 = vK and ucounter2 = uK and vcounter1 = vK
If ucounter1 <uK, vcounter3 and ucounter
3 and vcounter2 and ucounter2 and vcounter1 to 0
Initialize with and increment ucounter1 by 1.

【0260】以上の処理の後に、(ステップ7−2)か
ら処理を繰り返す。
After the above processing, the processing is repeated from (Step 7-2).

【0261】vcounter3=vK 且つ ucounter3=uK 且つ
vcounter2=vK 且つ ucounter2=uK且つ vcounter1=vK
且つ ucounter1=uK ならば(ステップ7−4)へ進
む。 (ステップ7−4)上記のようにして求めたuuMAX1 乃
至 uuMAX15 及び uvMAX1 乃至 uvMAX15 及び vvMAX1 乃
至 vvMAX15 及び Winv1 及び Winv2 及び uTOL 及び vT
OL より、分割数演算装置709を用いて、自由曲面の
U 方向分割数(この値を uN で表す)及び V 方向分割
数(この値を vN で表す)を、(数30)および(数3
1)で計算することができる。
Vcounter3 = vK and ucounter3 = uK and
vcounter2 = vK and ucounter2 = uK and vcounter1 = vK
If ucounter1 = uK, go to (Step 7-4). (Step 7-4) uuMAX1 to uuMAX15 and uvMAX1 to uvMAX15 and vvMAX1 to vvMAX15 and Winv1 and Winv2 and uTOL and vT obtained as described above
From the OL, using the division number arithmetic unit 709,
The number of divisions in the U direction (representing this value by uN) and the number of divisions in the V direction (representing this value by vN) are (Equation 30) and (Equation 3)
It can be calculated in 1).

【0262】次に、座標計算手段502は、上記いずれ
かの分割数計算手段501によって得られた分割数 uN
及び vN を用いて、自由曲面のパラメタ u=0, 1/uN, 2
/uN,…, 1; v=0, 1/vN, 2/vN, …, 1 の座標を計算す
る。座標の計算法としては、自由曲線の場合と同様に、
Horner の方法、前進差分法、Bezier 曲面であれば de
Casteljau アルゴリズムなどがある。
Next, the coordinate calculation means 502 calculates the number of divisions uN obtained by any one of the above division number calculation means 501.
And vN, the free-form surface parameter u = 0, 1 / uN, 2
Calculate the coordinates of / uN,…, 1; v = 0, 1 / vN, 2 / vN,…, 1. As the method of calculating the coordinates, as in the case of the free curve,
For Horner's method, forward difference method, Bezier surface, de
Casteljau algorithm etc.

【0263】Horner の方法に関しては、“Currves and
surfaces for computer aided geometric design, sec
ond edition”(G.Farin, 1990, Academic Press)のP.47
に詳述されている。前進差分法については、P.80-P.81
に、 de Casteljau アルゴリズムについては、P.29 に
詳述されている。
For Horner's method, see “Currves and
surfaces for computer aided geometric design, sec
ond edition ”(G. Farin, 1990, Academic Press) P.47
Are detailed in. For the forward difference method, see P.80-P.81.
The de Casteljau algorithm is detailed in P.29.

【0264】単位法線計算手段503は、上記の分割数
計算手段501によって得られた分割数 uN 及び vN を
用いて、自由曲面のパラメタ u=0, 1/uN, 2/uN, …,
1; v=0, 1/vN, 2/vN, …, 1 の単位法線を計算する。
単位法線の計算法としては、U方向及び V 方向のそれぞ
れの変化率(偏微分係数)を Horner の方法、前進差分
法、Bezier 曲面であれば de Casteljau アルゴリズム
などによって計算した後に、外積を計算し、最後に単位
化すれば良い。
The unit normal calculation means 503 uses the division numbers uN and vN obtained by the division number calculation means 501 to calculate the parameters u = 0, 1 / uN, 2 / uN, ..., Of the free-form surface.
1; Calculate the unit normal of v = 0, 1 / vN, 2 / vN,…, 1.
The unit normals are calculated by calculating the rate of change (partial differential coefficient) in each of the U and V directions using the Horner method, the forward difference method, the de Casteljau algorithm for Bezier surfaces, and then calculating the outer product. Then, unitize at the end.

【0265】この後に、多面体作成手段504は、分割
点、即ち、自由曲面のパラメタ u=0, 1/uN, 2/uN, …,
1; v=0, 1/vN, 2/vN, …, 1 の点を順次連結して、座
標計算手段502で計算した座標及び単位法線計算手段
503で計算した単位法線と共に多面体データを作成す
る。
Thereafter, the polyhedron creating means 504 divides the points, that is, the parameters u = 0, 1 / uN, 2 / uN, ..., Of the free-form surface.
1; v = 0, 1 / vN, 2 / vN, ..., 1 are sequentially connected, and the polyhedron data is obtained together with the coordinates calculated by the coordinate calculation means 502 and the unit normal calculated by the unit normal calculation means 503. create.

【0266】最後に、多面体作成手段504によって作
成された多面体データは、多面体表示手段に受け渡さ
れ、グラフィックディスプレイに表示される。
Finally, the polyhedron data created by the polyhedron creating means 504 is transferred to the polyhedron display means and displayed on the graphic display.

【0267】[0267]

【発明の効果】本発明によれば、自由曲線及び自由曲面
の分割数計算において、制御点のウェイトが正の部分、
0の部分、負の部分に分離して計算を行なうために、そ
れぞれの計算において、0による除算が生じない。従っ
て、いかなるウェイトの集合が与えられても、自由曲線
・曲面の分割数計算において0による除算が生じず、分
割数が不定になることがないために、グラフィックシス
テムのシステムダウン、暴走、あるいは、正しい表示が
得られないなどの不具合の発生を防止することができ
る。
According to the present invention, in the calculation of the number of divisions of a free curve and a free curved surface, a portion where the weight of the control point is positive,
Since the calculation is performed separately for the 0 part and the negative part, division by 0 does not occur in each calculation. Therefore, no matter what set of weights is given, division by 0 does not occur in the calculation of the number of divisions of the free-form curve / curved surface, and the number of divisions does not become indefinite. Therefore, the system of the graphic system goes down, runaway, or It is possible to prevent the occurrence of troubles such as not being able to obtain a correct display.

【図面の簡単な説明】[Brief description of drawings]

【図1】グラフィックシステムの表示手順の一例を示す
図である。
FIG. 1 is a diagram showing an example of a display procedure of a graphic system.

【図2】折線近似部の構成例を示す図である。FIG. 2 is a diagram illustrating a configuration example of a polygonal line approximation unit.

【図3】自由曲線の分割数計算部の構成例を示す図であ
る。
FIG. 3 is a diagram illustrating a configuration example of a free curve division number calculation unit.

【図4】自由曲線の分割数計算部の別の構成例を示す図
である。
FIG. 4 is a diagram illustrating another configuration example of a free curve division number calculation unit.

【図5】多面体近似部の構成例を示す図である。FIG. 5 is a diagram showing a configuration example of a polyhedral approximation unit.

【図6】自由曲面の分割数計算部の構成例を示す図であ
る。
FIG. 6 is a diagram illustrating a configuration example of a free-form surface division number calculation unit.

【図7】自由曲面の分割数計算部の別の構成例を示す図
である。
FIG. 7 is a diagram showing another configuration example of a free-form surface division number calculation unit.

【図8】グラフィックシステムの構成例を示す図であ
る。
FIG. 8 is a diagram showing a configuration example of a graphic system.

【図9】自由曲線の一例を示す図である。FIG. 9 is a diagram showing an example of a free curve.

【図10】自由曲面の一例を示す図である。FIG. 10 is a diagram showing an example of a free-form surface.

【符号の説明】 201,501…分割数計算部、202,502…座標
計算部、503…単位法線計算部、203…折線作成
部、504…多面体作成部、301,401,601,
701…カウンタ、302,402,602,702…
インクリメント装置、303,403,603,703
…次数レジスタ、304,404,604,704…制
御点の集合格納用メモリ、305,405,605,7
05…ウェイトの集合格納用メモリ、306,406,
606,706…ノルム演算装置、307,407,6
07,707…演算レジスタ、308,408…折線近
似パラメタ(許容誤差値)格納用レジスタ、608,7
08…多面体近似パラメタ(許容誤差値)格納用レジス
タ、309,409,609,709…分割数演算装
置、801…CPU、802…メインメモリ、803…
キーボード、804…マウス、805…スタイラスペ
ン、806…システムバス、807…グラフィックサブ
システム、808…グラフィックLSI、809…フレ
ームメモリバス、810…フレームメモリ、811…C
RT、812…ダイアル、813…ファイリング装置。
[Explanation of Codes] 201, 501 ... Division number calculation unit, 202, 502 ... Coordinate calculation unit, 503 ... Unit normal line calculation unit, 203 ... Fold line creation unit, 504 ... Polyhedron creation unit, 301, 401, 601,
701 ... Counter, 302, 402, 602, 702 ...
Increment device, 303, 403, 603, 703
... Degree registers, 304, 404, 604, 704 ... Control point set storage memory, 305, 405, 605, 7
05 ... Weight storage memory, 306, 406,
606, 706 ... Norm arithmetic unit, 307, 407, 6
07,707 ... Operation register, 308, 408 ... Broken line approximation parameter (allowable error value) storage register, 608, 7
08 ... Polyhedron approximation parameter (allowable error value) storage register, 309, 409, 609, 709 ... Division number calculation device, 801, ... CPU, 802 ... Main memory, 803 ...
Keyboard, 804 ... Mouse, 805 ... Stylus pen, 806 ... System bus, 807 ... Graphic subsystem, 808 ... Graphic LSI, 809 ... Frame memory bus, 810 ... Frame memory, 811 ... C
RT, 812 ... Dial, 813 ... Filing device.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 酒井原 徹 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立製作所マイクロエレクトロニク ス機器開発研究所内 (72)発明者 桑名 利幸 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 中村 辰喜 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Toru Sakaihara Toru Sakaihara 292 Yoshida-cho, Totsuka-ku, Yokohama-shi, Kanagawa Inside the Hitachi, Ltd. Microelectronics Equipment Development Laboratory (72) Inventor Toshiyuki Kuwana Mika Oita, Ibaraki Prefecture 5-2-1, Machi, Ltd. Inside the Omika Plant, Hitachi, Ltd. (72) Inventor, Tatsuki Nakamura 5-2-1, Omika-cho, Hitachi-shi, Ibaraki, inside Hitachi Process Computer Engineering Co., Ltd.

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】少なくとも、記憶装置、演算装置、およ
び、表示装置を備え、表示すべき曲線の制御点の集合
と、該制御点に掛かるウェイトの集合と、前記曲線を折
線で近似する際の精度に関する許容誤差値とを前記記憶
手段に保持し、前記制御点の集合、及び、前記ウェイト
の集合により定まる曲線を、前記演算装置において折線
により近似し、前記折線を前記表示装置に表示する際
に、 前記折線による近似に際して、前記許容誤差値、前記制
御点の集合及び前記ウェイトの集合に基づいて、前記折
線の数を決定し、 前記折線の数の決定に際して、 前記ウェイトの集合を、ウェイトが0である部分集合
と、ウェイトが0でない部分集合とに分離して、それぞ
れの部分集合について前記折線の数を決定するための演
算を行ない、 前記部分集合について演算された演算結果を統合して前
記折線の数を決定し、 前記演算に際して、 前記ウェイトが0でない部分集合においては前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分集合においては前記ウェイトによる除算をお
こなうプロセスを有しないことを特徴とする曲線表示方
法。
1. At least a storage device, a computing device, and a display device are provided, wherein a set of control points of a curve to be displayed, a set of weights applied to the control points, and a polygonal line for approximating the curve are used. When the storage unit holds the tolerance value for accuracy and the set of the control points, and the curve determined by the set of the weights is approximated to a polygonal line in the arithmetic device, and the polygonal line is displayed on the display device. In the approximation by the polygonal line, the number of the polygonal lines is determined based on the tolerance value, the set of control points, and the set of weights, and when the number of the polygonal lines is determined, the set of weights is weighted. Is divided into a subset in which the weight is 0 and a subset in which the weight is not 0, and an operation for determining the number of broken lines is performed for each subset. For the number of the polygonal lines by integrating the calculation results calculated for, and in the calculation, in the subset where the weight is not 0, there is a process of performing division by the weight, and in the subset where the weight is 0, Is a method of displaying a curve, which does not have a process of performing division by the weight.
【請求項2】少なくとも、記憶装置、演算装置、およ
び、表示装置を備え、表示すべき曲面の制御点の集合
と、該制御点に掛かるウェイトの集合と、前記曲面を多
面体で近似する際の精度に関する許容誤差値とを前記記
憶手段に保持し、前記制御点の集合、及び、前記ウェイ
トの集合により定まる曲面を、前記演算装置において多
面体により近似し、前記多面体を前記表示装置に表示す
る際に、 前記多面体による近似に際して、前記許容誤差値、前記
制御点の集合及び前記ウェイトの集合に基づいて、前記
多面体の数を決定し、 前記多面体の数を決定するに際して、 前記ウェイトの集合を、ウェイトが0である部分集合
と、ウェイトが0でない部分集合とに分離して、それぞ
れの部分集合について前記多面体の数を決定するための
演算を行ない、 前記部分集合について演算された演算結果を統合して前
記多面体の数を決定し、 前記演算に際して、 前記ウェイトが0でない部分集合においては前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分集合においてはウェイトによる除算をおこな
うプロセスを有しないことを特徴とする曲線表示方法。
2. At least a storage device, a computing device, and a display device, comprising a set of control points of a curved surface to be displayed, a set of weights applied to the control points, and a polyhedron for approximating the curved surface. When the storage unit holds the tolerance value for accuracy and the control point set, and a curved surface defined by the weight set, is approximated to a polyhedron in the arithmetic device, and the polyhedron is displayed on the display device. In the approximation by the polyhedron, based on the tolerance value, the set of control points and the set of weights, to determine the number of polyhedra, when determining the number of polyhedra, the set of weights, Separate into a subset having a weight of 0 and a subset having a non-weight of 0, and perform an operation for determining the number of the polyhedra for each subset. In the calculation, the number of the polyhedra is integrated by integrating the calculation results calculated for the subsets, and in the calculation, a division is performed by the weights in the subset where the weight is not 0. A curve display method characterized by not having a process of performing division by weight in a subset of 0.
【請求項3】請求項1、または2において、前記演算に
際して、前記ウェイトが0の部分においては、前記ウェ
イトによる除算を行なわずに、前記ウェイトが0でない
部分におけるウェイトの絶対値の最小値による除算をお
こなうプロセスを有することを特徴とする曲線表示方
法。
3. The method according to claim 1 or 2, wherein, in the calculation, when the weight is 0, division is not performed by the weight, and the absolute value of the weight is the minimum value in the non-weight portion. A curve display method having a process of performing division.
【請求項4】表示すべき曲線の制御点の集合と、該制御
点に掛かるウェイトの集合と、前記曲線を折線で近似す
る際の精度に関する許容誤差値とを保持するための記憶
手段と、前記制御点の集合及び前記ウェイトの集合によ
り定まる曲線を折線で近似する折線近似手段と、前記折
線を表示する表示手段とを備えるグラフィック表示シス
テムにおいて、 前記折線近似手段は、前記許容誤差値、前記制御点の集
合及び前記ウェイトの集合に基づいて、前記曲線を折線
により近似する際の折線の数を決定するための分割数計
算手段を備え、 前記分割数計算手段は、 前記ウェイトの集合を、ウェイトが0である部分集合
と、ウェイトが0でない部分集合とに分離して、それぞ
れの部分集合について前記折線の数を決定するための演
算を行なう分離演算手段と、 前記分離演算手段により前記部分集合について演算され
た演算結果を統合し、前記折線の数を決定する統合演算
手段と、 を備え、 前記分離演算手段は、前記ウェイトが0でない部分集合
についてはウェイトによる除算をおこなうプロセスを有
し、前記ウェイトが0の部分についてはウェイトによる
除算をおこなうプロセスを有しないことを特徴とするグ
ラフィック表示システム。
4. A storage unit for holding a set of control points of a curve to be displayed, a set of weights applied to the control points, and an allowable error value regarding accuracy when the curve is approximated by a polygonal line. In a graphic display system comprising a polygonal line approximating means for approximating a curve defined by the set of the control points and the set of the weights with a polygonal line, and a display means for displaying the polygonal line, the polygonal line approximating means is the allowable error value, the Based on the set of control points and the set of weights, a division number calculation means for determining the number of polygonal lines when approximating the curve by a polygonal line, the division number calculation means, the set of weights, Separation performance in which a subset having a weight of 0 and a subset having a weight of not 0 are separated, and an operation for determining the number of broken lines is performed for each subset. Means and integrated operation means for integrating the operation results operated on the subsets by the separation operation means to determine the number of broken lines, the separation operation means for the subsets in which the weight is not 0 Has a process of performing division by weight, and does not have a process of performing division by weight for the portion where the weight is 0.
【請求項5】表示すべき曲面の制御点の集合と、該制御
点に掛かるウェイトの集合と、前記曲面を多面体で近似
する際の精度に関する許容誤差値とを保持するための記
憶手段と、前記制御点の集合、及び、前記ウェイトの集
合により定まる曲面を多面体で近似する多面体近似手段
と、前記多面体を表示する表示手段とを備えるグラフィ
ック表示システムにおいて、 前記多面体近似手段は、前記許容誤差値、前記制御点の
集合及び前記ウェイトの集合に基づいて、前記曲面を多
面体により近似する際の多面体の数を決定するための演
算を行なう分割数計算手段を備え、 前記分割数計算手段は、 前記ウェイトの集合を、ウェイトが0である部分集合
と、ウェイトが0でない部分集合とに分離して、それぞ
れの部分集合について、前記多面体の数を決定するため
の演算を行なう分離演算手段と、 前記分離演算手段により前記部分集合について演算され
た演算結果を統合し、前記多面体の数を決定する統合演
算手段と、 を備え、 前記分離演算手段は、前記ウェイトが0でない部分集合
についてはウェイトによる除算をおこなうプロセスを有
し、前記ウェイトが0の部分についてはウェイトによる
除算をおこなうプロセスを有しないことを特徴とするグ
ラフィック表示システム。
5. A storage unit for holding a set of control points of a curved surface to be displayed, a set of weights applied to the control points, and an allowable error value regarding accuracy when approximating the curved surface with a polyhedron. In the graphic display system comprising a set of the control points, and a polyhedral approximation means for approximating a curved surface defined by the set of weights with a polyhedron, and a display means for displaying the polyhedron, the polyhedral approximation means is the allowable error value. , A division number calculation means for performing an operation for determining the number of polyhedra when approximating the curved surface by a polyhedron based on the set of control points and the set of weights, and the division number calculation means, The set of weights is separated into a subset with a weight of 0 and a subset with a non-zero weight, and the number of polyhedra for each subset. Separation operation means for performing an operation for determining, and integration operation means for integrating the operation results operated on the subset by the separation operation means to determine the number of polyhedra, the separation operation means The graphic display system is characterized in that it has a process of performing division by weight for a subset whose weight is not 0, and does not have a process of performing division by weight for the part whose weight is 0.
【請求項6】請求項4において、前記分離演算手段は、 前記曲線が1つのパラメータによる式で表されるとき、 (前記折線の数) =(前記曲線を表す式を前記パラメータにより一次微分
した式の、前記曲線の定義域内での最大値の絶対値)/
前記許容誤差値 という関係式に基づき、ウェイトが0である部分集合と
ウェイトが0でない部分集合の各々に対して、前記許容
誤差値、前記制御点の集合及び前記ウェイトの集合から
前記折線の数を決定するための演算手段を備え、 前記演算手段は、 前記ウェイトが0でない部分集合については前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分についてはウェイトによる除算をおこなうプ
ロセスを有しないことを特徴とするグラフィック表示シ
ステム。
6. The separation calculation means according to claim 4, wherein when the curve is represented by an expression with one parameter, (the number of broken lines) = (the equation representing the curve is first differentiated with the parameter). The absolute value of the maximum value of the expression within the domain of the curve) /
Based on the relational expression of the permissible error value, the number of the polygonal lines from the permissible error value, the set of control points, and the set of weights for each of the subset with weight 0 and the subset with weight 0. And a calculation process for performing a division by the weight for the subset whose weight is not 0, and a calculation process for performing the division for the part whose weight is 0. A graphic display system characterized by not having.
【請求項7】請求項4において、前記分離演算手段は、 前記曲線が1つのパラメータによる式で表されるとき、 (前記折線の数) =√((前記曲線を表す式を前記パラメータにより二次
微分した式の、前記曲線の定義域内での最大値の絶対
値)/(8×(前記許容誤差値))) という関係式に基づき、ウェイトが0である部分集合と
ウェイトが0でない部分集合の各々に対して、前記許容
誤差値、前記制御点の集合及び前記ウェイトの集合から
前記折線の数を決定するための演算手段を備え、 前記演算手段は、 前記ウェイトが0でない部分集合については前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分についてはウェイトによる除算をおこなうプ
ロセスを有しないことを特徴とするグラフィック表示シ
ステム。
7. The separation calculating means according to claim 4, wherein, when the curve is expressed by an expression with one parameter, (the number of the broken lines) = √ ((the expression representing the curve is defined by the parameter). Based on the relational expression of the next-differentiated expression, the absolute value of the maximum value within the domain of the curve) / (8 × (the allowable error value))), the subset with weight 0 and the portion with non-zero weight For each of the sets, there is provided operation means for determining the number of the polygonal lines from the tolerance value set, the control point set and the weight set, wherein the operation means is for a subset in which the weight is not zero. Has a process for performing division by the weight, and does not have a process for performing division by the weight when the weight is 0. .
【請求項8】請求項5において、前記分離演算手段は、
前記曲面が2つのパラメータによる式で表されるとき、 前記多面体の数と、 前記曲面を表す式を前記パラメータうちの一方のパラメ
ータにより一次微分した式の、前記曲線の定義域内での
最大値の絶対値と、 前記曲面を表す式を前記パラメータうちの他方のパラメ
ータにより一次微分した式の、前記曲線の定義域内での
最大値の絶対値と、 前記許容誤差値と、 の間に成立する関係に基づき、ウェイトが0である部分
集合とウェイトが0でない部分集合の各々に対して、前
記許容誤差値、前記制御点の集合及び前記ウェイトの集
合から前記多面体の数を決定するための演算手段を備
え、 前記演算手段は、 前記ウェイトが0でない部分集合については前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分についてはウェイトによる除算をおこなうプ
ロセスを有しないことを特徴とするグラフィック表示シ
ステム。
8. The separation calculation means according to claim 5,
When the curved surface is represented by an equation with two parameters, the number of the polyhedrons and the maximum value within the domain of the curve of the equation that is obtained by first differentiating the equation representing the curved surface with one of the parameters Absolute value, the absolute value of the maximum value within the domain of the curve, of the expression obtained by first differentiating the expression representing the curved surface with the other parameter of the parameters, and the allowable error value, the relationship established between Calculating means for determining the number of polyhedra from the allowable error value, the set of control points, and the set of weights for each of the subsets with a weight of 0 and the subsets with a non-zero weight. The calculation means has a process of performing division by the weight for the subset in which the weight is not 0, and a division process for the portion in which the weight is 0. A graphic display system characterized by having no process for division by weight.
【請求項9】請求項5において、前記分離演算手段は、
前記曲面が2つのパラメータによる式で表されるとき、 前記多面体の数と、 前記曲面を表す式を前記パラメータうちの一方のパラメ
ータにより二次微分した式の、前記曲線の定義域内での
最大値の絶対値と、 前記曲面を表す式を前記パラメータうちの他方のパラメ
ータにより二次微分した式の、前記曲線の定義域内での
最大値の絶対値と、 前記曲面を表す式を前記2つのパラメータのうちの一方
のパラメータにより一次微分した式を、他方のパラメー
タにより一次微分した式の、前記曲線の定義域内での最
大値の絶対値と、 前記許容誤差値と、 の間に成立する関係に基づき、ウェイトが0である部分
集合とウェイトが0でない部分集合の各々に対して、前
記許容誤差値、前記制御点の集合及び前記ウェイトの集
合から前記多面体の数を決定するための演算手段を備
え、 前記演算手段は、 前記ウェイトが0でない部分集合については前記ウェイ
トによる除算をおこなうプロセスを有し、前記ウェイト
が0の部分についてはウェイトによる除算をおこなうプ
ロセスを有しないことを特徴とするグラフィック表示シ
ステム。
9. The separation calculation means according to claim 5,
When the curved surface is represented by an equation with two parameters, the maximum value within the domain of the curve of the number of the polyhedrons and an equation obtained by quadratic differentiating the equation representing the curved surface with one of the parameters And an absolute value of the maximum value within the domain of the curve of an expression obtained by second-order differentiating the expression representing the curved surface with the other parameter of the parameters, and the expression representing the curved surface as the two parameters. Of the equation that is first-order differentiated by one of the parameters, the first-order derivative of the other parameter, the absolute value of the maximum value within the domain of the curve, and the allowable error value Based on the allowable error value, the set of control points, and the set of weights, the number of polyhedra is determined for each of the subset with weight 0 and the subset with weight 0. The calculation means has a process of performing division by the weight on the subset whose weight is not 0, and does not have a process of performing division by the weight on the part whose weight is 0. A graphic display system characterized in that
【請求項10】請求項4、5、6、7、8、または9に
おいて、前記分離演算手段は、前記ウェイトが0の部分
においては、前記ウェイトによる除算を行なわずに、前
記ウェイトが0でない部分におけるウェイトの絶対値の
最小値による除算をおこなうプロセスを有することを特
徴とするグラフィック表示システム。
10. The separating / calculating means according to claim 4, 5, 6, 7, 8 or 9, wherein said weight is not 0 in a portion where said weight is 0 without performing division by said weight. A graphic display system having a process of performing division by a minimum absolute value of weights in a part.
JP5035618A 1993-02-24 1993-02-24 Curved line/curved surface display method and graphic display system Pending JPH06251161A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5035618A JPH06251161A (en) 1993-02-24 1993-02-24 Curved line/curved surface display method and graphic display system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5035618A JPH06251161A (en) 1993-02-24 1993-02-24 Curved line/curved surface display method and graphic display system

Publications (1)

Publication Number Publication Date
JPH06251161A true JPH06251161A (en) 1994-09-09

Family

ID=12446846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5035618A Pending JPH06251161A (en) 1993-02-24 1993-02-24 Curved line/curved surface display method and graphic display system

Country Status (1)

Country Link
JP (1) JPH06251161A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000002165A1 (en) * 1998-07-03 2000-01-13 Sega Enterprises, Ltd. Method for generating polygon data and image display using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000002165A1 (en) * 1998-07-03 2000-01-13 Sega Enterprises, Ltd. Method for generating polygon data and image display using the same
US6600485B1 (en) 1998-07-03 2003-07-29 Sega Enterprises, Ltd. Polygon data generation method and image display apparatus using same

Similar Documents

Publication Publication Date Title
JP4385524B2 (en) Polygon data generation method and image display apparatus using the same
Greer An improvement of a recent Eulerian method for solving PDEs on general geometries
US5973705A (en) Geometry pipeline implemented on a SIMD machine
Gieng et al. Smooth hierarchical surface triangulations
US5317682A (en) Parametric curve evaluation method and apparatus for a computer graphics display system
KR100900824B1 (en) Sketch based 3d model creating apparatus and method
EP0240557A1 (en) Computer graphics, parametric patch parallel subdivision processor.
JP3932142B2 (en) Computer system for simulating physical processes
WO1995006291A1 (en) System and method for generating smooth low degree polynomial spline surfaces over irregular meshes
JPH08138082A (en) Method and system for generation of square mesh
JPH11345344A (en) Method and device for giving cubic curve
CN115618498B (en) Prediction method, device, equipment and medium for cross-basin flow field of aircraft
JP2002520750A (en) Numerical calculation method of parameterized surface in eigenspace of subdivision matrix of irregular patch
CN105279788B (en) A kind of method for generating object floodlight scanning body
Zhuo et al. Curvature-based offset distance: Implementations and applications
JPH06251161A (en) Curved line/curved surface display method and graphic display system
Sederberg et al. Birational 2d free-form deformation of degree 1× n
JPH03210680A (en) Curve generator
JP4526121B2 (en) Method for calculating intersection of triangle and line segment and its program
JP2677273B2 (en) A polygonal line approximation device for cubic Bezier curves
JP2001067491A (en) Method and device for image display using redivided polygon
Imlay et al. Recursive Sub-Division Technique for Higher-Order Pyramid and Prism Isosurface Visualization
JPH06231261A (en) Method for displaying parametric trimming curve by polygonal line approximation and graphic display system
JP3039387B2 (en) Apparatus for calculating intersection of B-spline curve and straight line in three-dimensional CAD
CN117217130B (en) Layer-by-layer advancing wall distance determining method, device and medium