KR0139036B1 - 직선묘화장치 - Google Patents

직선묘화장치

Info

Publication number
KR0139036B1
KR0139036B1 KR1019930031222A KR930031222A KR0139036B1 KR 0139036 B1 KR0139036 B1 KR 0139036B1 KR 1019930031222 A KR1019930031222 A KR 1019930031222A KR 930031222 A KR930031222 A KR 930031222A KR 0139036 B1 KR0139036 B1 KR 0139036B1
Authority
KR
South Korea
Prior art keywords
constant
coordinate
coordinates
variable
designated
Prior art date
Application number
KR1019930031222A
Other languages
English (en)
Other versions
KR950001547A (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
Application filed by 모리시타 요이찌, 미쯔시다덴기산교 가부기가이샤 filed Critical 모리시타 요이찌
Publication of KR950001547A publication Critical patent/KR950001547A/ko
Application granted granted Critical
Publication of KR0139036B1 publication Critical patent/KR0139036B1/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/20Function-generator circuits, e.g. circle generators line or curve smoothing circuits
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)

Abstract

본 발명은, 그릴려고 하는 직선이 격자점사이의 중간점을 통과하는 경우에 다른 쪽에 격자점을 묘화하는 스프트웨어에 대해서도, 호환성이 있는 직선묘화장치를 제공하는 것을 목적으로 한것으로서, 그 구성에 있어서, 종점입력부(10), 시점입력부(11), 묘화점좌표유지부(12), 증가정수유지부(13), 오차변수유지부(14), 제 1 가산변수유지부(15), 제 2가산변수유지부(16), 직선기울기정수유지부(17), 초기화부(18), 종료제어부(19), 묘화부(20), 좌표변수제어부(21), 오차변수제어부(22), 지정정수격납부(23), 지정정수유지부(24), 지정정수제어부(25)를 구비하고, 묘화할려고 하는 직선이, 격자점사이의 중간점을 통과하면 오차변수제어부(22)가 판정하면, 좌표변수제어부(21)는 지정정수유지부(24)가 유지하는 지정정수의 값에 따라서, 표시하는 격자점을 결정하는 것을 특징으로 한것이다.

Description

직선묘화장치
제 1 도는 상기 실시예에 있어서의 직선묘화장치의 구성블록도
제 2 도(a)는 상기 실시예에 있어서의 직선묘화장치의 기동시의 동작을 표시한 순서도
제 2 도(b)는 상기 실시예에 있어서의 직선묘화장치의 직선묘화시의 동작을 표시한 순서도
제 3 도는 상기 실시예에 있어서의 표시되는 직선의 지정정수(定數)의 설정내용을 표시한 설명도
(a)는 표시되는 직선의 기울기에 상당하는 부호와 지정정수와의 대응표
(b)는 직선의 기울기에 상당하는 부호가 표시한 직선의 기울기의 존재영역을 표시한 도면
제 4 도는 상기 실시예에 있어서의 표시된 직선의 예
제 5 도는 상기 실시예에 있어서의 직선묘화장치의 동작을 순서도
제 6 도는 상기 실시예에 있어서의 표시되는 직선의 예를 표시한 설명도
제 7 도는 종래의 직선묘화장치의 구성도
제 8 도는 종래의 직선묘화장치의 동작의 순서도
제 9 도는 종래의 직선묘화장치에 있어서의 묘화되는 직선의 예
10,70 : 종점입력부11,71 : 시점입력부
12,72 : 묘화점좌표부13,73 : 증가정수유지
14,74 : 오차변수유지부15,75 : 제 1가산변수유지부
16,76 : 제 2간산변수유지부17,77 : 직선기울기정수유지부
18,78 : 초기화부19,79 : 종료제어부
20,80 : 묘화부21,81 : 좌표변수제어부
22,82 : 오차변수제어부23 : 지정정수격납부
24 : 지정정수유지부25 : 지정정수제어부
3A ~ 3H : 지정정수 SW 에 대응한 표시방향을 표시한 부호
31 ~ 38 : 8비트의 데이타
40 ~ 48 , 60 ~68 , 90 ~ 98 : 표시된 격자점
49,69,99 : 표시할려고 하는 직선
본 발명은 그래픽스표시에 관하여, 특히 직선을 묘화할 때에 그 직선을 구성하는 점으로서 격자점(X좌표, Y좌표 다같이 정수(整數)인점)을 표시시키므로서 직선을 묘화하는 장치에 관한 것이다.
종래, 정수을 묘화하는 알고리듬(Algorithm)으로서, 브레센헴(Bresenham)의 정수묘화 알고리듬이 알려져 있다. (컴퓨터 그래픽스 제 . 디이 . 폴리와저술, 이마미아아쯔미 역, 일본컴퓨터협회출판(1984년), PP. 443~446에 기재).
이 브레센헴의 직선묘화알고리듬의 의하면, 2차원의 X-Y평면상에 있어서 , 묘화할려는 직선의 시점좌표바(Xs,Ys), 종점좌표가 (Xe,Ye)일 때, 다음과 같이 해서 시점에 상당하는 격자점 표시후, 제n번째에 표시하는 격자점(Xn,Yn)을 결정할 수 있다.
△X = Xe - Xs, △Y= Ye-Ys에 의해 부여되는 정수△X,△Y에 대해서, 예를들면, |△X||△Y|(조건A)이면, 그릴려고 하는 직선의 X좌표의 변화량이 Y좌표의 변화량에 비해서 크게 된다. 이 브레센헴의 직선묘화알고리듬에 있어서는, 한쪽의 좌표치의 변화가 1인경우, 다른 쪽의 좌표치의 변화는 0혹은 1이 된다. 그래서, |△X||△Y|의 경우에는, X좌표를 1씩변화시키고, Y좌표를 0 혹은 1씩 변화시키면, 실제의 직선에 가까운 직선을 묘화할 수 있다. 이 때문에, Xn+1= Xn+1의 관계가 있다. 이때, X = Xn의 경우에 묘사할려고 하는 직선이 본래 취할 Y의 값과 실제로 표시하는 격자점의 Y좌표 Yi 와의 차를 오차항으로 하면, X =Xn에 되면 오차항 En과 X = Xn+1에 대한오차항 En+1과의 관계는,
En+1= En + △Y / △X (식A)
로 부여할 수 있다. 여기서, 오차항 En은, 묘화할 직선의 Y좌표와 바로 앞에 묘화한 격자점 Y좌표의 차를 표시하고, X=Xn+1에 있어서, En+1 0.5이면 바로 앞에 묘사한 격자점의 Y좌표와 묘화할려고 하는 직선의 Y좌표의 차가 0.5이상인 것을 의미하고, 이경우, 묘화할려는 직선의 Y좌표는 Y+1이 된다. 여기서, 격자점의 Y좌표가 Yn+1은 Yn 보다도 Yn+1이 된다. 여기서, 격자점의 Y좌표가 Yn+1이 되면, 바로 앞에 표시한 격자점의 Y좌표와 묘화할려고 하는 직선의 Y좌표와의 차는 Y좌표가 1증가하므로서, En+1 -1에 의해 부여된다. 마찬가지로, En+10.5이면, 표시할 격자점의 Y좌표 Yn+1은 Yn+1보다도 가깝게 된다. 즉,
En+1 0.5 이면, Yn+1=Yn+1, En+1=En+1 -1(식 B),
En+10.5 이면, Yn+1=Yn (식 C)
가 된다. 이것은, En+1-0.5의 정부에 의해 표시하는 격자점을 결정한국는 것을 의미하고, △X0(조건B)이면, 2(En+10.5)△X의 정부에 의해 표시하는 격자점을 결정하는 것과 마찬가지이다. 그래서, 오차변수 En+1로서, En+1=2(En+1-0.5)△X로 하면, (식A)에 의해, En+1=En +2△Y (단, Eo= -△X)(식D), En+1 0이면, (식B)에 의해,
Yn+1=Yn+1, En=En-2△X (식 E),
En+10 이면 ,(식 C)에 의해, Yn+1=Yn이 된다.
이것은, |△X||△Y|(조건A)이며, 또한 |△X|0(조건B)의 경우에 얻어지는 식이며, 마찬가지로 해서, △X,△Y의 정부, |△X|와 |△Y|의 대소관계에 의해서 ,8가지의 식을 얻을 수 있다. 이들 식중에서, 시점좌표 및 종점좌표에 따라서 식을 선택하여, 표시하는 격자점을 결정한다.
이 브레센헴의 직선묘화알고리듬를 사용한 종래의 직선묘화장치의 일구성예를 제 7 도에 표시한다. 또한, 표시한 직선의 시점좌표을 (Xs,Ys), 종점좌표을 (Xe,Ye)로 하고, △X0,△Y0,△X△Y로 한다.
제 7도에 있어서, (70)은 종점입력부,(71)은 시점입력부, (72)는 묘화점좌표유지부,(73)은 증가정수유지부,(74)는 오차변수유지부,(75)은 제 1가산변수유지부,(76)은 제 2가산변수유지부,(77)은 직선기울기정수유지부,(78)은 초기화부,(79)는 종료제어부,(80)은 묘화부,(81)은 좌표변수제어부,(82)는 오차변수제어부이다.
종점입력부(70)는,입력 단자이며, 표시할려는 직선의 종점의 좌표을 입력시키면, 종점의 X좌표을 종료제어부(79)에, 종점의 좌표을 초기화부(78)에 통지한다. 시점입력부(71)는, 입력단자이며, 표시할려고 하는 직선의 시점의 좌표를 입력하게 되면, 시점의 좌표을 묘화점좌표유지부(72)및 초기화부(78)에 통지한다. 묘화점좌표유지부(72)는, 예를들면, 레지스터를 구비하여, 표시한 격자점의 좌표(X,Y)를 유지한다. 증가정수유지부(73)는, 예를들면, 레지스터를 구비하여, 표시방향에 관한 정보를 유지한다. 여기서, 묘화방향에 관한 정보는, X축방향에 대해서는 XI,Y축방향에 대해서는 YI의 값에 의해 표시되고, 각각, △X0,△Y0의 경우1의 값을 취한다. 오차변수유지부(74)는, 예를들면, 레지스터를 구비하여, 오차변수En의 값을 유지한다. 제 1가산변수유지부(75)는, 예를들면, 레지스터를 구비하여, 가산정수 C(=2△Y)의 값을 유지한다. 여기서 가산정수 C는 식 D에 있어서 부여되는 수이며, 오차변수En에 가산하는 정수이다. 제 2 가산변수유지부(76)는, 예를들면, 레지스터를 구비하고, 가산변수D(=2△Y-2△X)의 값을 유지한다. 여기서, 가산정수 D는 식D와 식E에 의해 부여되는 수이며, 오차변수En에 가산한 정수이다. 직선 기울기 정수유지부(77)는, 예를들면, 비교기와 레지스터를 구비하고, △X와 △Y의 대소관계를 표시한 정수(定數)인 직선기울기정수 XY를 유지한다. 여기서, 비교기는, |△X|와 |△Y|의 비교를 행하고, |△X||△Y|이기 때문에, 직선 기울기정수 XY로서 0을, 레지스터에 출력하고, 레지스터는 출력된 값(=0)을 유지한다. 초기화부(78)는, 예를들면, 가산기 및 감산기가 사용되고, 시점좌표(Xs,Ys)와 종점좌표(Xe,Ye)로부터 브레센헴의 직선묘화알고리듬에 있어서의 정수 및 변수의 초기치를 계산한다. 종료제어부(79)는, 예를들면, 레지스터와 비교기를 구비하고, 레지스터는 상기 종점입력부(70)로부터 입력된 종점의 X좌표을 표시의 종료를 판정할 때의 기준이 되는 종료기준치 L로서 유지하고, 비교기는, 상기 레지스터가 유지하는 종료기준치 L과 묘화점좌표유지부(72)가 유지하는 X좌표을 비교하여, 직선묘화를 종료시키느냐 여부를 판정한다.
묘화부(80)는, 예를들면, 묘화프로세서가 사용되고, 묘화점좌표유지부(72)가 유지하는 좌표(X,Y)격자점을 빛나게 되는 등에 의해, 표시한다. 좌표변수제어부(81)은, 오차변수 En의 값이 부인것을 표시한 E표시문자를 입력하게 되면, 증가정수유지부(73)에 증가정수(XI,YI)로서 (1,0)을, 그 이외의 경우에는, (1,1)을 유지시키고, 격자점을 표시할 때 마다 증가정수(XI,YI)를 묘화점좌표유지부(72)가 유지하는 (X,Y)에 가산한다. 오차변수제어부(82)는, 오차변수유지부(74)가 유지하는 오차변수En의 값이 부이면, E표시문자를 좌표변수제어부(81)에 동지하고, 동시에 제 1가산변수유지부(75)로부터 가산변수C를 판독하고, 가산변수 C를 오차변수유지부(74)가 유지하는 오차변수En에 가산한 후, 가산후의 오차변수 En+1을 오차변수유지부(74)에 유지시킨다. 오차변수유지부(74)가 유지하는 오차변수En의 값이 정 또는 0이면, 제 2가산변수유지부(76)로부터 가산변수 D를 판독하고, 오차변수유지부(74)가 유지하는 오차변수En에 가산한 후, 가산후의 오차변수En+1을 오차변수유지부(74)에 유지시킨다.
제 8도는, 제 7도에 표시한 직선묘화장치의 동작을 표시한 순서도이다.
종점입력부(70), 시점입력부(71)가, 각각, 시점좌표(Xs,Ys), 종점좌표(Xe,Ye)를 입력시키면 (스텝 601), 종점입력부(70)는 종점의 X좌표을 종료제어부(79)에 통지하고, 종료제어부(79)는 종료기준치 L 로서 Xe를 유지한다. (스텝 602). 또 시점입력부(71)는, 묘화점좌표유지부(72)에 시점좌표(Xs,Ys)을 통지하고, 묘화점좌표유지부(72)는 시점좌표(Xs,Ys)을 유지하고, 묘화부(80)는 묘화점좌표유지부(72)가 유지하는 시점좌표(Xs,Ys)의 격자점을 표시한다 (스텝 603). 이와 동시에, 종점입력부(70)및 시점입력부(71)는, 초기화부(78)에 종점좌표 및 시점좌표를 통지하고, 초기화부(78)는, 브레센헴의 알고리듬의 정수 및 변수를 계산하고, 증가정수유지부(73), 오차변수유지부(74), 제 1가산변수유지부(75), 제 2가산변수유지부(76), 직선기울기정수유지부(77)에 출력하여, 유지시킨다. (스텝 604,605). 오차변수제어부(82)는, 오차변수En이 부인지 여부를 판정하여, 부이면 E표시문자를 좌표변수제어부(81)에 통지하여, 오차변수En에 가산를 가산한다 (스텝 612).
부가아니면 오차변수En에 가산변수D를 가산한다 (스텝 607). 좌표변수제어부(81)는 E표시문자를 입력시키면, 묘화점좌표유지부(72)가 유지하는 X에 1을 가산하고, E표시문자가 입력되지 않으면, 묘화점좌표유지부(72)가 유지하는 X,Y에 각각 1을 가산한다. 이어서, 묘화부(80)는 묘화점 좌표유지부(72)가 유지하는 좌표(X,Y)를 표시시킨다.
이상의 동작을 묘화점 좌표유지부(72)가 유지하는 X좌표가 로 될 때까지 행한다.
제 9도는, 시점좌표(0,0), 종점좌표(8,4)의 경우에 묘화할려고 하는 직선 및 동작종료후에 표시된 격자점을 표시한 도면이다. 도면중, 묘화할려는 직선은 직선(99)이며, 그 구성점으로서 실제로 표시된 격자점은, 격자점(90)~(98)이다.
그러나, 상기 종래의 직선묘화장치에 있어서, 오차변수유지부(74)가 유지하는 오차변수En, 시점과 종점을 연결하는 직선과 격자점 사이의 중간점과의 거리가 0인지 여부를 판정하기 위한 변수이며, 오차변수가 0이면, 이상직선은 격자점 사이의 중간점을 통과하게 된다. 이 경우, 어느쪽의 격자점을 표시하는 가는, En=0의 경우에 증가정수유지부(73)가 유지하는 증가정수(XI,YI)의 값에 의존하기 때문에, En=0일 때에, 증가정수유지부(73)가 유지하는 증가정수가 일정하면, 위라면 위, 혹은 우라면 우인것과 같이, 직선으로 보아서 어느한쪽만의 격자점을 표시하게 된다. 이때문에, 종래의 직선묘화장치에서는, 시스템의 소프트웨어수법이, 직선묘화장치에 규정된 격자점과 다른쪽의 격자점을 표시시키도록 설정되어 있는 경우에는, 격자점을 표시할 수 없고, 시스템의 스프트웨어에 호환성이 없다고 하는 문제점을 가지고 있었다.
본 발명은 상기 문제점에 비추어, 그릴려는 직선이 격자점사이의 중간점을 통과할 경우에, 다른쪽의 격자점을 표시시키는 스프트웨어에 대해서도, 호환성이 있는 직선묘화장치을 제공하는 것을 목적으로 한다.
상기 문제를 해결하기 위해서, 본 발명의 제 1의 발명은 X-Y평면상에 있어서 X,Y가 정수(定數)로 표시되는 격자점을 표시시키므로서, 직선을 묘화하는 직선묘화장치이며, 시점좌표( Xs,Ys)를 입력하는 시점입력수단과 종점좌표(Xe,Ye)를 입력하는 종점입력수단과, 상기 시점좌표 및 상기 종점좌표을 연결하는 직선의 X좌표 혹은 Y좌표 중 한쪽좌표기 정수이며, 또한 다른쪽의 좌표가 정수에 1/2을 가산한 수(數)인 위치를 상기 다른쪽의 좌표축방향에 있어서, 양쪽으로부터 사이에 끼우는 2개의 격자점을 지정하는 2종의 지정정수을 택일적으로 입력가능한 지정정수입력수단과, 상기 지정정수입력수단으로부터 입력된 지정정수을 그때까지 유지되어있던 지정정수에 대신해서 유지하는 지정정수유지수단과, 상기 시점좌표(XS,Ys) 및 상기 종점좌표(Xe,Ye)를 사용해서, 브레센헴의 직선묘화알고리듬에 있어서의 계산하는 정수계산수단과, 시점좌표 및 종점좌표을 연결하는 직선의 X좌표 혹은 Y좌표의 한쪽의 정수이며, 다른쪽의 좌표가 정수가 아닌 위치에 있어서의 다른쪽의 좌표축상의 최단의 정수치까지의 거리에 관련한 오차변수를, 상기 정수유지수단이 유지하는 정수와, 상기 위치에 대해서 직선묘화방향과 반대방향으로 1개 거슬러올라간 위치에 있어서의 오차변수를 사용해서 계산하는 변수계산수단과, 상기 변수계산수단에 의해 계산된 오차변수를 유지하는 변수유지수단과 해야 그릴려고 하는 직선이 상기 다른쪽의 좌표의 좌표축방향으로 나란히한 격자점 사이의 중간점을 통과하는 것을 상기 변수유지수단이 유지하는 변수를 표시할 때 상기 지정정수가 지정하는 격자점을 표시시키는 격자점표시수단을 구비한 것을 특징으로 한다.
본 발명의 제 2의 발명은, 상기 지정정수는, 묘화할려고 하는 직선의 기울기가 정인지 부인지 및 정부 각 경우에 있어서, 45˚를 초과하는지 어떤지에 따라서, 8가지의 종류의 조합을 기지고, 각 한가지종류의 조합에 대하여 1비트의 데이터가 할당하여 있는 것을 특징으로 한다.
본 발명의 제 3의 발명은, 상기 지정정수입력수단은, 상기 변수유지수단이 유지하는 오차변수가, 묘화할려고 하는 직선의 X좌표 혹은 Y좌표중 소정의 좌표가 정수이고 또한 다른쪽의 좌표가 정수에 1/2을 가산한 수인것을 표시할 때마다, 입력할 지정정수의 값을 택일적으로 선택가능한 다른 값으로 변경시키는 지정정수 절환구성을 포함한 것을 특징으로 한다.
상기 구성에 의하면, X-Y평면상에 있어서, X,Y가 정수인격자점을 표시시키므로서, 직선을 묘화하는 직선묘화장치에 있어서, 지정정수입력수단이 지정정수를, 시점입력수단이 시점좌표를, 종점입력수단이 종점좌표를 입력하면, 정수계산수단이 시점좌표 및 종점좌표을 사용해서, 브레센햄의 직선묘화알고리듬에 있어서의 정수를 계산하고, 변수계산수단은 상기 정수를 사용해서, 오차변수를 계산하고, 계산의 결과, 묘화할려고 하는 직선의 격자점 사이의 중간점을 통과할 경우, 상기 지정정수입력수단에 의해 입력된 지정정수가 지정하는 격자점을 표시시킬 수 있다.
또, 상기 지정정수을 지정하는 데이터로서, 각 묘화방향마다, 1비트의 데이터를 할당하므로서, 묘화할려고 하는 직선이 격지점 사이의 중간점을 통과할 경우에 표시하는 점을 1비트의 데이터를 사용해서 지정할 수 있다.
또, 지정정수입력수단이 입력하는 지정수를 변화시키므로서, 보다 다양한 위치의 격지점을 표시시킬 수 있다.
이하, 본 발명의 일실시예를 제 1 도에서부터 제 6도까지를 사용해서 설명한다.
제 1 도는 본 발명의 직선묘화장치의 일구성예를 표시한 블록도이다.
본 도면에 있어서, (10)은 종점입력부, (11)은 시점입력부,(12)는 묘화점좌표유지부, (13)은 증가정수유지부,(14)는 오차변수유지부,(15)는 제 1가산변수유지부,(16)은 제 2가산변수유지부,(17)은 직선기울기정수유지부,(18)은 초기화부,(19)은 종료제어부,(20)은 묘화부,(21)은 좌표변수제어부,(22)은 오차변수제어부,(23)은 지정정수격납부,(24)는 지정정수유지부,(25)는 지정정수제어부이다.
상기 각부중, (10)~(17), (19)~(21)에 표시한 것은, 제 7도에 있어서 (70)~(77),(79)~(81)에 표시한 동일 명칭의 구성요소와 동일한 것이기 때문에, 그 설명은 생략한다.
다음에, 본 실시예 고유의 기기, 부품등의 구성요소에 대해서 설명한다.
지정정수유지부(24), 예를들면, 레지스터를 구비하고, 묘화할려고 하는 직선이 소정의 방향으로 나란히한 격지점사이의 중간점을 통과할 때에 표시하는 격자점을 지정하는 지정정수 SW의 값을 유지한다. 오차변수제어부(22)는, 증가정수유지부(13)로부터 증가정수(XI,YI)를, 직선기울기정수유지부(17)로부터, 직선기울기정수 XY를 각각판독하고, 대응하는 지정정수 SW의 값을 지정정수유지부(24)로부터 판독한다. 오차변수유지부(14)가 유지하는 오차변수En과 지정정수유지부(24)가 유지하는 지정저수 SW의 차 En-SW의 값이 부이면, E표시문자를 좌표변수제어부(21)에 통지하여, 제 1가산변수유지부(15)로부터 가산변수 C를 판독한다. En-SW의 값이 정 또는 0이면 제 2가산변수유지부(16)로부터 가산변수D를 판독하여, 오차변수유지부(14)가 유지하는 오차변수En에 가산한후, 가산후의 오차변수En을 오차변수 유지부(14)에 유지시킨다. 지정정수격납부(23)는, 예를들면, 레지스터를 구비하고, 표시방향마다 규정된 지정정수 SW의 값의 테이블을 격납한다.
테이블에는, 8분할한 묘화방향, 각각에 대응하는 지정정수의 값이 규정되어 있다. 지정정수 제어부(25)는, 묘화방향에 따라서, 지정정수격납부(23)로부터 지정정수을 규정한 테이블을 판독하고, 판독한 테이블을 지정정수유지부(24)에 유지시킨다.
제 2도(a)는, 직선묘화장치 기동시에 있어서의 동작을 표시한 순서도이다. 스프트웨어는, 기동시에 사용하는 애플리케이션 판별하여 (스텝 301), 그에 따른 값을 지정정수격납부(23)에 기록한다. 지정정수제어부(25)는 묘화방향에 따라서, 지정정수격납부(23)로부터 지정정수를 규정한 테이블을 판독하여 (스텝 302), 지정정수유지부(24)에 유지시킨다. (스텝 303).
제 3도는, 판독테이블의 지정정수 SW의 설정치의 일예를 표시한 도면이다.
제 3도는 (a)는, 지정정수격납부(23)가 격납하는 테이블의 일예를 표시하고, 제3도(b)는, 묘화할려고 하는 직선의 묘화방향을 표시한다. 제 3도(a)의 3A-3H에 표시한 SW1~SW8은, 제 3도(b)에 표시한 SW1~SW8의 영역에 대응하고, SW1~SW8의 영역은, 묘화할려고 하는 직선의 묘화방향을 표시한다. 제 3도(b)에 있어서, 묘화방향은, 원점을 시점으로 하고, 종점이 존재하는 영역에 의해 표시된다. 또, 제 3도(a)의 (31)~(38)에 표시한 지정정수SW의 값은, 묘화방향마다 설정된 지정정수SW의 값이며, 이들 값은 각각 1묘화방향에 대해서 1비트가 할당된 8비트의 데이터 10001110으로서 입력되어, 격납된다.
제 2도(b)는, 상기 직선묘화장치의 동작을 표시한 순서도이다.
이하, 시점의 좌표을 (0,0)종점의 좌표을 (8,4)로 하는 직선을 묘화하는 경우의 동작에 대해서 설명한다.
종점입력부(10)가 종점좌표(8,4)를 시점입력부(11)가 시점좌표(0,0)을 입력시키면 (스텝 200), 종점입력부(10)는 종점좌표의 X좌표를 종료제어부(19)에 출력한다. 종료제어부(19)는, 종료기준치 L로서, 종점좌표와 X좌표를 유지한다. (스텝 201).또, 시점입력부(11)는 묘화점좌표유지부(12)에 시점좌표(0,0)를 출력하고, 묘화점좌표유지부(12)는 시점좌표(0,0)를 유지한다. 묘화부(20)는 묘화점좌표유지부(12)가 유지하는 시점좌표(0,0)의 격자점을 표시한다. (스텝 202).종점입력부(10), 시점입력부(11)는, 각각, 초기화부(18)에 종점좌표(8,4), 시점좌표(0,0)를 출력하고, 초기화부(18)는 브레센헴의 알고리듬의 정수 및 변수를 계산하는 동시에, 계산결과는, △X=0,△Y=4,E1=0,C=8,D=-8,XY=0,XI=1,YI=1이된다. (스텝 203,204). 지정정수제어부(25)는 묘화방향마다 규정된, 지정정수격납부(23)로부터 판독하여 지정정수유지부(24)에 유지시킨다. 오차변수제어부(22)는, 증가정수유지부(13)가 유지하는 증가정수(XI,YI), 직선기울기정수유지부(17)가 유지하는 직선기울기정수 XY를 수신하면, (XI,YI,XY)=(1,1,0)이기 때문에, 제 3도(a)로부터 지정정수유지부(24)로부터 대응하는 지정정수SW의 값을 판독한다(스텝 205). 오차변수제어부(22)는, 오차변수유지부(14)가 유지하는 오차변수 E1(=0),지정정수유지부(24)가 유지하는 지정정수SW(=1)로부터, En-SW를 계산하고, 이값이 -1(0)이기 때문에(스텝 206), 오차변수 E1(=0)에 C(=8)을 가산하고, 오차변수유지부(14)에 E2(=8)을 유지시킨다(스텝 212). 또, 오차변수제어부(22)는 E표시문자를 좌표변수제어부(21)에 통지한다. 좌표변수제어부(21)는 E표시문자가 입력되게 되면, 묘화점좌표유지부(12)가 유지하는 X좌표에 1가산하고 (스텝 209), 묘화부(20)는 좌표(1,0)의 격자점을 표시시킨다(스텝 210).
여기서 X(=1)는 L(=8)보다 작기 때문에, 묘화는 계속된다(스텝 206), 오차변수제어부(22)는 오차변수유지부(14)가 유지하는 오차변수 E2(=8), 지정정수유지부(24)가 유지하는 지정정수 SW(=1)로부터, E2-SW를 계산하고, 이값이 7(0)이기 때문에 (스텝 206), 오차변수 E2(=8)에 D(=-8)을 가산하고, 오차변수유지부(14)에 E3(=0)을 유지시킨다(스텝 207). 좌표변수제어부(21)는, E표시문자를 수신하지 않으므로, 표시점의 X좌표및 Y좌표에 1를 가산하여, 묘화점좌표유지부(12)에 (2,1)을 유지시키고, 묘화부(20)는 (2,1)을 표시시킨다.
마찬가지의 동작을 묘화점좌표유지부(12)가 유지하는 X좌표가 X=8이 될 때까지, 반복한다. X=8이 되면, 종료제어부(19)는 묘화부(20)의 표시를 종료시킨다., 제 4도는, 묘화할려고 하는 직선 및 동작종료후 표시된 격자점을 표시한다. 도면중, 직선(49)은 묘화할려고 직선이며, 격자점(40)~(48)은, 실제로 표시된 격자점을 표시한다.
또, 상기 오차변수제어부(22)가 또 비교기 및 1비트의 카운터를 구비하고, 비교기는, 오차변수En이 0인지 여부를 판정하고, 0이면 1비트의 카운터에, 오차변수 En이 0인것을 표시하는 제로신호를 송신하고, 1비트의 카운터는, 상기 비교기로부터 상기 제로신호를 수신하면, 유지하는 지정정수의 값을 0과 1의 사이에서 반전시키는 것으로 하면, 오차변수 En이 0이 될 때 마다 묘화할려고 하는 직선에 대해서,이때까지 En이 0이 되었을때에 표시하고 있던 격자점이 위치하는 쪽과는 반대쪽에 격자점을 표시시킬 수 있다.
제 5도는 지정정수 S의 값을 오차변수 En이 0이 될 때 마다 반전시키는 경우의 동작을 표시하는 순서도이다. 상기 직선묘화장치의 마찬가지로 스텝 200 ~ 스텝 205를 행한후, 오차변수제어부(22)는, 오차변수 En이 1인지 여부를 판정하여 (스텝 50) En이 0이면, 지정정수 SW의 값을 반전시킨다(스텝 51~스텝 53),
제 6도는, 시점좌표(0,0), 종점좌표(8,4)의 경우에 묘화할려고 하는 직선 및 제 5도에 표시한 동작종료후, 표시된 격자점을 표시한다. 도면중, 직선(69)은 묘화할려고 하는 직선이며, 격자점(60)~(88)은 실제로 표시된 격자점을 표시한다.
또한, 묘화할려고 하는 직선의 묘화방향이 다를 경우에는, 각각의 경우에 따른 브레센햄의 직선묘화알고리듬을 사용하므로서, 상기의 경우이외에 있어서로 마찬가지로, 직선을 묘화할 수 있다.
이상과 같이 본 발명에 의하면, 그릴려고 하는 직선이 격자점사이의 중간점을 통과하는 경우, 표시하는 격자점을 지정할 수 있기 때문에, 스프트웨어수법이 다른 시스템이라도, 그 소프트웨어수법에 따른 직선을 묘화할 수 있고, 호환성을 가지게 할 수 있다. 또, 증가정수 및 직선기울기정수에 따라서 8종류의 지정정수의 값을 개별적으로 지정할 수 있는 구성으로 하면, 호환성의 범위를 더욱 넓힐 수 있다.
또, 오차변수가 0이될 때마다, 표시하는 격자점의 결정방법을 바꾸므로서, 묘화할려고 하는 직선의 격자점사이의 중간절을 통과하는 경우라도, 표시하는 격자점이 한쪽으로 치우치지 않는 균형이 잡힌 직선을 묘화할 수 있다.

Claims (3)

  1. X-Y평면상에 있어서, X,Y가 정수(整數)로 표시되는 격자점을 표시시키므로서, 직선을 묘화하는 직선묘화장치이며, 시점좌표(Xs,Ys)를 입력하는 시점입력수단과, 종점좌표(Xe,Ye)를 입력하는 종점입력수단과, 상기 시점좌표 및 상기 종점좌표을 연결하는 직선의 X좌표혹은 Y좌표중 한쪽좌표가 정수이며, 또한 다른쪽의 좌표가 정수에 1/2을 가산한 수(數)인 위치를, 상기 다른쪽의 좌표축방향에 있어서, 양쪽으로부터 사이에 끼우는 2개의 격자점을 지정하는 2종의 지정정수을 택일적으로 입력가능한 지정정수입력수단과, 상기 지정정수입력수단으로부터 입력된 지정정수을 그때까지 유지되어있던 지정정수에 대신해서 유지하는 지정정수유지수단과 , 상기 시점좌표(Xs,Ys)및 상기 종점좌표(Xe,Ye)를 사용해서, 브레센햄의 직선묘화알고리듬에 있어서의 정수을 계산하는 정수계산수단과, 시점좌표 및 종점좌표을 연결하는 직선의 X좌표혹은 Y좌표의 한쪽의 좌표가 정수이며, 다른쪽의 좌표가 정수가 아닌 위치에 있어서의 다른쪽의 좌표축상의 최단위 정수치까지의 거리에 관련한 오차변수를, 상기 정수유지수단이 유지하는 정수와, 상기 위치에 대해서 직선묘화방향과 반대방향으로 1개 거슬러 올라간 위치에 있어서의 오차변수를 사용해서 계산하는 변수계산수단과, 상기 변수계산수단에 의해 계산된 오차변수를 유지하는 변수유지수단과, 그릴려고 하는 직선이 상기 다른쪽의 좌표의 좌표축방향으로 배열된 격자점사이의 중간점을 통과하는 것을 상기 변수유지수단이 유지하는 변수를 표시할 때, 상기 지정정수가 지정하는 격자점을 표시시키는 격자점표시수단을 구비한 것을 특징으로 하는 직선묘화장치.
  2. 제 1항에 있어서, 상기 지정정수는, 묘화할려고 하는 직선의 기울기가 정인지 부인지 및 정부 각 경우에 있어서, 45˚를 초과하는지 어떤지에 따라서, 8가지의 조합을 가지고, 각 한가지의 조합에 대하여 1비트의 데이터가 할당되어있는 것을 특징으로 하는 직선묘화장치.
  3. 제 1 항에 또는 제 2 항에 있어서, 상기 지정정수입력수단은, 상기 변수유지수단이 유지하는 오차변수가, 묘화할라고 하는 직선의 X좌표 혹은 Y좌표중 소정의 좌표가 정수이고 또한 다른쪽의 좌표가 정수에 1/2을 가산한 수인가를 표시할 때 마다, 입력할 지정정수의 값을 택일적으로 선택가능한 다른 값으로 변경시키는 지정정수절환구성을 포함한 것을 특징으로 하는 직선묘화장치.
KR1019930031222A 1993-06-24 1993-12-30 직선묘화장치 KR0139036B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP93-153843 1993-06-24
JP15384393A JP3210141B2 (ja) 1993-06-24 1993-06-24 直線描画装置

Publications (2)

Publication Number Publication Date
KR950001547A KR950001547A (ko) 1995-01-03
KR0139036B1 true KR0139036B1 (ko) 1998-06-15

Family

ID=15571315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930031222A KR0139036B1 (ko) 1993-06-24 1993-12-30 직선묘화장치

Country Status (5)

Country Link
US (1) US5625769A (ko)
EP (1) EP0637000A3 (ko)
JP (1) JP3210141B2 (ko)
KR (1) KR0139036B1 (ko)
CA (1) CA2126505A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304274B1 (en) * 1998-08-03 2001-10-16 International Business Machines Corporation Method and system for slope correcting line stipples/styles
GB2366108A (en) * 2000-07-14 2002-02-27 Vhsoft Technologies Company Lt Vectorization of raster images
US6788301B2 (en) * 2001-10-18 2004-09-07 Hewlett-Packard Development Company, L.P. Active pixel determination for line generation in regionalized rasterizer displays
TWI269239B (en) * 2002-03-05 2006-12-21 Silicon Integrated Sys Corp Fast line-plotting method
KR101562153B1 (ko) 2011-11-09 2015-10-20 미쓰비시덴키 가부시키가이샤 묘화 장치 및 컴퓨터 판독 가능 기록 매체
CN110083875A (zh) * 2019-04-01 2019-08-02 浙江省水利水电勘测设计院 一种基于AutoCAD布局的勘测定界图自动分幅方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU542593B2 (en) * 1981-01-21 1985-02-28 Tokyo Shibaura Denki Kabushiki Kaisha Straight line co-ordinates generator
JPS5999487A (ja) * 1982-11-29 1984-06-08 株式会社東芝 直線発生方法
JPS61249088A (ja) * 1985-04-26 1986-11-06 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 図形塗りつぶし方法
US4837563A (en) * 1987-02-12 1989-06-06 International Business Machine Corporation Graphics display system function circuit
EP0305034B1 (en) * 1987-07-30 1995-11-22 Tektronix, Inc. Method and apparatus for incremental computation of a linear function
US5167015A (en) * 1988-06-13 1992-11-24 Industrial Technology Research Institute Line drawing method and apparatus
JPH04260982A (ja) * 1991-01-17 1992-09-16 Mitsubishi Electric Corp 直線ピクセル生成器及び直線ピクセル生成方法
US5309553A (en) * 1990-06-15 1994-05-03 Mitsubishi Denki Kabushiki Kaisha Apparatus for and method of generating a straight line of pixels in a discrete coordinate system
US5287442A (en) * 1991-01-10 1994-02-15 Hewlett-Packard Company Serpentine rendering of antialiased vectors in a computer graphics system
JPH0561980A (ja) * 1991-09-04 1993-03-12 Nec Corp 線分描画装置
US5422991A (en) * 1992-09-22 1995-06-06 International Business Machines Corporation Parallel vector generator and triangle generator incorporating same
US5570463A (en) * 1993-01-06 1996-10-29 Compaq Computer Corporation Bresenham/DDA line draw circuitry
US5432898A (en) * 1993-09-20 1995-07-11 International Business Machines Corporation System and method for producing anti-aliased lines

Also Published As

Publication number Publication date
US5625769A (en) 1997-04-29
CA2126505A1 (en) 1994-12-25
JPH0729022A (ja) 1995-01-31
EP0637000A3 (en) 1995-09-27
KR950001547A (ko) 1995-01-03
EP0637000A2 (en) 1995-02-01
JP3210141B2 (ja) 2001-09-17

Similar Documents

Publication Publication Date Title
US4817172A (en) Image processing system
US3809868A (en) System for generating orthogonal control signals to produce curvilinear motion
EP0049360B1 (en) Graphic output system
EP0124986B1 (en) Apparatus and method for generating multiple cursors in a raster scan display system
KR0139036B1 (ko) 직선묘화장치
CA2050651C (en) Integrated hardware generator for area fill, conics and vectors in a graphics rendering processor
US4608660A (en) Data processing system with condition data setting function
EP0416421B1 (en) A clipping processor
US4998211A (en) Method of and apparatus for generating a filled pattern defined by contour vectors
US5287441A (en) Method and apparatus for displaying a parametric curve
US5303338A (en) Compact electronic apparatus equipped with graphic representing function
EP0314289B1 (en) Multiple pixel generator
EP0301253B1 (en) Line generation in a display system
CA1239714A (en) High speed linear interpolation circuit of crt display unit
CA1169578A (en) Multi-directional cursor motion
US5309553A (en) Apparatus for and method of generating a straight line of pixels in a discrete coordinate system
US5351315A (en) Apparatus for smoothing outlines of images
US4974172A (en) Image processing apparatus
US4484189A (en) Memoryless artificial horizon generator
JP3375977B2 (ja) 数値制御装置
US3818475A (en) Digitally operating graphic display system
US5428719A (en) Method and apparatus for generating high-quality pattern in accordance with an edge defining a character pattern
US20030117399A1 (en) Image processing apparatus and method, storage medium, and program
JP3211404B2 (ja) 文字列出力装置
EP0256488A2 (en) Method of interpolating pixel values

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050204

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee