KR20140142863A - 그래픽 편집기 제공 장치 및 그 방법 - Google Patents

그래픽 편집기 제공 장치 및 그 방법 Download PDF

Info

Publication number
KR20140142863A
KR20140142863A KR20130064526A KR20130064526A KR20140142863A KR 20140142863 A KR20140142863 A KR 20140142863A KR 20130064526 A KR20130064526 A KR 20130064526A KR 20130064526 A KR20130064526 A KR 20130064526A KR 20140142863 A KR20140142863 A KR 20140142863A
Authority
KR
South Korea
Prior art keywords
window
graphic
coordinate system
screen
real world
Prior art date
Application number
KR20130064526A
Other languages
English (en)
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 한국전자통신연구원
Priority to KR20130064526A priority Critical patent/KR20140142863A/ko
Priority to US14/297,278 priority patent/US20140365926A1/en
Publication of KR20140142863A publication Critical patent/KR20140142863A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 그래픽 편집기 제공 장치 및 그 방법에 관한 것이다. 그래픽 편집기 제공 방법은 데이터 구조 내의 도형을 화면으로 출력하는 작업에 적용되는 좌표계를 실세계 좌표계로 설정하는 단계, 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 윈도우 좌표계로 변환하는 단계, 실세계 좌표계 상에서의 하나의 뷰 영역과 하나의 뷰 영역을 화면에 출력하게 되는 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우를 정의하는 단계, 가상 그림판 윈도우를 윈도우 좌표계를 이용하여 화면상의 윈도우 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하는 단계; 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정하는 단계 및 사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공하는 단계를 포함한다.

Description

그래픽 편집기 제공 장치 및 그 방법{APPARATUS AND METHOD FOR PROVIDING GRAPHIC EDITORS}
본 발명은 그래픽 편집기 제공 장치 및 그 방법에 관한 것으로, 특히 그래픽 편집기 제공 장치를 이용하여 다양한 그래픽 편집기를 제작하는 방법에 관한 것이다.
그래픽 사용자 인터페이스는 사람과 컴퓨터간에 가장 효율적으로 정보를 교환할 수 있는 수단으로서 컴퓨터와 함께 비약적인 발전을 거듭하여 왔다.
최근에는 유닉스(Unix) 운영 체제하에서 네트워크를 통한 클라이언트-서버(client-server) 방식의 X 윈도우가 세계적으로 윈도우 그래픽의 표준이 되었다. 또한, 그래픽 라이브러리(예를 들어, X 라이브러리와 Motif)는 고급의 기능을 제공하여 그래픽 툴의 개발을 손쉽게 하였다.
이와 같은 장점에도 불구하고 2차원 그래픽을 사용하는 CAD 그래픽 편집기를 개발하고자 할 때 도형들의 좌표계 변환,윈도우 변환, 입력 이벤트 처리 기능 등을 별도로 프로그래밍을 해야 한다.
그래픽 편집기 제공 장치는 CAD 분야의 모든 그래픽 편집기에서 공통적으로 요구되는 기능만을 모아 구현된 라이브러리 형태의 패키지로서 그래픽 사용자 인터페이스 (Graphic User Interface) 윈도우를 제공하며, 도형 그리기, 좌표 변환, 윈도우 변환,입력 이벤트 처리 등을 수행하는 기능을 제공한다.
이와 같은 기능은 대부분의 그래픽 편집기에 공통된 기능으로서 그래픽 프로그램을 개발할 때마다 반복되는 부분으로서 라이브러리화 할 수 있는 기술이 필요하다.
본 발명의 목적은 그래픽 편집기 제공 장치를 이용하여 그래픽 편집기를 제공하는 장치 및 그 방법을 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 그래픽 편집기 제공 방법은
그래픽 편집기를 제공하는 장치가 데이터 구조 내의 도형을 화면으로 출력하는 작업에 적용되는 좌표계를 실세계 좌표계로 설정하는 단계; 상기 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 윈도우 좌표계로 변환하는 단계; 상기 실세계 좌표계 상에서의 하나의 뷰 영역과 상기 하나의 뷰 영역을 화면에 출력하게 되는 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우를 정의하는 단계; 상기 가상 그림판 윈도우를 상기 윈도우 좌표계를 이용하여 화면상의 윈도우 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하는 단계; 상기 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정하는 단계; 및 사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 상기 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공하는 단계를 포함한다.
이 때, 상기 실세계 좌표계로 설정하는 단계는 상기 좌표계를 X,Y 직각 좌표계로 설정하는 것을 특징으로 한다.
이 때, 상기 윈도우 좌표계로 변환하는 단계는 화면 확대 명령, 화면 축소 명령, 화면 이동 명령과 같은 작업을 수행하는 윈도우 변환에 해당하는 것을 특징으로 한다.
이 때, 상기 가상 그림판 윈도우를 정의하는 단계는 좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우를 정의하는 것을 특징으로 한다.
이 때, 상기 그래픽 특성을 지정하는 단계는 최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그릴 수 있도록 상기 도형에 대응하는 그래픽 특성을 지정하는 것을 특징으로 한다.
이 때, 상기 출력 관련 함수 중 명령 함수는 가상 그림판 윈도우를 화면상의 윈도우 좌표로 변환을 수행하는데 필요한 함수에 해당하는 것을 특징으로 한다.
또한, 본 발명의 일실시예에 따른 그래픽 편집기 제공 장치는
데이터 구조 내의 도형을 화면으로 출력하는 작업에 적용되는 좌표계를 실세계 좌표계로 설정하는 좌표계 설정부; 상기 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 윈도우 좌표계로 변환하는 윈도우 변환부; 상기 실세계 좌표계 상에서의 하나의 뷰 영역과 상기 하나의 뷰 영역을 화면에 출력하게 되는 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우를 정의하는 윈도우 정의부; 상기 가상 그림판 윈도우를 상기 윈도우 좌표계를 이용하여 화면상의 윈도우 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하는 윈도우 매니저부; 상기 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정하는 그래픽 객체 설정부; 및 사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 상기 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공하는 이벤트 처리부를 포함한다.
이 때, 상기 좌표 설정부는 상기 좌표계를 상기 실세계 좌표계에 해당하는 X,Y 직각 좌표계로 설정하는 것을 특징으로 한다.
이 때, 상기 윈도우 변환부는 화면 확대 명령, 화면 축소 명령, 화면 이동 명령과 같은 작업을 수행하는 윈도우 변환을 통해 상기 도형을 윈도우 좌표계로 변환하는 것을 특징으로 한다.
이 때, 상기 윈도우 정의부는 좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우를 정의하는 것을 특징으로 한다.
이 때, 상기 윈도우 매니저부는 최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그릴 수 있도록 상기 도형에 대응하는 그래픽 특성을 지정하는 것을 특징으로 한다.
이 때, 상기 출력 관련 함수 중 명령 함수는 가상 그림판 윈도우를 화면상의 윈도우 좌표로 변환을 수행하는데 필요한 함수에 해당하는 것을 특징으로 한다.
본 발명에 따르면, 그래픽 편집기 제공 장치 및 그 방법은 그래픽 편집기 제공 장치를 이용하여 그래픽 편집기를 제공함에 있어서, 기본적으로 그래픽과 사용자 인터페이스에 관련된 많은 기능들이 그래픽 편집기 제공 장치 내에 이미 구현되어 있으므로 제공에 드는 많은 시간과 비용을 절감할 수 있다.
또한, 그래픽 편집기 제공 장치 및 그 방법은 그래픽 편집기 제공 장치를 이용하여 그래픽 편집기를 제공함으로써, 그래픽 사용자 인터페이스 구현에 경험이 없는 초보자도 원하는 응용분야의 그래픽 편집기를 쉽게 제공할 수 있다. 특히, 윈도우 그래픽 환경이 달라져도 그래픽 편집기 제공 장치만 수정하면 모든 그래픽 편집기들을 수정하지 않고도 새로운 환경으로 쉽게 이식이 가능하다. 또한, 그래픽 편집기 제공 장치는 다중윈도우 환경을 제공하므로 편집의 대상이 되는 한 객체를 여러 관점에서 각기 다른 윈도우에 표현이 가능하다. 즉, 한 전자회로의 스키메틱과 레이아웃을 화면 상에 동시에 표현이 가능하며,이들 간의 연관관계도 쉽게 보여줄 수 있다.
본 발명의 실시 예에 따른 그래픽 편집기 제공 장치 및 그 방법을 통해 여러 종류의 그래픽 편집기를 제공한 결과는 제공의 용이성, 제공 시간, 유지 보수에 있어 현격한 개선이 이루어졌다.
예를 들어, 스키메틱 편집기는 논리 회로도를 설계하기 위해 심볼 및 연결선, 입출력 단자 등을 그리고 편집하며, 윈도우 이동 등의 기능을 제공하는 그래픽 편집기이다. 스키메틱 편집기는 표준 그래픽 환경의 변화에 따라 여러 차례 개선되며 발전되어 왔다. 스키메틱 편집기의 코드 길이는 SUN 워크스테이션의 CGI 그래픽 환경에서는 22,300 줄, SunView 그래픽 환경에서는 19,400 줄, 그래픽 편집기 제공 장치를 이용한 X 윈도우 환경에서는 11,800 줄로 감소하였다. 그래픽 편집기 제공 장치의 14,000 줄의 프로그램은 수정 없이 재활용할 수 있으므로 응용 프로그래머가 제공해야 할 코드의 길이는 그래픽 편집기 제공 장치 사용 이전의 경우에 비교하여 반으로 줄었다.
또한, 하나의 예로서 특정 설계방식의 흐름을 그래픽 사용자 인터페이스를 통해 그림으로 나타내어 사용순서를 인도하고 버튼의 선택으로 해당 툴을 자동 호출하는 틀인 설계 흐름 관리기를 제공하였다. 선, 네모, 텍스트를 각종 rubberband 의 도움으로 편집하고 텍스트 및 이미지 버튼을 편집하는 기능과 입력된 그림을 텍스트 파일로 저장하는 기능을 구현 하는데 그래픽 편집기 제공 장치를 사용하여 단 하루가 소요되었다.
도 1은 그래픽 편집기 제공 장치의 기본적인 그래픽 사용자 인터페이스 윈도우를 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 그래픽 편집기의 구조를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치를 개략적으로 나타내는 구성도이다.
도 4는 본 발명의 실시예에 따른 가상 그림판 윈도우 매니저와 좌표계를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 그래픽 객체가 표현하는 기본 도형들을 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 기본 도형들의 그래픽 특성을 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 입력 매니저부를 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 명령 함수의 구조를 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 그래픽 편집기 제공 방법을 나타내는 흐름도이다.
도 10은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치의 구조를 나타내는 도면이다.
도 11은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치의 클래스 구조를 나타내는 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예에 따른 그래픽 편집기 제공 장치 및 그 방법에 대하여 첨부한 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예에 따른 그래픽 편집기 제공 장치는 그래픽 편집기가 공통으로 필요로 하는 기증들을 구현하여 라이브러리화한 그래픽 편집기 제공 장치에 해당한다. 즉, 그래픽 편집기 제공 장치는 반도체 자동 설계(Computer Aided Design, CAD) 분야의 모들 그래픽 편집기에서 공통적으로 요구되는 기능만을 모아 구현된 라이브러리 형태의 패키지에 해당한다.
이와 같은, 그래픽 편집기 제공 장치의 기능은 다음과 같다.
첫째, 그래픽 편집기 제공 장치는 그래픽 편집기에서 필요한 도 1과 같은 기본적인 그래픽 사용자 인터페이스 (Graphic User Interface, 이하 "GUI"라고도 함) 윈도우(100)를 제공하며, 도형 그리기, 좌표 변환, 윈도우 변환,입력 이벤트 처리 등을 수행한다.
GUI 윈도우(100)는 메뉴 영역(Menu Panel)(110), 그림판 영역(Canvas Panel)(120), 메시지 영역(Message Panel)(130), 명령 영역(Command Panel)(140) 및 상태 영역(Status Panel)(150)을 포함한다.
메뉴 영역(110)은 GUI 윈도우(100)의 상단에 위치하는 것으로, 응용 프로그래머가 정의한 명령들의 풀다운 메뉴(Pulldown Menu)를 포함한다.
그림판 영역(120)은 도형의 편집 작업이 이루어지는 영역으로써, 도형 그리기, 이벤트 처리, 좌표 변환, 윈도우 변환 등이 수행된다.
메시지 영역(130)은 그래픽 편집에 적용되는 프로그램의 수행 중에 사용자에게 전달하고자 하는 메시지가 출력되는 영역이다.
명령 영역(140 )은 키보드와 같은 입력 장치를 이용하여 사용자가 입력한 문자열을 응용프로그래머가 지정한 함수로 전달하여 처리한다.
본 발명의 실시 예에 따른 그래픽 편집기 제공 장치가 제공하는 GUI 윈도우(100)는 응용 프로그램의 목적에 따라 변형될 수 있도록 여러 변수들이 제공되며, 경우에 따라서는 응용 프로그래머가 직접 프로그램 한 그래픽 사용자 인터페이스의 등록도 가능하다.
둘째, 그래픽 편집기 제공 장치는 GUI 윈도우(100) 상에 도형을 그리는데 필요한 제반 기능들을 제공한다.
예를 들어, 그래픽 라이브러리 중 X 라이브러리를 이용하여 도형을 그리는 경우에는 도형의 색, 채우기 패턴, 선의 굵기 및 종류 등과 같은 그래픽 특성들을 지정하고, 응용 프로그램의 데이터 구조에 실세계 좌표로 저장되어 있는 도형의 데이터를 윈도우 좌표로 변환하여, 그리고자 하는 도형을 출력해줄 X 라이브러리의 함수를 호출하여야 한다.
그래픽 편집기 제공 장치는 앞에서 기재하고 있는 X 라이브러리를 이용하여 도형을 그리는 경우에 수행하는 일련의 과정을 자동으로 처리하는 함수를 제공한다. 즉, 그래픽 편집기 제공 장치는 실세계 좌표로 저장되어 있는 데이터 구조내의 도형의 데이터와 타입만을 그리기 함수에 전달되면, 앞에서 기재하고 있는 과정을 수행한다. 또한, zoom in/out, pan, fit 등과 같은 윈도우 변환 명령들은 그래픽 편집기 제공 장치 내부에 구현되어 있으므로, 도형 그리기 함수와 연결만 시켜주면 응용 프로그래머가 따로 구현할 필요가 없다. 그래픽 편집기 제공 장치는 기본적으로 다중윈도우 환경을 지원하므로 동일한 데이터 구조내의 전체 도형들을 여러 윈도우에서 동시에 나타내어 편집을 할 수 있다. 각 윈도우는 독립적으로 윈도우 변환이 되며, 한 윈도우에서의 편집 결과는 다른 윈도우에 자동으로 적용된다.
셋째, 그래픽 편집기 제공 장치는 사용자 또는 윈도우 시스템으로부터 발생한 입력 이벤트들을 모아서 명령수행에 필요한 이벤트 만을 선택하여 명령함수에 전달한다. 따라서, 응용 프로그래머는 X 윈도우의 복잡한 이벤트 구조를 알 필요가 없다. 기본적인 윈도우 이벤트 즉, 윈도우의 겹침, 크기 및 위치 변화 등에 따라 발생되는 이벤트는 그래픽 편집기 제공 장치가 자동으로 처리하여 윈도우상에 나타나는 도형을 다시 그린다. 또한, 그래픽 편집기 제공 장치는 도형을 편집하는데 도움을 주는 여러 종류의 러버 밴드(rubberband)를 기본사양으로 제공한다.
마지막으로, 그래픽 편집기 제공 장치는 그래픽 편집기 제공에 있어서 필요한 프레임워크를 제공한다. 응용 프로그래머가 그래픽 편집기 제공 장치 내부에 이미 구현되어 있는 모듈들을 생성하여 전체 시스템을 구성 할 수 있도록 기본 프레임이 완성되어 있다. 각 부분 모듈 들이 독립된 하나의 객체이므로 이를 이용하면 CAD 그래 픽 편집기들의 통합 환경을 구축할 수 있다.
이와 같은, 그래픽 편집기 제공 장치에 해당하는 그래픽 편집기 제공 장치에 의해 제공되는 그래픽 편집기를 도 2와 참조하여 상세하게 설명한다.
도 2는 본 발명의 실시예에 따른 그래픽 편집기의 구조를 나타내는 도면이다.
도 2를 참고하면, 그래픽 편집기는 그래픽 관련된 기능을 수행하는 그래픽 엔진 부분(210)과 응용 프로그램의 알고리즘을 구현하는 응용 부분(220)을 포함한다.
응용 부분(220)은 응용 프로그램에 맞는 기능을 수행하기 위한 데이터 구조 관련 함수, 알고리즘 구현 함수, 파일 입/출력 함수 등을 포함한다. .
그래픽 편집기 제공 장치 내부에는 그래픽 편집기를 구현하는데 필요한 기능을 수행하는 여러 객체 클래스들이 정의되어 있어 응용 프로그램을 구현하는 단계에서는 필요한 객체들을 생성하고, 목적에 맞도록 특성을 지정하며, 생성된 각 객체들이 상호간에 필요한 데이터들을 주고 받을 수 있도록 연결만 시켜주면 된다.
다음, 그래픽 편집기 제공 장치를 도 3을 참조하여 상세하게 설명한다.
도 3은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치를 개략적으로 나타내는 구성도이다.
도 3을 참고하면, 그래픽 편집기 제공 장치(300)는 좌표계 설정부(310), 윈도우 변환부(320), 윈도우 정의부(330), 윈도우 매니저부(340), 그래픽 객체부(350), 그래픽 특성 설정부(360), 입력 매니저부(370) 및 이벤트 처리부(380)를 포함한다. 또한, 그래픽 편집기 제공 장치(300)는 GUI 윈도우(100)와 연동하여 동작한다.
좌표계 설정부(310)는 데이터 구조 내의 특정 도형을 화면으로 출력하는 작업에 필요한 좌표계를 실세계 좌표계로 설정한다.
그래픽 편집기는 실 세계에서 이루어지는 작업을 컴퓨터라는 한정된 자원 상에서 수행할 수 있게 하는 프로그램이므로, 이들 각각을 표현할 수 있는 좌표계가 필요하다. 또한, 컴퓨터상에서 도형을 화면으로 출력하는 작업에는 반드시 이러한 좌표계의 변환 작업이 수반 되어야 한다.
컴퓨터 그래픽에서의 모든 그리기 작업은 컴퓨터 화면을 중심으로 한 화면 좌표로 수행이 된다. 화면 좌표계는 컴퓨터 모니터 화면에서 쓰이는 좌표계로서 화면의 좌상점을 원점으로 하고 X,Y축 각각의 방향으로 화면의 해상도의 값을 최대값으로 갖는 직각 좌표계이다. 사용자가 그리고자 하는 모든 도형들은 화면 좌표로 변환되고, 변환된 결과가 컴퓨터 내부의 프레임 버퍼(Frame Buffer)라는 메모리로 복사되어 화면상에 나타나게 된다.
윈도우 시스템에서는 화면 좌표 대신에 윈도우 좌표계가 쓰인다.
윈도우 좌표계는 윈도우의 좌상점을 원점으로 하고 X,Y 축 각각의 방향으로 윈도우의 폭과 높이를 최대값으로 갖는 직각 좌표계이다. 윈도우 좌표계를 통해 그려진 도형은 윈도우 시스템 내부에서 자동으로 화면 좌표로 변환되어 출력 된다.
이와 같은, 화면 좌표계와 윈도우 좌표계는 모두 좌표값의 최대치가 화면 또는 윈도우의 크기에 제약을 받게 되므로, 이들 좌표계를 통해 현실 세계의 도형을 표현하기는 어렵다.
따라서, 모든 그래픽 응용 분야에서는 현실 세계를 표현 할 수 있는 또 하나의 좌표계를 도입하여 사용하는데 이것이 실세계 좌표계이다.
실세계 좌표계는 X,Y 직각 좌표계로서 X,Y 각각 -무한대에서 +무한대까지의 범위를 갖는다. 하지만,실세계 좌표계가 컴퓨터 내부의 기억장치에 저장되는 경우에는 일반적으로 X,Y 좌표를 32 비트 정수를 사용하여 저장할 경우 -2,147,483,648에서 +2,147,483,648까지의 범위를 갖는다. 따라서, 실세계 좌표로 저장되어 있는 데이터 구조 내의 도형을 화면 상에 그림으로 표현하기 위해서는 실세계 좌표를 화면 또는 윈도우 좌표계로 변환하여 주는 작업이 필요하다.
윈도우 변환부(320)는 좌표계 설정부(310)에서 설정한 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 화면 좌표계 또는 윈도우 좌표계로 변환한다.
도 3을 참고하면, 윈도우 변환부(320)는 전체 실세계 좌표계의 도형을 화면상에 모두 표현하기가 어려운 경우, 실세계 좌표계상에서 그림으로 보여주고자 하는 사각형 영역읕 하나의 뷰(View) 영역으로 정의하고,정의한 뷰(View) 영역 내의 도형들만을 화면 좌표계 또는 윈도우 좌표계로 변환하여 화면상에 그리게 된다.
예를 들어, 도 3에서의 뷰(View) 영역은 회로도에 관한 데이터를 포함하는 회로도 뷰(schematic View)와 반도체 칩 레이아웃에 관한 데이터를 포함하는 레이아웃 뷰(layout View)를 포함한다.
사용자는 뷰(View) 영역에서 실세계 좌표계상에서 그림으로 보여주고자 하는 사각형 영역(도 4에서의 Virtual Canvas w1~ Virtual Canvas w4)을 선택한다.
멀티 윈도우를 지원하는 윈도우 시스템 상에서는 동일한 실세계 좌표계를 대상으로 다수의 뷰(View) 영역이 존재할 수 있으며, 그에 따른 좌표계 변환 작업과 도형이 출력될 물리적 윈도우(Physical Window)가 각 뷰(View) 영역에 따라 구분되어 작업이 수행되어야 한다. 이와 같은, 뷰(View) 영역은 필요에 따라 실세계 좌표계 상에서 위치 및 크기를 바꿀 수 있어야 한다.
윈도우 변환부(320)는 상기에서 기재하고 있는 것과 같이 화면 좌표계 또는 윈도우 좌표계로 변환하는 과정을 윈도우 변환(Windowing)이라고 정의한다. 윈도우 변환은 확대(Zoom In), 축소(Zoom Out), 화면 이동(Pan), Fit 명령 등과 같은 작업을 수행하는 명령이다.
윈도우 정의부(330)는 실세계 좌표계 상에서의 하나의 뷰(View) 영역과 그 부분을 화면에 출력하게 되는 실제 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우라고 정의한다. 여기서, 가상 그림판 윈도우는 좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우이다.
실제의 좌표 변환 작업은 윈도우 매니저부(340)에 의해 수행되며, 가상 그림판 윈도우에 연계된 화면상의 물리적 윈도우로 출력된다.
윈도우 매니저부(340)는 가상 그림판 윈도우 매니저(Virtual Canvas Manager)에 해당하는 것으로, 자기가 관리하고 있는 여러 가상 그림판 윈도우들을 위하여 좌표 변환과 관련된 일련의 윈도우 변환 작업 및 그래픽 도형을 그리는데 필요한 제반 수단을 제공한다.
모든 그래픽 응용 프로그램들은 복잡한 좌표 변환을 따로 수행할 필요 없이, 도 4와 같이 실세계 좌표로 표현된 그래픽 도형과 그 도형을 출력할 가상 그림판 윈도우(Virtual Canvas w1~ Virtual Canvas w4)를 관리하고 있는 가상 그림판 윈도우 매니저(Virtual Canvas Manager) 즉, 윈도우 매니저부(340)에게 전달한다.
윈도우 매니저부(340)는 가상 그림판 윈도우를 실제의 화면상의 윈도우로 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하며 최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그린다.
윈도우 매니저부(340)는 윈도우 변환의 수행을 위한 적어도 하나의 명령 함수(341)를 포함한다.
그래픽 객체부(350)는 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조로서, 화면 상에 출력할 도형의 종류와 특성을 가상 그림판 윈도우에 전달하는 데이터 형식에 해당하는 그래픽 객체를 설정한다. 여기서, 그래픽 객체는 X 라이브러리를 통하여 출력 가능한 모든 도형과 그 도형의 특성을 표현한다.
그래픽 객체가 표현하는 기본 도형들은 도 5와 같으며, 기본 도형들의 그래픽 특성들은 도 6과 같다.
도 5를 참고하면, 기본 도형들은 점(Point), 선(Line), 다각형(Polygon), 사각형(Box), 채워진 사각형(Fillbox), 원(Circle), 채워진 원(Fillcircle), 호(Arc), 채워진 호(Fillarc) 및 텍스트(text)를 포함한다.
도 6을 참고하면 기본 도형들의 그래픽 특성은 쓰기 모드(Write Mode), 색(Color), 선의 타입(Line Type), 선의 두깨(Line Thickness), 특정 영역을 채우는 타입(Fill Type) 및 폰트(Fonts)를 포함한다.
즉, 그래픽 객체는 화면상에 출력되는 도형의 데이터 구조로서, 그래픽 객체의 내부에는 도형과 관련된 정보를 갖는 그래픽 데이터가 있고, 그 위에는 그래픽 출력의 특성을 정의하는 그래픽 특성 부분이 있다.
본 발명의 실시예에 따른, 그래픽 객체는 응용 프로그래머의 확장성을 충분히 고려하여 설계 되었다. 예를 들면 선, 사각형, 원, 호 등과 같은 도형은 그래픽 편집기 제공 장치 내에 기본 그래픽 객체로 정의되어 있다. 응용 프로그래머가 기본 도형들을 모아 복합적으로 구성한 도형(심볼,입출력단자 등) 또한 새로운 그래픽 객체로 정의하여 추가 하면 새로운 도형도 기본 도형과 동일한 도형 그리기 명령으로 그릴 수 있다.
입력 매니저부(360)는 적어도 하나의 입력원으로부터 입력 데이터를 전달받아, 전달 받은 입력 데이터를 명령 함수(341)에게 단일한 경로로 전달한다.
일반적으로, 하드웨어 외부의 사용자로부터의 입력은 마우스에 의한 포인트 좌표 및 버튼의 상태,키보드에 의한 문자열 등으로 한정된다. 반면에, 윈도우 시스템상에서 수행되는 그래픽 프로그램의 경우에는 다양한 사용자 인터페이스 도구들과 결합되어 다양한 형태의 경로를 통해 전달될 수 있다.
예를 들어, 문자열을 입력하고자 하는 경우에는 모티프(Motif) 툴키트의 메뉴 또는 선택 윈도우의 한 항목을 마우스를 이용하여 선택함으로써 입력될 수 있으며,Text 윈도우에서 키보드를 통하여 입력될 수 도 있다.
도 7을 참고하면, 입력 매니저부(360)는 명령 함수(341)로부터 입력 요청(Input Request)을 받고, 입력 요청에 대응하는 입력 데이터를 외부로부터 전달받는다. 이때, 입력 매니저부(360)는 마우스(Mouse), 키보드(K), 텍스트 중 하나의 입력원을 통해 외부 입력(External Input)을 전달받는다.
다음, 도 8을 참고하면, 입력 매니저부(360)는 외부로부터 전달받은 입력 데이터(User Inputs)를 명령 함수(341)로 전달한다(Input Delivery). 명령 함수(341)은 윈도우 변환에 관련된 명령의 수행을 담당하는 것으로, 입력 매니저부(360)에게 원하는 입력의 형태를 요구할 수 있다.
도 8을 참고하면, 명령 함수(341)는 입력 요청(Input Request), 데이터 구조 생성 및 처리 또는 다른 액션(Data Structure Manipulation or Other Actions) 및 그리기 대상(Draw Objects)을 포함한다.
그래픽 객체부(350)는 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조로서, 화면 상에 출력할 도형의 종류와 특성을 가상 그림판 윈도우에 전달하는 데이터 형식에 해당하는 그래픽 객체를 설정한다.
입력 매니저부(360)는 외부로부터 전달받은 입력 중에서 명령 함수(341)가 원하는 이벤트가 입력되는 경우, 전달받은 입력을 명령 함수(341)에 전달한다.
이벤트 처리부(370)는 화면상의 윈도우에서 발생하는 모든 사용자의 이벤트를 처리하며, 사용자의 이벤트에 해당하는 데이터를 입력 매니저부(360)를 통해 명령 함수(341)로 전달한다.
이벤트 처리부(370)는 윈도우 시스템으로부터 이벤트를 전달받은 경우에, 전달받은 이벤트가 러버 밴드(rubberband) 그리기 요구에 해당하는 경우, 이벤트를 윈도우 매니저부(340)로 전달함으로써, 윈도우 매니저부(340)가 러버 밴드(rubberband)를 그리게 한다. 다음, 윈도우 매니저부(340)는 명령 함수(341)에 의하여 입력 요구가 있는 이벤트인 경우에 입력 매니저부(360)를 통해 명령 함수(341)로 전달하게 한다.
앞의 두 경우에 해당되지 않는 이벤트의 경우에는 이벤트 처리부(370) 내부에서 처리된다. 이와 같은, 이벤트는 예를 들어, 윈도우 노출 이벤트, 윈도우 크기 변경 이벤트 등이 있다.
윈도우 노출 이벤트의 경우에는 그림판 윈도우를 다시 그리게 하고, 윈도우 크기 변경 이벤트인 경우에는 윈도우 매니저부(340)를 호출하여 해당 그림판 윈도우의 크기를 새로 계산한 후 윈도우를 리프레쉬(Refresh)하게 한다.
다음, 그래픽 편집기 제공 방법을 도 9를 참조하여 상세하게 설명한다.
도 9는 본 발명의 실시예에 따른 그래픽 편집기 제공 방법을 나타내는 흐름도이다.
도 9를 참고하면, 그래픽 편집기 제공 장치(300)는 데이터 구조 내의 특정 도형을 화면으로 출력하는 작업에 필요한 좌표계를 실세계 좌표계로 설정한다(S100). S100 단계에서 설정한 실세계 좌표계는 X,Y 직각 좌표계로서 X,Y 각각 -무한대에서 +무한대까지의 범위를 갖는다. 하지만,실세계 좌표계가 컴퓨터 내부의 기억장치에 저장되는 경우에는 일반적으로 X,Y 좌표를 32 비트 정수를 사용하여 저장할 경우 -2,147,483,648에서 +2,147,483,648까지의 범위를 갖는다. 따라서, 실세계 좌표로 저장되어 있는 데이터 구조 내의 도형을 화면 상에 그림으로 표현하기 위해서는 실세계 좌표를 화면 또는 윈도우 좌표계로 변환하여 주는 작업이 필요하다.
그래픽 편집기 제공 장치(300)는 S100 단계에서 설정한 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 화면 좌표계 또는 윈도우 좌표계로 변환한다(S200). S200 단계와 같이 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 화면 좌표계 또는 윈도우 좌표계로 변환하는 과정을 윈도우 변환(Windowing)이라고 정의한다. 윈도우 변환은 화면 확대(Zoom In), 화면 축소(Zoom Out), 화면 이동(Pan), Fit 명령 등과 같은 작업을 수행하는 명령이다.
그래픽 편집기 제공 장치(300)는 실세계 좌표계 상에서의 하나의 뷰(View) 영역과 그 부분을 화면에 출력하게 되는 실제 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우라고 정의한다(S300). 여기서, 가상 그림판 윈도우는 좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우이다.
그래픽 편집기 제공 장치(300)는 S300 단계에서 정의한 가상 그림판 윈도우를 실제의 화면상의 윈도우로 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정한다(S400). S400 단계에서는 최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그릴 수 있다. 여기서, 출력 관련 함수들 중 명령 함수(341)는 가상 그림판 윈도우를 화면상의 윈도우 좌표로 변환을 수행하는데 필요한 함수이다.
그래픽 편집기 제공 장치(300)는 S300 단계에서 정의한 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정한다(S500). 여기서, 그래픽 객체는 화면 상에 출력할 도형의 종류와 특성을 가상 그림판 윈도우에 전달하는 데이터 형식에 해당한다.
그래픽 편집기 제공 장치(300)는 명령 함수(341)로부터 입력 요청(Input Request)을 받고, 입력 요청에 대응하는 입력 데이터를 외부로부터 전달받는다(S600). 이때, 그래픽 편집기 제공 장치(300)는 마우스(Mouse), 키보드(K), 텍스트 중 하나의 입력원을 통해 외부 입력(External Input)을 전달받는다.
그래픽 편집기 제공 장치(300)는 S600 단계에서 사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 처리한다(S700). 즉, 그래픽 편집기 제공 장치(300)는 입력 데이터에 대응하는 이벤트를 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공한다.
다음, 그래픽 편집기 제공 장치의 구조를 도 10을 참조하여 상세하게 설명한다.
도 10은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치의 구조를 나타내는 도면이다.
도 10을 참고하면, 그래픽 편집기 제공 장치는 각기 고유한 기능을 수행하는 객체들의 계층적 구조로 구성되어 있다.
그래픽 편집기 제공 장치를 이용하는 그래픽 편집기는 GUI 매니저(GUI Manager), 입력 매니저(Input Manager) 및 적어도 하나의 그림판 윈도우 매니저(Camvas Manager)를 포함한다.
GUI 매니저는 그래픽 편집기 제공 장치가 제공하는 기본 사양의 GUI 윈도우(100)를 생성하고, 제어한다.
입력 매니저는 외부 입력(External Input) 중 입력 이벤트들을 명령 함수(341)에 전달한다.
그림판 윈도우 매니저는 도형을 출력한 그림판 윈도우를 관리한다.
도형의 출력은 그림판 윈도우 매니저 상에서 이루어진다. 하나의 그림판 윈도우 매니저는 X 윈도우에서 하나의 윈도우에 대응하며, 그림판 윈도우 매니저 하나가 생성될 때마다 화면상에 하나의 윈도우가 생성된다.
그림판 윈도우 매니저는 실세계 좌표로 도형을 그릴 수 있으며, 좌표 변환 함수를 포함하고 있다는 점에서 GUI 매니저 및 입력 매니저와 다르다. .
동일한 데이터 구조의 도형들을 여러 그림판 윈도우 매니저 상에서 동시에 편집할 수 있다. 이를 위하여, 그림판 윈도우 매니저는 동일한 데이터를 표현하는 일련의 그림판 객체들을 관리한다.
상기와 같은 세 종류의 객체들을 하나의 그래픽 편집기에서 동작하도록 제어하고, 서로간의 데이터 교환이 이루어지도록 관리하는 역할을 툴 매니저(Tool Manager)가 담당한다.
그래픽 편집기 제공 장치는 동일한 데이터 구조를 참조하는 서로 다른 기능의 그래픽 편집기가 하나의 프로그램 내에서 구현될 수 있도록 기본 프레임을 제공한다. 따라서, 하나의 프로그램 내에서 도 10과 같이 여러 개의 툴 매니저(Tool Manager)가 있을 수 있다. 도 10을 참고하면, 여러 개의 툴 매니저(Tool Manager)는 시스템 매니저(System Manage)가 관리한다.
시스템 매니저(System Manage)는 여러 개의 툴 매니저(Tool Manager)를 관리하는 역할 이외에 Motif 툴 키트를 초기화하고, 그래픽 작업에 필요한 컬러맵,채우기 패턴, 폰트 등을 생성하여 도형의 출력에 이용할 수 있게 한다.
다음, 그래픽 편집기 제공 장치의 클래스 구조를 도 11을 참조하여 상세하게 설명한다.
도 11은 본 발명의 실시예에 따른 그래픽 편집기 제공 장치의 클래스 구조를 나타내는 도면이다.
먼저, 그래픽 편집기 제공 장치는 객체 지향 프로그래밍 개념으로 구현되었다.
본 발명에서는 그래픽 편집기 제공 장치를 구성하는 여러 객체 각각을 하나의 클래스로 정의하고, 각 클래스들 중에서 기능과 특성이 유사한 클래스들을 모아 상위 클래스(superclass)를 정의한다. 모든 클래스들이 하나의 클래스의 하위 클래스(subclass)가 될 때까지 이러한 과정을 반복하여 도 11과 같은 클래스 계층 구조를 완성하였다.
도 11을 참고하면, 클래스 계층 구조 트리 상에서 말단 객체들은 실제 그래픽 편집기 제공 장치에서 사용되는 객체들이고, 트리 중간의 클래스들은 클래스들 간의 기능 및 데이터를 공유하기 위하여 만들어진 중간 클래스들이다.
Core 클래스(Core)는 모든 클래스의 최상위 클래스로서 객체를 생성, 초기화, 구현, 파괴하는 기능을 수행한다.
CoreWin 클래스(CoreWin)는 도형을 그릴 수 있는 기능을 제공한다.
ScrWin 클래스(ScrWin)는 X 윈도우 시스템에서 실제 생성되는 윈도우와 일대일 대응관계를 갖는 객체로서 생성될 때 Motif 툴 키트의 함수를 호출하여 도형을 그릴 수 있는 윈도우를 생성한다.
매니저 클래스(Manager)는 다른 객체들을 관리하는 기능을 갖는 클래스로서 다른 객체들을 관리할 목적이 있는 툴 매니저, 그림판 윈도우 매니저, 시스템 매니저 클래스들이 매니저 클래스의 하위 클래스이다.
도 11과 같은 계층 구조상에서 상위 클래스의 모든 기능 및 특성은 하위 클래스로 상속된다. 따라서, 여러 클래스에서 공통으로 필요한 특성 및 기능은 상위 클래스 한곳에만 정의되고 구현되므로 전체적으로 프로그램의 크기가 줄어들게 되고, 현재 클래스의 특성에 필요한 특성을 추가하여 새로운 클래스를 정의할 수 있으므로 프로그램의 재사용이 용이하다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; GUI 윈도우 110; 메뉴 영역
120; 그림판 영역 130; 메시지 영역
140; 명령 영역 150; 상태 영역
210; 그래픽 엔진 부분 220; 응용 부분
300; 그래픽 편집기 제공 장치
310; 좌표계 설정부 320; 윈도우 변환부
330; 윈도우 정의부 340; 윈도우 매니저부
350; 그래픽 객체부 360; 그래픽 특성 설정부
370; 입력 매니저부 380; 이벤트 처리부

Claims (12)

  1. 그래픽 편집기를 제공하는 장치가 데이터 구조 내의 도형을 화면으로 출력하는 작업에 적용되는 좌표계를 실세계 좌표계로 설정하는 단계;
    상기 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 윈도우 좌표계로 변환하는 단계;
    상기 실세계 좌표계 상에서의 하나의 뷰 영역과 상기 하나의 뷰 영역을 화면에 출력하게 되는 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우를 정의하는 단계;
    상기 가상 그림판 윈도우를 상기 윈도우 좌표계를 이용하여 화면상의 윈도우 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하는 단계;
    상기 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정하는 단계; 및
    사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 상기 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공하는 단계
    를 포함하는 그래픽 편집기 제공 방법.
  2. 청구항 1에 있어서,
    상기 실세계 좌표계로 설정하는 단계는
    상기 좌표계를 X,Y 직각 좌표계로 설정하는 것을 특징으로 하는 그래픽 편집기 제공 방법.
  3. 청구항 1에 있어서,
    상기 윈도우 좌표계로 변환하는 단계는
    화면 확대 명령, 화면 축소 명령, 화면 이동 명령과 같은 작업을 수행하는 윈도우 변환에 해당하는 것을 특징으로 하는 그래픽 편집기 제공 방법.
  4. 청구항 1에 있어서,
    상기 가상 그림판 윈도우를 정의하는 단계는
    좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우를 정의하는 것을 특징으로 하는 그래픽 편집기 제공 방법.
  5. 청구항 1에 있어서,
    상기 그래픽 특성을 지정하는 단계는
    최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그릴 수 있도록 상기 도형에 대응하는 그래픽 특성을 지정하는 것을 특징으로 하는 그래픽 편집기 제공 방법.
  6. 청구항 5에 있어서,
    상기 출력 관련 함수 중 명령 함수는 가상 그림판 윈도우를 화면상의 윈도우 좌표로 변환을 수행하는데 필요한 함수에 해당하는 것을 특징으로 하는 그래픽 편집기 제공 방법.
  7. 데이터 구조 내의 도형을 화면으로 출력하는 작업에 적용되는 좌표계를 실세계 좌표계로 설정하는 좌표계 설정부;
    상기 실세계 좌표계로 저장되어 있는 데이터 구조 내의 도형을 윈도우 좌표계로 변환하는 윈도우 변환부;
    상기 실세계 좌표계 상에서의 하나의 뷰 영역과 상기 하나의 뷰 영역을 화면에 출력하게 되는 물리적 윈도우를 묶어서 하나의 가상 그림판 윈도우를 정의하는 윈도우 정의부;
    상기 가상 그림판 윈도우를 상기 윈도우 좌표계를 이용하여 화면상의 윈도우 좌표 변환을 수행하고, 출력 작업을 위한 그래픽 특성을 지정하는 윈도우 매니저부;
    상기 가상 그림판 윈도우 상에 그래픽 도형을 그리기 위하여 정의된 도형들의 데이터 구조에 해당하는 그래픽 객체를 설정하는 그래픽 객체 설정부; 및
    사용자로부터 전달받은 입력 데이터에 대응하는 이벤트를 상기 그래픽 특성과 그래픽 객체를 이용하여 처리하도록 그래픽 편집기를 제공하는 이벤트 처리부
    를 포함하는 그래픽 편집기 제공 장치.
  8. 청구항 7에 있어서,
    상기 좌표 설정부는
    상기 좌표계를 상기 실세계 좌표계에 해당하는 X,Y 직각 좌표계로 설정하는 것을 특징으로 하는 그래픽 편집기 제공 장치.
  9. 청구항 7에 있어서,
    상기 윈도우 변환부는
    화면 확대 명령, 화면 축소 명령, 화면 이동 명령과 같은 작업을 수행하는 윈도우 변환을 통해 상기 도형을 윈도우 좌표계로 변환하는 것을 특징으로 하는 그래픽 편집기 제공 장치.
  10. 청구항 7에 있어서,
    상기 윈도우 정의부는
    좌표의 변환 없이 데이터 구조에 저장되어 있는 도형들의 실제의 실세계 좌표로 도형을 그릴 수 있는 가상의 윈도우를 정의하는 것을 특징으로 하는 그래픽 편집기 제공 장치.
  11. 청구항 7에 있어서,
    상기 윈도우 매니저부는
    최종적으로 화면상의 윈도우에 윈도우 시스템에서 제공하는 출력 관련 함수들을 이용하여 도형을 그릴 수 있도록 상기 도형에 대응하는 그래픽 특성을 지정하는 것을 특징으로 하는 그래픽 편집기 제공 장치.
  12. 청구항 11에 있어서,
    상기 출력 관련 함수 중 명령 함수는 가상 그림판 윈도우를 화면상의 윈도우 좌표로 변환을 수행하는데 필요한 함수에 해당하는 것을 특징으로 하는 그래픽 편집기 제공 장치.
KR20130064526A 2013-06-05 2013-06-05 그래픽 편집기 제공 장치 및 그 방법 KR20140142863A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130064526A KR20140142863A (ko) 2013-06-05 2013-06-05 그래픽 편집기 제공 장치 및 그 방법
US14/297,278 US20140365926A1 (en) 2013-06-05 2014-06-05 Apparatus and method for providing graphic editors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130064526A KR20140142863A (ko) 2013-06-05 2013-06-05 그래픽 편집기 제공 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20140142863A true KR20140142863A (ko) 2014-12-15

Family

ID=52006585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130064526A KR20140142863A (ko) 2013-06-05 2013-06-05 그래픽 편집기 제공 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20140365926A1 (ko)
KR (1) KR20140142863A (ko)

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3381300D1 (de) * 1983-03-31 1990-04-12 Ibm Abbildungsraumverwaltung und wiedergabe in einem bestimmten teil des bildschirms eines virtuellen mehrfunktionsterminals.
US4549275A (en) * 1983-07-01 1985-10-22 Cadtrak Corporation Graphics data handling system for CAD workstation
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
US4731606A (en) * 1985-08-02 1988-03-15 International Business Machines Corporation Method for rapid windowing of display information in computer graphics
JPH0766317B2 (ja) * 1986-04-09 1995-07-19 株式会社日立製作所 表示制御方法
US4845643A (en) * 1986-04-14 1989-07-04 Clapp Roy A Simplified computer graphics perspectives
US5347624A (en) * 1987-03-05 1994-09-13 Hitachi, Ltd. Method and apparatus for display control
US5353393A (en) * 1989-06-14 1994-10-04 Sunwest Trading Corporation Apparatus and method for manipulating scanned documents in a computer aided design system
US5212770A (en) * 1989-12-06 1993-05-18 Eastman Kodak Company Data-handling and display system capable of supporting multiple application programs and output devices
KR940004735B1 (ko) * 1991-11-22 1994-05-28 삼성전자 주식회사 그래픽 처리 시스템
US5390295A (en) * 1991-12-20 1995-02-14 International Business Machines Corporation Method and apparatus for proportionally displaying windows on a computer display screen
US5377313A (en) * 1992-01-29 1994-12-27 International Business Machines Corporation Computer graphics display method and system with shadow generation
US5625827A (en) * 1993-09-21 1997-04-29 Gary M. Krause Method and system of blueprint document manipulation
US6535220B2 (en) * 1998-02-17 2003-03-18 Sun Microsystems, Inc. Static and dynamic video resizing
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
EP1365385B1 (en) * 1998-11-09 2012-06-13 Broadcom Corporation Graphics display system with processing of graphics layers, alpha blending and composition with video data
US7071935B1 (en) * 1999-06-14 2006-07-04 Sun Microsystems, Inc. Graphics system with just-in-time decompression of compressed graphics data
US6407749B1 (en) * 1999-08-04 2002-06-18 John H. Duke Combined scroll and zoom method and apparatus
US6567098B1 (en) * 2000-06-22 2003-05-20 International Business Machines Corporation Method and apparatus in a data processing system for full scene anti-aliasing
US7310103B2 (en) * 2002-03-05 2007-12-18 Sun Microsystems, Inc. Pipelined 2D viewport clip circuit
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US8212840B2 (en) * 2006-10-23 2012-07-03 Qualcomm Incorporated 3-D clipping in a graphics processing unit
EP2223245B1 (en) * 2007-11-30 2011-07-20 Coventor, Inc. System and method for three-dimensional schematic capture and result visualization of multi-physics system models
US8010624B2 (en) * 2008-03-27 2011-08-30 Amazon Technologies, Inc. Dynamic composition for image transmission
EP2202689A1 (en) * 2008-12-24 2010-06-30 STMicroelectronics R&D Ltd A processing unit
US20110157322A1 (en) * 2009-12-31 2011-06-30 Broadcom Corporation Controlling a pixel array to support an adaptable light manipulator
CN102063496B (zh) * 2010-01-07 2013-03-13 董福田 空间数据化简方法及装置
JP5876229B2 (ja) * 2011-05-24 2016-03-02 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
CN102270095A (zh) * 2011-06-30 2011-12-07 威盛电子股份有限公司 多重显示器控制方法及其系统
EP2761878B1 (en) * 2011-09-29 2020-04-08 Dolby Laboratories Licensing Corporation Representation and coding of multi-view images using tapestry encoding
US9153062B2 (en) * 2012-02-29 2015-10-06 Yale University Systems and methods for sketching and imaging
US8861005B2 (en) * 2012-09-28 2014-10-14 Interactive Memories, Inc. Methods for real time discovery, selection, and engagement of most economically feasible printing service vendors among multiple known vendors
US20140200863A1 (en) * 2013-01-11 2014-07-17 The Regents Of The University Of Michigan Monitoring proximity of objects at construction jobsites via three-dimensional virtuality in real-time

Also Published As

Publication number Publication date
US20140365926A1 (en) 2014-12-11

Similar Documents

Publication Publication Date Title
AU2013235787B2 (en) Method for indicating annotations associated with a particular display view of a three-dimensional model independent of any display view
EP0712513B1 (en) Graphic editor framework system
RU2321892C2 (ru) Язык разметки и объектная модель для векторной графики
JP5690496B2 (ja) コンピュータプログラム、グラフィックディスプレイエディタ、及びコンピュータシステム
JP3592750B2 (ja) 機械操作方法
CN101421761A (zh) 视件和场景图接口
JPH07200880A (ja) オブジェクトの簡単な操作と表示を可能にするための3dオブジェクトへのスライダの接続
JP2012521041A (ja) 連続および不連続プロパティのスムーズレイアウトアニメーション
US10083525B2 (en) Multi-dimensional color and opacity gradation tools, systems, methods and components
EP3465426B1 (en) User interface with movable mini-tabs
US8427502B2 (en) Context-aware non-linear graphic editing
JPH04348428A (ja) 設計支援方法
KR20140142863A (ko) 그래픽 편집기 제공 장치 및 그 방법
US10452751B2 (en) Method of visually interacting with a document by dynamically displaying a fill area in a boundary
Bäsken et al. GeoWin a generic tool for interactive visualization of geometric algorithms
Urbanek iPlots eXtreme: next-generation interactive graphics design and implementation of modern interactive graphics
JP6188365B2 (ja) 情報処理装置、情報処理装置の制御方法、コンピュータプログラム
Gobbetti et al. Object-oriented design of dynamic graphics applications
Elnagar et al. A global path planning Java-based system for autonomous mobile robots
CN117649460A (zh) 蒙版操作方法及其设备、存储介质、终端
JP2949594B2 (ja) 動画表示装置
CN117197289A (zh) 一种基于模板的图形渲染方法及系统
CN115249284A (zh) 可视化视图的构建方法及装置
Miteshkumar Semester Long Internship Report
de Craen AN INTERACTIVE GRAPHICS EDITOR

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal