KR920003479B1 - 곡선의 절선근사방법 및 장치 - Google Patents

곡선의 절선근사방법 및 장치 Download PDF

Info

Publication number
KR920003479B1
KR920003479B1 KR1019890009097A KR890009097A KR920003479B1 KR 920003479 B1 KR920003479 B1 KR 920003479B1 KR 1019890009097 A KR1019890009097 A KR 1019890009097A KR 890009097 A KR890009097 A KR 890009097A KR 920003479 B1 KR920003479 B1 KR 920003479B1
Authority
KR
South Korea
Prior art keywords
error
curve
circuit
midpoint
point
Prior art date
Application number
KR1019890009097A
Other languages
English (en)
Other versions
KR910001571A (ko
Inventor
마사유기 오까모또
미쓰루 야마우찌
도시야 미마
Original Assignee
후지쓰 가부시끼가이샤
야마모도 다꾸마
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
Priority claimed from JP63159208A external-priority patent/JP2538645B2/ja
Priority claimed from JP22243888A external-priority patent/JP2677273B2/ja
Application filed by 후지쓰 가부시끼가이샤, 야마모도 다꾸마 filed Critical 후지쓰 가부시끼가이샤
Publication of KR910001571A publication Critical patent/KR910001571A/ko
Application granted granted Critical
Publication of KR920003479B1 publication Critical patent/KR920003479B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

내용 없음.

Description

곡선의 절선근사방법 및 장치
제1도는 본 발명의 원리를 설명하는 도.
제2도는 본 발명에 따른 선분의 발생을 설명하는 도.
제3도는 본 발명에 따른 절선근사장치가 사용되는 그래픽 표시장치를 설명하는 블록회로도.
제4도는 본 발명에 따른 절선근사장치의 실시예를 설명하는 블록회로도.
제5도는 제4도의 곡선분할회로를 도시하는 블록도.
제6도는 3차 베제(Bezier)곡선의 분할을 설명하는 도.
제7도는 제5도의 좌표분할회로를 도시하는 회로도.
제8도는 제4도의 곡선분할회로의 다른 회로도.
제9도는 제4도의 오차연산회로의 오차연산을 도시하는 그래프.
제10도는 제4도의 오차연산회로도.
제11도는 제9도의 중심연산회로도.
제12도는 본 발명의 다른 실시예를 도시하는 흐름도.
제13a도 내지 제13d도는 본 발명의 또다른 실시예가 사용되는 3차 베제곡선을 설명하는 도.
제14도는 제13a도 내지 제13d도의 실시예를 수행하기 위한, 제4도의 오차연산회로의 수정 블록도.
제15도는 본 발명의 또다른 실시예를 도시하는 흐름도.
본 발명은 컴퓨터 그래픽 표시장치, 도형인쇄장치에 사용되는 곡선의 절선근사방법 및 장치에 관한 것이다.
일반적으로, 컴퓨터 그래픽 표시장치, 도형인쇄장치등에서, 곡선을 직접 발생시켜서 표시하고자 할 때에는 복잡한 처리를 필요로 하기 때문에, 대안으로서 곡선을 절선으로 근사하고, 그에 대응하는 다수의 선분들을 발생시켜서 표시한다.
종래에는, 곡선의 절선근사방법으로, 예를들면 곡선을 소정수의 부분들로 분할하고, 곡선상의 분할점들 좌표만을 계산하고, 곡선상의 상술된 좌표들을 연결하는 다수의 선분들을 갖는 절선으로 근사를 행한다.
그러나, 곡률이 큰 곡선을 절선에 의해 고정밀도로 표시하기 위해서는, 분할의 수, 즉 선분들의 수가 증가될 필요가 있고, 그 결과, 처리시간 및 데이터 양이 증대된다. 한편, 곡률이 작은 곡선에 대한 정밀도는 너무 높다.
그러므로, 본 발명의 목적은 처리시간 및 데이타 양을 증가시키지 않고 곡선을 절선으로 근사하는 것이다.
본 발명에 따라, 컴퓨터 그래픽 장치에서 곡선을 절선으로 근사하기 위해서는, 곡선을 분할점에 의해 2개의 곡선부분으로 분할하고, 곡선의 시점 및 종점을 연결하는 선분과 분할점 사이의 오차를 소정치와 비교한다. 그 오차가 작으면, 선분은 하나의 절선으로 취급하고, 그 오차가 크면, 상술된 처리를 반복한다.
결과적으로, 곡률이 큰 곡선에 대해서는 분할의 수, 즉 선분들의 수가 많으며, 곡률이 작은 곡선에 대해서는 적다. 다시말하면, 곡선에 대한 분할의 수, 즉 선분들의 수는 그의 곡률에 따라 변화되며, 처리시간 및 데이터 양의 증가없이 곡선이 다수의 선분들의 절선으로 효과적이고 부드럽게 근사된다.
본 발명은 수반된 도면들에 의거하여 상세히 서술하므로써 보다 명확히 이해될 것이다.
제1도는 본 발명의 원리를 설명하는 도로서, 곡선 X는 그위의 분할점 P0, P1, …, Pn에 의해 분할된 다수의 선분 L1, L2,…, Ln을 갖는 절선 Y로 근사된다. 본 발명에 따라, 곡률이 큰 곡선부분 X1에 대한 분할점 P0, P1,…의 수, 즉 선분 L1,L2,…,의 수가 크기 때문에, 고정밀도를 얻을 수 있다.
한편, 작은 곡률을 갖는 곡선부분 X2에 대한 분할점 Pk-1, …, Pn의 수 즉 선분 Lk, L,k+1,…, Ln의 수는 작으며, 그 결과 데이터 양을 감소시킬 수 있다.
제1도의 본 발명의 원리를 실현하기 위해서는 제2도에 도시된 바와 같이, 곡선 P1P2는 분할점 P11에서 2개의 곡선 P1P11과 P11P2로 분할되며, 선분
Figure kpo00001
와 분할점 P11사이의 오차 e가 계산된다. 결과적으로, 오차 e가 작으면, 상술된 선분
Figure kpo00002
는 절선 데이터로서 취급되며, 오차 e가 크면, 상술된 분할처리는 곡선에 대한 절선의 근사를 수행하기 위해 반복된다.
제3도는 본 발명이 작용되는 그래픽 표시장치를 나타내며, 참조번호 1은 도형 데이터 입력장치, 2는 좌표변환회로, 3은 곡선발생장치, 4는 묘화처리장치, 5는 CRT6을 제어하는 표시제어장치를 각각 나타낸다. 본 발명에 따른 절선근사장치는 곡선 발생장치 3으로서 사용된다. 또한, 본 발명은 도형인쇄장치로 적용될 수 있다. 이 경우에, 표시제어장치 5와 CTR6은 각각 인쇄제어장치와 프린터장치로 대치된다.
제4도는 본 발명의 실시예를 나타내는 것으로, 데이터 입력회로 1401은 3차 베제곡선을 표시하는 4개의 좌표 Q11-Q14를 처리하며, 그들을 곡선분할회로 402로 전송한다. 곡선분할회로 402는 데이터 입력회로 401로부터의 입력좌표 곡선이나 오차판정회로 404로부터 되돌아온 곡선데이타의 곡선을 ts : 1-ts로 분할처리하며, 오차연산회로 403은 분할된 곡선들의 분할점과 그것에 근사한 선분과의 오차를 연산한다. 오차판정회로 404는 오차연산회로 403에 의해 연산된 오차가 미리 설정된 임계값을 서로 비교한다. 결과적으로, 오차가 임계값보다 작으면, 회로 404는 데이터를 데이터 출력회로 405에 전송한다. 반대로, 오차가 임계값보다 작지 않으면, 회로 404는 데이터를 곡선분할회로 402로 되돌려 보낸다. 데이터 출력회로 405는 절선근사된 곡선의 데이터를 출력하는 처리를 행한다.
제4도의 회로402와 403 각각을 지금부터 보다 상세히 서술하기로 한다.
곡선분할회로402는, 예를들면 3차 베재곡선의 특성으로부터 곡선을 ts :1-ts의 비율로 양분하는 방법을 이용하므로써, 곡선을 분할하는 베재곡선 분할회로이다.(참고문헌 : George M.Chaikin, "An Algorithm for High Speed Curve Generation", Computer Graphics and Image Processing, vol.3, pp.346-349, 1979 : and Fujio Yamdguchi, "Shape Processing Technology By Computer Display"(II), Nikkan Industry, Tokyo, pp, 10-50, 1982).
제5도에서, 곡선분할회로 402는 레지스터 501-504, 좌표분할회로 505-510 및 레지스터 511-518로 이루어진다. 즉, 제7도에 나타 있는 바와 같이, 만일 곡선을 표시하는 좌표로서 Q11-Q14가 주어지면, 이 좌표들은 레지스터 501-504에 저장된다. 좌표 Q11과 Q14는 또한 각각 레지스터 511과 518에 직접 저장된다.
좌표분할회로 505는 좌표 Q11과 Q12사이를 비율 ts : 1-ts로 분할하여, 분할좌표 Q21을 발생하며, 그것을 레지스터 512에 저장한다. 좌표분할회로 506은 좌표 Q12와 Q13사이를 비율 ts : 1-ts로 분할해서 분할좌표 Q22를 발생한다. 좌표분할회로 507은 좌표 Q13과 Q14사이를 비율 ts : t-ts로 분할해서 분할좌표 Q23을 발생하고, 그것을 레지스터 517에 저장한다. 또한, 좌표분할회로 508은 좌표 Q21과 Q22사이를 비율 ts : 1-ts로 분할해서 분할좌표 Q32을 발생한다.
좌표분할회로 509는 좌표 Q22와 Q23사이를 비율 ts : 1-ts로 분할해서 분할좌표 Q32를 발생하고, 그것을 레지스터 516에 저장한다. 더욱이, 좌표분할회로 510은 좌표 Q31과 Q32사이를 비율 ts : 1-ts로 분할해서 분할좌표 Q41을 발생하고, 그것을 레지스터 514와 515에 저장한다. 이때에, 제6도에 나타낸 바와 같이, 좌표 Q41은 Q11, Q12, Q13, Q14로 주어진 곡선을 비율 ts : 1-ts로 분할하는 곡선상의 좌표이다. 동시에, 이 좌표 Q41에 있어서의 곡선은 2개의 곡선(Q11, Q21, Q31및 Q41과 : Q41, Q32, Q23및 Q14)으로 분할된다.
또한, 제5도에서, 레지스터 501-504의 입력좌표 Q11-Q14에 대한 데이터 입력회로 401과 오차판정회로 404의 스윗칭은 스위치(도시되지 않았음)로 수행된다.
제7도에 나타낸 바와 같이, 제5도의 좌표 분할회로 505-510 각각은 승산기 701과 702, 가산기 703으로 구성된다. 만일 ts가
Figure kpo00003
이면, 좌표분할회로 505-510은 간단하게 될 수 있다. 즉, 이 경우에 좌표분할회로 각각은 상수가 2일때 제11도에 나타낸 바와 같은 형태로 구성될 수 있는 중심연산회로를 포함할 수 있다.
제5도에서는 6개의 좌표분할회로 505-510 및 12개의 레지스터 501-504와 511-518이 제공되어야만 하기 때문에, 상대적으로 제조비용이 증가한다. 따라서, 제5도의 회로는 제8도에 나타낸 바와 같이 수정된다. 제8도에서, 참조번호 801은 레지스터 R0-R7을 갖는 3-포트 레지스터 파일을 나타낸다. 레지스터 파일 801에서, 2개의 레지스터에 대한 두가지 리이드 동작과 1개의 레지스터에 대한 한가지 라이트 동작은 동시에 행해진다. 또한, 참조번호 802는 가산기, 803는 1-비트 시프터, 804는 버스를 각각 나타낸다. 특히, 시프터 803은
Figure kpo00004
분할기로서 사용되며, 따라서 가산기 802와 시프터 803은 ts가
Figure kpo00005
인 조건에서 두 입력값의 평균치를 연산하는 제7도의 좌표분할회로 505에 대응한다.
제8도의 회로동작은 다음과 같다. 또한, 제8도의 회로는 마이크로 프로세서(도시되지 않았음)에 의해 제어된다. 제4도의 데이터 입력회로 401로부터의 입력 데이터 Q11-Q14는 각각 레지스터 파일 801의 레지스터 R0-Q3에 저장된다.
다음에, 레지스터R3의 값 Q14는 스택 메모리(도시하지 않았음)에 전송된다. 또한, 가산기 802와 시프터 803은 레지스터 R3와 R2의 값 Q14와 Q13으로부터 중점 Q23[즉, Q23←(Q14+Q13)/2]을 연산하여, 그것을 레지스터 R3에 전송한다.
그 다음에, 가산기 802와 시프터 803은 레지스터R2와 R1의 값 Q13과 Q12로부터 중점 Q22[즉, Q22←(Q13+Q12)/2]을 연산하여, 그것을 레지스터 R2에 전송한다.
그 이후에, 가산기 802와 시프터 803은 레지스터 R1과 R0의 값 Q12와 Q11로부터 중점 Q21[즉, Q21←(Q12+Q11)/2]을 연산하여, 그것을 레지스터 R1에 전송한다. 레지스터 R3의 값 Q23은 스택 메모리(도시되지 않았음)로 전송된다. 또한, 가산기 802와 시프터 803은 레지스터 R3와 R2의 값 Q23과 Q22로부터 중점Q32[즉, Q32←(Q23+Q22)/2]를 연산하여, 그것을 레지스터 R3으로 전송하며, 가산기 802와 시프터 803은 레지스터 R2와 R1의 값 Q22와 Q21로부터 중점 Q31[즉, Q31←(Q22+Q21)/2]을 연상하여, 그것을 레지스터R2로 전송한다. 또한 중점 Q32는 스택 메모리로 전송된다.
그 다음에, 가산기 802와 시프터 803은 레지스터 R3과 R2의 값 Q32와 Q31로부터 중점 Q41[즉, Q41←(Q32+Q31)/2]을 연산하여, 그것을 레지스터 R3으로 전송한다. 또한 중점 Q41은 스택 메모리로 전송된다.
따라서, 레지스터파일 801의 레지스터 R0-R3는 제6도의 좌표 Q11, Q21, Q31및 Q41을 각각 저장하며, 스태 메모리는 좌표 Q41, Q32, Q23및 Q14를 저장한다. 특히, 레지스터파일 801과 스택 메모리의 좌표 Q11, Q14, Q41만이 다음에 설명되는 바와 같이 제4도의 오차연산회로 403에 전송된다. Q11Q14와 같은 곡선과 선분
Figure kpo00006
사이의 오차(거리)를 계산하는 경우에, 제9도에 나타낸 바와 같이 형태를 생각할 수 있다. 제9도에서, 좌표 Q11과 Q14는 곡선의 시점과 종점이며, 좌표 Q41는 곡선 Q11Q14를 분할하는 곡선상의 좌표이며, 좌표 M은 선분
Figure kpo00007
의 중점이며, 점 D는 좌표 Q41로부터 선 2분
Figure kpo00008
로의 수직 교차점이다. 곡선의 시점 Q11과 종점 Q14를 연결하므로써 얻어지는 선분
Figure kpo00009
와 곡선을 분할하는 곡선상의 좌표 D사이의 거리는 좌표 Q41과 좌표 D 사이의 거리 d2이다.
그러나, 좌표 Q41로부터 선분
Figure kpo00010
로의 수직교점 D를 얻는 것은 힘들기 때문에, 즉 실용성이 없기 때문에, 선분
Figure kpo00011
의 중점 M과 좌표 Q41사이의 거리 d1이 오차로서 사용된다. 또한, 선분
Figure kpo00012
의 중점 M은 간단히 얻어지며, 계산된 거리 d1은 실제 거리 d2보다 항상 길다. 결과적으로, 오차를 얻어지는 거리 d1이 소정치와 비교되는 경우에, 근사곡선 (즉, 질선)의 정밀도가 저하되어, 근사곡선이 매끄러운 모양으로 된다.
이 경우에는, 두 점 사이의 거리를 구비하는 것으로 된다. 만일 두 좌표가 (X1,Y1)과 (X2,Y2)이면, 거리의 계산은 다음의 공식(1)로 나타내어진다.
Figure kpo00013
공식(1)에서는, 곱셈과 나눗셈을 필요로하며, 이것을 고속처리에 단점이 된다. 단지 덧셈/뺄셈만을 행하기 위해서는 다음의 공식(2)로 나타낸 바와 같은 두점 사이의 좌표차를 이용한다.
Figure kpo00014
따라서, 연산을 단순하고 고속으로 행할 수 있다. 또한 공식(2)에 의해 얻어지는 거리는 곡식(1) 에 의해 얻어지는 거리보다 항상 길기 때문에, 얻어진 거리가 오차와 비교되는 경우에, 근사곡선의 정밀도가 저하되어 얻어진 곡선이 매끄러운 모양으로 된다.
제9도에 나타낸 바와 같은 오차를 계산하기 위한 제4도의 오차연산회로 403은 제10도에 나타나 있다. 제10도에서, 참조번호 1001, 1002, 1003 및 1006은 레지스터들을 나타내며, 1004는 두 입력좌표의 중점을 얻기위한 중점연산회로를 나타내며, 1005는 두 입력좌표로부터 공식(2)에 의해 얻어지는 좌표오차를 연산하기 위한 좌표차 연산회로를 나타낸다.
최초에, 곡선분할회로 402로부터 출력되고, 2개의 곡선으로 분할된 곡선중, 오차연산에 필요한 좌표 Q11, Q14및 Q41이 각각 레지스터 1001-1003에 저장된다.
여기서, Q11은 곡선의 시점이고, Q14는 곡선의 종점이며, Q41은 시점 Q11과 종점 Q14를 갖는 곡선을 비율 ts : 1-ts로 분할하므로써 얻어지는 점이다. 결과적으로, Q11과 Q14는 중점 연산회로 1004에 입력되며, 따라서 시점 Q11과 종점 Q14를 연결하는 선분의 중점 M이 중점 연산회로 1004의 출력에서 얻어진다. 또한, 중점 연산회로 1004에 의해 얻어지는 시점 Q11과 종점 Q14를 연결하는 선분의 중점 M과 이 곡선을 비율 ts : 1-ts로 분할하는 곡선상의 점 Q41은 좌표차 연산회로에 입력된다. 결과적으로, 두 좌표사이의 차는 좌표차 연산회로 1005의 출력에서 얻어진다. 이 결과는 오차로서 레지스터 1006에 저장된다.
또한, 제10도의 중점 연산회로 1004는 제11도에 도시된 바와 같이 가산기 1101과 제산기(divider) 1102로 구성된다.
상술된 오차는 오차판정회로 404에 의해 임계치와 비교되며, 결과적으로, 오차가 임계치보다 작으면, 선분
Figure kpo00015
는 데이터 출력신호 405로부터 출력되며, 반대로 오차가 임계치 보다 작지 않으면, 곡선의 좌표 Q11, Q21, Q31및 Q41이 곡선분할회로 402에 다시 입력된다. 결과적으로, 이 곡선은 두 부분으로 분할된다. 이때에 다른 곡선의 좌표 Q41, Q32, Q23및 Q14는 곡선분할회로 402에 일시적으로 저장된다.
또한, 제8도의 경우에, 좌표 Q41, Q22, Q23및 Q41는 스택메모리(도시되지 않았음)에 저장된다. 다음에 Q11, Q21, Q31및 Q41로 정의된 곡선의 분할이 완료되면, Q41, Q32, Q23및 Q14로 정의된 곡선이 곡선분할회로 402에 입력되어 처리된다. 2차 베제곡선은 상술된 처리에 의하여 절선근시되어 출력된다.
상술된 실시예는 범용 마이크로 컴퓨터를 사용하는 프로그램들에 의해 실현될 수 있다. 예를들면, 제12도에 나타낸 바와 같이, 단계1201에서 3차 베제곡선의 데이터 Q11-Q14가 입력되며, 단계1202에서 3차 베제곡선 데이터를 발생하므로써 곡선분할이 행해진다. 다음에, 단계 1203에서 8개의 데이터 Q11, Q21,…, Q14가 랜던 액세스 메모리(RAM)에 저장되며, 단계 1204에서 Q11, Q21, …, Q14로 정의되는 곡선의 중점과 선분
Figure kpo00016
사이의 거리 e가 연산된다. 단계1205에서 거리 e가 임계치 Vth보다 더 작은지를 판별한다. 결과로서, 거리 e Vth이면, 단계 1206에서 선분
Figure kpo00017
가 절선 데이터로서 출력된다. 반대로, 거리 e Vth이면, 상술된 단계1202-1204가 반복된다. 즉, 곡선이 더 분할된다. 또한, 단계 1207과 1208에서 곡선에 대한 절선의 모든 선분들이 완전히 얻어질 때까지 단계1202-1206에서의 연산이 반복된다.
상술된 실시예에서, 곡선과 선분 사이의 오차가 연산되면,
Figure kpo00018
로 정의되는 조변수곡선(parametric Curve)의 특별한 경우인 3차 베제곡선의 제어점들을 사용하지 않는다.
즉, 3차 베제곡선은 다음과 같이 정의된다.
Figure kpo00019
여기서, t는 0-1로 변화하는 변수이다. 예를들면, t=0일 때, P(0)=Q11이고, t=1일 때, P(1)=Q14이다. 그러므로, 제13a도에 나타낸 바와 같이, 변수 t가 0에서 1로 변화하면, 곡선 x가 얻어진다.
곡선과 근사선분 사이의 오차를 연산하는 다른 방법을 제13a도 내지 제 13d도에 의거하여 서술하기로 한다. 즉, 3차 베제곡선의 특성인 볼록한 포락선(convex envelope)형태를 사용한다. 제13a도에 나타낸 바와 같이, 실제 곡선 X는 항상 Q11, Q12, Q13및 Q14로 정의되는 사다리꼴 안에 있다. 그러므로, 두 제어점 Q12와 Q13을 연결하는 선분의 중점 M1과 시점 Q11과 종점 Q14를 연결하는 선분의 중점 M2사이의 거리는 실제곡선 X와 선분 Q11Q14사이의 최대 거리보다 항상크다. 결과적으로, 거리 M1M2가 상술된 오차로서 사용되면, 곡선의 정밀도는 저하되지 않는다.
제13a도에서, 오차 e가 임계치 Vth보다 작을 때에만, 제13b도에 나타낸 바와 같이, 4개의 좌표 Q11, Q12, Q13및 Q14로 정의된 곡선 X는 4개의 좌표 Q11, Q21, Q13및 Q41로 정의되는 곡선 A1과 4개의 좌표 Q41, Q32, Q23및 Q14로 정의되는 곡선 X2로 분할된다.
다시, 제13c도에 나타낸 바와 같이, 곡선 X2의 오차 e1이 거리
Figure kpo00020
로 연산되고, 곡선 X2의 오차 e2가 거리
Figure kpo00021
로 연산된다. 예를들면, 만일, 곡선 X1의 오차 1이 임계치 Vth보다 작지 않으면, 곡선 X1은 제13d도에 나타낸 바와 같이, 2개의 곡선 X11과 X12로 더 분할된다.
제13a도-제13d도에 나타낸 바와 같은 오차연산을 행하기 위해서는 제14도의 오차연산회로가 제10도의 오차연산회로 대신에 사용된다. 제14도에서, 참조번호 1401, 1402, 1403, 1404 및 1408은 레지스터, 1405와 1406은 두 입력좌표의 중점을 구하기 위한 중점연산호로, 1407은 두입력좌표로부터 상술된 공식(2)에 의해 구해진 좌표 오차를 연산하기 위한 좌표차 연산회로를 각각 나타낸다. 중점연산회로 1405와 1406의 각각은 제10도에서와 동일하며, 또한 좌표차 연산회로 1407도 제10도에서와 동일하다. 예를들면, 제어점 Q12와 Q13을 연결하는 선분의 중점 M1은 중점 연산회로 1405의 출력에서 구해진다 또한, 시점 Q11과 종점 Q14를 연결하는 선분의 중점 M2는 중점 연산회로 1406의 출력에서 구해진다.
결과적으로, 두 중점 M1과 M2사이의 차는 좌표 연산회로 1407의 출력에서 얻어진다. 이 결과는 오차 e로서 레지스터 1408에 저장된다.
제14도의 회로를 사용하는 상술된 실시예는 또한 범용 마이크로 컴퓨터를 사용하는 프로그램들에 의하여 실현될 수 있다. 예를들면, 제15도에 나타낸 바와같이, 단계 1501에서 3차 배제곡선의 데이터 Q11-Q14가 입력되며, 단계1502에서 거리(오차) e가 상술된 공식(2)에 따라 연산된다. 다음에, 단계1503에서 , 거리 e가 임계치 Vth보다 작은지의 여부를 판별한다. 결과로서, e<Vth이면, 단계1506에서 선분
Figure kpo00022
가 절선 데이터의 한 선분으로서 출력된다. 만일 e>Vth이면, 단계 1504와 1505로 제어를 계속한다.
단계 1504에서 곡선분할은 3차 베제곡선 데이터를 발생하므로써 행해지며, 단계1505에서 8개의 데이터 Q11, Q21,… 및 Q14는 RAM에 저장되며, 제어는 단계1502로 되돌아 간다
즉, 곡선의 분할이 반복된다. 또한, 단계1507과 1508에서, 곡선에 대한 절선의 모든 선분들이 완전히 얻어질 때까지 단계 1502-1506에서의 연산이 반복된다.
상술된 바와 같이, 본 발명에 따라, 곡선에 대한 분할의 수, 즉 곡전에 대한 절선의 선분들 수가 그 곡선의 곡률에 따라 변화되기 때문에, 곡선은 처리시간 및 데이터량을 증가시키지 않고 효과적이고 매끄럽게 절선 근사될 수 있다.

Claims (12)

  1. 시점(P1)과 종점(P2)을 갖는 곡선의 절선근사방법에 있어서, 상기 곡선상의 분할점(P11)에서 2개의 곡선부분(P1P11, P11P-2)으로 상기 곡선을 분할하는 단계와, 상기 곡선의 시점과 종점을 연결하는 선분
    Figure kpo00023
    과 상기 분할점 사이의 오차(e)를 계산하는 단계와, 상기 오차(e)가 소정치(Vth)보다 작은지를 판정하는 단계와, 상기 오차가 상기 소정치 보다 작으면, 상기 절선의 한 부분으로서 상기 절선을 발생하는 단계와, 상기 오차가 상기 소정치 보다 작지 않으면, 상기 곡선을 상기 곡선부분들의 각각의 대치하여 상기 오차계산단계, 상기 판정단계, 및 상기 선분발생 단계의 처리를 반복하는 단계들로 이루어지는 절선근사방법.
  2. 제1항에 있어서, 상기 오차계산 단계가 상기 선분의 중점을 연산하는 단계와, 상기 오차로서 상기 중점과 상기 분할점 사이의 거리를 연산하는 단계를 더 포함하는 절선근사방법.
  3. 제2항에 있어서, 상기 거리가 상기 중점과 상기 분할점 사이의 좌표 차이인 절선근사방법.
  4. 곡선의 절선근사방법에 있어서, 3차 베제곡선에 대한 시점(Q11), 첫번째 제어점(Q12), 두번째 제어점(Q13) 및 종점(Q14)을 발생하는 단계와, 상기 3차 베제곡선의 상기 첫번째와 두번째 제어점들 사이의 첫번째 중점(M1)을 연산하는 단계와, 상기 3차 베제곡선의 상기 시점과 종점들 사이의 두번째 중점(M2)을 연산하는 단계와, 상기 첫번째와 두번째 점들 사이의 오차(e)를 연산하는 단계와, 상기 오차(e)가 소정치(Vth) 보다 작은지를 판정하는 단계와, 상기 오차가 상기 소정치보다 작으면, 상기 절선의 한 부분으로서 상기 3차 베제곡선의 상기 시점과 종점을 연결하는 선분을 발생하는 단계와, 상기 오차가 상기 소정치보다 작지 않으면, 상기 3차 베제곡선을 2개의 3차 베제곡선으로 더 분할하므로써 상기 네점을 발생하는 단계, 상기 첫번째 중점 연산단계, 상기 두번째 중점 연산단계 및 상기 선분발생단계의 처리를 반복하는 단계들로 이루어지는 절선근사방법.
  5. 제4항에 있어서, 상기 오차연산단계가 상기 첫번째와 두번째 중점들 사이의 거리를 연산하는 절선근사방법.
  6. 제5항에 있어서, 상기 거리가 상기 첫번째와 두번째 중점들 사이의 좌표차이인 절선근사방법.
  7. 시점(Q11)과 종점(Q14)를 갖는 곡선의 절선근사장치에 있어서, 분할점(Q41)에서 2개의 곡선부분(Q11Q41, Q41Q14)으로 상기 곡선을 분할하기 위한 곡선분할회로(402)와, 상기 시점과 종점을 연결하는 선분
    Figure kpo00024
    과 상기 분할점 사이의 오차(e)를 연산하기 위한, 상기 곡선 분할회로에 접속되는 오차연산회로(403)와, 상기 오차가 소정이(Vth)보다 작은지를 판정하기 위한, 상기 오차연산회로와 상기 곡선분할 회로에 접속되는 오차 판정회로(404)와, 상기 오차가 소정치보다 작은 경우에, 상기 절선의 한 부분으로서 상기 선분을 발생하기 위한, 상이 오차 판정회로에 접속되는 선분발생회로(405)와, 상기 오차가 상기 소정치 보다 작지 않은 경우에, 상기 곡선을 상기 곡선부분들 각각으로 대치하여 상기 오차연산회로의 동작을 반복하게 하는 상기 오차판정회로 등으로 이루어지는 절선근사장치.
  8. 제7항에 있어서, 상기 오차연산회로가 상기 선분의 중점을 연산하기 위한, 상기 곡선 분할회로에 접속되는 중점 연산회로(1004)와, 상기 오차로서 상기 중점과 상기 분할점 사이의 거리를 연산하기 위한, 상기 중점 연산회로와 상기 곡전분할회로에 접속되는 거리 연산회로(1000)를 포함하는 절선근사장치.
  9. 제8항에 있어서, 상기 거리가 상기 중점과 상기 분할점 사이의 좌표차이인 절선근사장치.
  10. 곡선의 절선근사장치에 있어서, 3차 베제곡선에 대한 시점 (Q11), 첫번째 제어점(Q12), 두번째 제어점(Q13) 및 종점 (Q14)을 발생하기 위한 데이터 입력회로(401)와, 상기 3차 베제곡선의 상기 첫번째와 두번째 제어점들을 연결하는 선분의 첫번째 중점(M1)을 연산하기 위한, 상기 데이터 입력회로에 접속되는 첫번째 중점 연산회로(1405)와, 상기 3차 베제곡선의 상기 시점과 종점을 연결하는 선분의 두번째 중점(M2)을 연산하기 위한 상기 데이터 입력회로에 접속되는 두번째 중점 연산회로(1406)와, 상기 첫번째와 두번째 중점들 사이의 오차(e)를 연산하기 위한, 상기 첫번째와 두번째 중점 연산회로들에 접속되는 오차연산회로(1407)와, 상기 오차(e)가 소정치(Vth)보다 작은지를 판정하기 위한, 상기 오차연산회로에 접속되는 오차 판정회로(404)와, 상기 오차가 상기 소정치보다 작은 경우에, 상기 절선의 한 부분으로서 상기 3차 베제곡선의 상기 시점과 종점 사이를 연결하는 선분을 발생하기 위한, 상기 오차판정회로에 접속되는 선분발생회로(405)와, 상기 오차가 상기 소정치보다 작지 않은 경우에, 상기 3차 베제곡선을 2개의 3차 베제곡선으로 더 분할하여 상기 첫번째 중점 연산회로, 상기 두번째 중점 연산회로 및 상기 선분발생회로의 동작을 반복하게 하는 상기 오차 판정회로등으로 이루어지는 절선근사장치.
  11. 제10항에 있어서, 상기 오차연산회로가 상기 첫번째와 두번째 중점들 사이의 거리를 연산하는 절선근사장치.
  12. 제10항에 있어서, 상기 거리가 상기 첫번째와 두번째 중점들 사이의 좌표차이인 절선근사장치.
KR1019890009097A 1988-06-29 1989-06-29 곡선의 절선근사방법 및 장치 KR920003479B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP63159208A JP2538645B2 (ja) 1988-06-29 1988-06-29 曲線の折線近似装置
JP63-159208 1988-06-29
JP22243888A JP2677273B2 (ja) 1988-09-07 1988-09-07 3次ベジェ曲線の折線近似装置
JP63-222438 1988-09-07

Publications (2)

Publication Number Publication Date
KR910001571A KR910001571A (ko) 1991-01-31
KR920003479B1 true KR920003479B1 (ko) 1992-05-01

Family

ID=26486080

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890009097A KR920003479B1 (ko) 1988-06-29 1989-06-29 곡선의 절선근사방법 및 장치

Country Status (3)

Country Link
EP (1) EP0349182B1 (ko)
KR (1) KR920003479B1 (ko)
DE (1) DE68927786D1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02176879A (ja) * 1988-12-28 1990-07-10 Toshiba Corp パラメータ曲線発生器
JP2734711B2 (ja) * 1990-01-12 1998-04-02 日本電気株式会社 曲線発生装置
JPH0458378A (ja) * 1990-06-28 1992-02-25 Mitsubishi Heavy Ind Ltd ベジエ曲線を分割して展開する方法
JP2961121B2 (ja) * 1990-10-17 1999-10-12 セイコープレシジョン株式会社 曲線近似装置
US5363479A (en) * 1992-07-02 1994-11-08 Microsoft Corporation System and method for rendering bezier splines
FR2698192B1 (fr) * 1992-11-16 1995-09-08 Ona Electro Erosion Système de génération en deux dimensions de la géométrie d'un modèle par vision artificielle.
DE19508486A1 (de) * 1995-03-09 1996-09-12 Mannesmann Ag Verfahren und Vorrichtung zur Reduzierung einer aus einem Fahrzeug zu übertragenden Datenmenge
JPH08329261A (ja) * 1995-05-31 1996-12-13 Canon Inc パラメータ曲線発生器
CN102129710A (zh) * 2010-12-30 2011-07-20 北京像素软件科技股份有限公司 一种飞行路径模拟方法及系统
CN102903134B (zh) * 2012-09-13 2016-05-04 烽火通信科技股份有限公司 快速绘制多次曲线的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3860805A (en) * 1973-05-07 1975-01-14 Bendix Corp Method and apparatus for producing a fairing contour in numerical control systems

Also Published As

Publication number Publication date
EP0349182A2 (en) 1990-01-03
EP0349182A3 (en) 1991-08-21
EP0349182B1 (en) 1997-02-26
DE68927786D1 (de) 1997-04-03
KR910001571A (ko) 1991-01-31

Similar Documents

Publication Publication Date Title
US5214754A (en) Method and apparatus for approximating polygonal line to curve
EP0249705B1 (en) Method and apparatus for producing a curved image on a graphics display device
US5363479A (en) System and method for rendering bezier splines
KR920003479B1 (ko) 곡선의 절선근사방법 및 장치
US4608660A (en) Data processing system with condition data setting function
US6065031A (en) Log converter utilizing offset and method of use thereof
US5309553A (en) Apparatus for and method of generating a straight line of pixels in a discrete coordinate system
US6005988A (en) Method and apparatus for rapid digital image resizing
JP2677273B2 (ja) 3次ベジェ曲線の折線近似装置
KR920002572B1 (ko) 부호변환회로
JPH10283340A (ja) 演算プロセッサ
JP2538645B2 (ja) 曲線の折線近似装置
JP2588257B2 (ja) 輪郭近似方式
KR940008611B1 (ko) Ieee 754-1985 표준에 따라서 라운딩한 2진 부동 소숫점 연산
JP3059739B2 (ja) 曲線描画機能を備えた情報処理装置および処理方法
JP2737933B2 (ja) 除算装置
JPH01319880A (ja) 塗りつぶし処理装置
JPH0991447A (ja) ベジエ曲線近似装置
SU547792A1 (ru) Устройство дл вычислени кратных интегралов
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서
EP0544269B1 (en) Character generation device and method therefor
JPH05181646A (ja) 演算装置
JPH09212667A (ja) 線分データ変換方法及び装置
JPH0683972A (ja) 曲線発生装置
EP0631253A2 (en) A device for use in the digital processing of a graphic image containing a straight line

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19990413

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee