KR20220017063A - 전자 장치에서 손 글씨 입력 제공 방법 및 장치 - Google Patents

전자 장치에서 손 글씨 입력 제공 방법 및 장치 Download PDF

Info

Publication number
KR20220017063A
KR20220017063A KR1020200097114A KR20200097114A KR20220017063A KR 20220017063 A KR20220017063 A KR 20220017063A KR 1020200097114 A KR1020200097114 A KR 1020200097114A KR 20200097114 A KR20200097114 A KR 20200097114A KR 20220017063 A KR20220017063 A KR 20220017063A
Authority
KR
South Korea
Prior art keywords
handwriting
action
electronic device
processor
interest
Prior art date
Application number
KR1020200097114A
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 KR1020200097114A priority Critical patent/KR20220017063A/ko
Priority to PCT/KR2021/008737 priority patent/WO2022030776A1/ko
Publication of KR20220017063A publication Critical patent/KR20220017063A/ko
Priority to US18/105,931 priority patent/US11995308B2/en

Links

Images

Classifications

    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • G06V30/147Determination of region of interest
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/226Character recognition characterised by the type of writing of cursive writing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시의 다양한 실시예들은 전자 장치에서 손 글씨 입력을 지원하는 방법 및 장치에 관하여 개시한다. 다양한 실시예들에 따른 전자 장치는, 디스플레이 모듈, 및 상기 디스플레이 모듈과 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하고, 상기 실행 화면을 통해 손 글씨 입력을 감지하고, 상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하고, 사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하고, 및 상기 대상 객체에 기반하여 손 글씨 정렬을 수행할 수 있다. 다양한 실시예들이 가능하다.

Description

전자 장치에서 손 글씨 입력 제공 방법 및 장치{APPARATUS AND METHOD FOR PROVIDING HANDWRITING INPUT}
본 개시의 다양한 실시예들은 전자 장치에서 손 글씨 입력을 지원하는 방법 및 장치에 관하여 개시한다.
디지털 기술의 발달과 함께 이동통신 단말기, PDA(personal digital assistant), 전자수첩, 스마트 폰, 태블릿 PC(personal computer), 웨어러블 디바이스(wearable device)와 같은 다양한 유형의 전자 장치가 널리 사용되고 있다. 이러한, 전자 장치는 기능 지지 및 증대를 위해, 전자 장치의 하드웨어적인 부분 및/또는 소프트웨어적인 부분이 지속적으로 개량되고 있다.
일 예로, 전자 장치는 사용자가 노트나 펜이 없이도 언제 어디서든 필요한 메모를 할 수 있도록 하는 메모 기능을 제공하고 있다. 예를 들어, 사용자는 손이나 전자 펜을 이용하여 전자 장치의 디스플레이(예: 터치스크린)에 직접 필기할 수 있다. 전자 장치는 디스플레이에 터치(또는 접촉)하는 터치 궤적(또는 좌표)을 손 글씨로서 입력받을 수 있다. 사용자는 펜을 이용하여 노트에 필기하는 것과 같이 사용자의 손 또는 전자 펜을 이용하여 손 글씨를 입력함으로써, 아날로그 감성을 느끼면서 편리하게 메모를 작성할 수 있다.
최근 전자 장치에서는 단순히 손 글씨 입력을 지원하는 것뿐만 아니라, 사용자의 손 글씨 입력의 편의성을 위해, 입력된 손 글씨에 대한 정렬(alignment) 기능을 제공하고 있다. 예를 들어, 전자 장치는, 사용자 선택에 따라, 입력된 손 글씨의 기울기, 위치, 단락, 및/또는 줄 간격을 자동적으로 조정하여 손 글씨를 정렬하여 사용자에게 제공할 수 있다.
하지만, 종래에서는 사용자에 의해 입력된 손 글씨가 복수 존재하는 경우, 사용자가 일부 손 글씨(예: 최근 입력한 손 글씨)만을 정렬할 수 있는 기능을 지원하지 않고 있다. 예를 들면, 종래에서는 사용자가 이미 입력한 손 글씨와 새로 입력한 손 글씨의 구분 없이, 모든 손 글씨에 대하여 전체적인 정렬 기능만을 제공하고 있다.
다양한 실시예들에서는, 전자 장치에서 입력된 손 글씨를 사용자의 액션(action) 단위로 구분하여, 입력된 전체 손 글씨 중 사용자 의도에 따른 적어도 일부 손 글씨에 대하여 정렬할 수 있는 방법 및 장치에 관하여 개시한다.
다양한 실시예들에서는, 전자 장치에서 사용자에 의해 입력되는 손 글씨를 액션 단위로 구분하고, 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여 사용자 의도에 따른 손 글씨 정렬을 지원할 수 있는 방법 및 장치에 관하여 개시한다.
다양한 실시예들에서는, 전자 장치에서 최근 액션에 관련된 손 글씨를 정렬할 때, 손 글씨의 대상 객체 및 객체와 연관된 주변 객체에 기반하여 대상 관심 영역을 설정하고, 대상 관심 영역을 통해 대상 객체 및 그와 연관된 주변 객체를 함께 정렬할 수 있는 방법 및 장치에 관하여 개시한다.
다양한 실시예들에서는, 최근 액션에 관련된 손 글씨의 대상 객체를 기반으로 주변 객체를 식별하고, 대상 객체를 주변 객체에 대응하도록 보정(예: 라인 보정 및/또는 크기 보정)할 수 있는 방법 및 장치에 관하여 개시한다.
본 개시의 실시예에 따른 전자 장치는, 디스플레이 모듈, 및 상기 디스플레이 모듈과 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하고, 상기 실행 화면을 통해 손 글씨 입력을 감지하고, 상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하고, 사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하고, 및 상기 대상 객체에 기반하여 손 글씨 정렬을 수행하도록 할 수 있다.
본 개시의 실시예에 따른 전자 장치는, 디스플레이 모듈, 및 상기 디스플레이 모듈과 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 관심 영역을 설정 및 상기 제1 객체를 제1 액션에 매핑하고, 상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 매핑된 상기 제1 객체를 정렬하고, 제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 관심 영역을 설정 및 상기 제2 객체를 제2 액션에 매핑하고, 상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 제1 액션에 매핑된 상기 제1 객체는 유지하는 상태에서, 상기 제2 액션에 매핑된 상기 제2 객체를 정렬하도록 설정되고, 상기 제1 손 글씨 및 상기 제2 손 글씨는 상기 제1 액션과 상기 제2 액션에 따른 액션 단위로 구분되고, 상기 제1 액션의 상기 제1 객체 중 상기 제2 액션의 상기 제2 객체와 교차되는 적어도 일부는 상기 제2 객체와 연관되고, 상기 제2 객체와 함께 정렬되는 것을 포함할 수 있다.
본 개시의 실시예에 따른 전자 장치의 동작 방법은, 손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하는 동작, 상기 실행 화면을 통해 손 글씨 입력을 감지하는 동작, 상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하는 동작, 사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하는 동작, 및 상기 대상 객체에 기반하여 손 글씨 정렬을 수행하는 동작을 포함할 수 있다.
상기와 같은 과제를 해결하기 위하여 본 개시의 다양한 실시예들에서는, 상기 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체를 포함할 수 있다.
본 개시의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 본 개시의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 본 개시의 바람직한 실시예와 같은 특정 실시예는 단지 예시로 주어진 것으로 이해되어야 한다.
다양한 실시예들에 따른 전자 장치 및 그의 동작 방법에 따르면, 손 글씨에 대해 액션 단위로 구분하여 손 글씨를 정렬함으로써, 사용자가 의도하는 손 글씨에 대해 중점적으로 정렬함으로써, 사용자의 사용성 및 편의성을 증대할 수 있다. 다양한 실시예들에 따르면, 전자 장치는 사용자에 의해 입력되는 손 글씨를 액션 단위로 구분하고, 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여 사용자 의도에 따른 손 글씨에 대해서만 집중적으로 정렬할 수 있다.
다양한 실시예들에 따르면, 전자 장치는 최근 액션에 관련된 손 글씨의 대상 객체를, 대상 객체와 관련된 주변 객체에 대응하도록 보정한 후 정렬함으로써, 대상 객체 및 그와 연관된 주변 객체 간의 조화(또는 어울림 배치)를 통해, 손 글씨가 깨끗하게 정리되는 심미적 효과 및 손 글씨 내용에 대한 가독성을 향상시킬 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도면 설명과 관련하여, 동일 또는 유사한 구성 요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예들에 따른 전자 장치의 구성을 개략적으로 도시하는 도면이다.
도 3은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 4는 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 5a, 도 5b 및 도 6은 다양한 실시예들에 따른 전자 장치에서 액션 별 관심 영역을 설정하는 예를 설명하기 위한 도면들이다.
도 7은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 8은 다양한 실시예들에 따른 전자 장치에서 평균 델타를 구하는 예를 설명하기 위해 도시하는 도면이다.
도 9는 다양한 실시예들에 따른 전자 장치에서 손 글씨 별로 복수의 관심 영역을 설정하는 예를 설명하기 위해 도시하는 도면이다.
도 10은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 11 및 도 12는 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역이 설정되는 예를 설명하기 위한 도면들이다.
도 13, 도 14, 도 15 및 도 16은 다양한 실시예들에 따른 전자 장치에서 이용 가능한 액션의 예를 설명하기 위한 도면들이다.
도 17, 도 18 및 도 19는 다양한 실시예들에 따른 전자 장치에서 액션 단위로 정렬 대상 객체를 구분하는 예를 설명하기 위한 도면들이다.
도 20은 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역을 설정하는 예를 설명하기 위한 도면이다.
도 21 및 도 22는 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역을 설정하는 예를 설명하기 위한 도면들이다.
도 23은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 24는 다양한 실시예들에 따른 전자 장치에서 라인 보정의 예를 설명하기 위한 도면이다.
도 25, 도 26, 도 27 및 도 28은 다양한 실시예들에 따른 전자 장치에서 라인 보정을 위한 동작 예를 설명하기 위한 도면들이다.
도 29, 도 30 및 도 31은 다양한 실시예들에 따른 전자 장치에서 라인 보정의 동작 예를 설명하기 위한 도면들이다.
도 32는 다양한 실시예들에 따른 전자 장치에서 크기 보정의 예를 설명하기 위한 도면이다.
도 33 및 도 34는 다양한 실시예들에 따른 전자 장치에서 크기 보정의 예를 설명하기 위한 도면들이다.
도 35, 도 36 및 도 37은 다양한 실시예들에 따른 전자 장치에서 크기 보정의 동작 예를 설명하기 위한 도면들이다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치(CPU, central processing unit) 또는 어플리케이션 프로세서(AP, application processor)) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치(GPU, graphic processing unit), 신경망 처리 장치(NPU, neural processing unit), 이미지 시그널 프로세서(ISP, image signal processor), 센서 허브 프로세서(sensor hub processor), 또는 커뮤니케이션 프로세서(CP, communication processor))를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(inactive)(예: 슬립(sleep)) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(OS, operating system)(142), 미들 웨어(middleware)(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD(secure digital) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN(wide area network))와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB, enhanced mobile broadband), 단말 전력 최소화와 다수 단말의 접속(mMTC, massive machine type communications), 또는 고신뢰도와 저지연(URLLC, ultra-reliable and low-latency communications)을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO, full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC, mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱(heuristic)하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치의 구성을 개략적으로 도시하는 도면이다.
일 실시예에 따라, 도 2는 다양한 실시예들에 따른 전자 장치(101)에서 사용자의 필기 입력을 지원하는 것과 관련된 구성의 예를 나타낼 수 있다. 일 실시예에 따라, 도 2에 예시된 전자 장치(101)는 도 1을 참조한 설명 부분에서 설명한 바와 같은 전자 장치(101)의 구성 요소의 전부 또는 적어도 일부를 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치(101)는 바형(bar type) 또는 평판형(plate type)의 외관을 가지고 있지만, 본 발명이 이에 한정되지 않는다. 예를 들어, 도시된 전자 장치(101)는 롤러블 전자 장치(rollable electronic device)나 폴더블 전자 장치(foldable electronic device)의 일부일 수 있다. “롤러블 전자 장치”함은, 디스플레이(예: 도 1 또는 도 2의 디스플레이 모듈(160))의 굽힘 변형이 가능해, 적어도 일부분이 말아지거나(wound or rolled), 하우징(미도시)의 내부로 수납될 수 있는 전자 장치를 의미할 수 있다. 사용자의 필요에 따라, 롤러블 전자 장치는 디스플레이를 펼침으로써 또는 디스플레이의 더 넓은 면적을 외부로 노출시킴으로써 화면 표시 영역을 확장하여 사용할 수 있다. “폴더블 전자 장치”는 디스플레이(예: 도 1 또는 도 2의 디스플레이 모듈(160))의 서로 다른 두 영역을 실질적으로 마주보게 또는 서로 반대 방향을 향하는(opposite to) 방향으로 접철 가능한 전자 장치를 의미할 수 있다. 일반적으로 휴대 상태에서 폴더블 전자 장치에서 디스플레이는 서로 다른 두 영역이 마주보는 상태로 또는 대향하는 방향으로 접철되고, 실제 사용 상태에서 사용자는 디스플레이(예: 도 1 또는 도 2의 디스플레이 모듈(160))를 펼쳐 서로 다른 두 영역이 실질적으로 평판 형태를 이루게 할 수 있다.
도 2를 참조하면, 전자 장치(101)는 프로세서(120), 디스플레이 모듈(160)), 및 메모리(130)를 포함할 수 있다. 일 실시예에 따라, 전자 장치(101)에 포함되는 구성 요소들은, 예를 들면, 하드웨어 모듈(예: 회로(circuitry))로 이해될 수 있다. 일 실시예에 따르면, 전자 장치(101)에 포함되는 구성 요소들은, 도 2에 도시된 구성 요소들(예: 프로세서(120), 디스플레이 모듈(160) 및/또는 메모리(130))에 제한되지 않을 수 있다. 예를 들면, 도 2에 도시된 전자 장치(101)의 구성 요소들은, 다른 구성 요소들로 대체되거나, 또는 추가적인 구성 요소들이 전자 장치(101)에 추가될 수 있다. 예를 들면, 전자 장치(101)는 센서 모듈(예: 도 1의 센서 모듈(176)), 카메라 모듈(예: 도 1의 카메라 모듈(180), 및/또는 통신 모듈(예: 도 1의 통신 모듈(190))와 같은 다른 구성 요소들을 포함할 수 있다.
일 실시예에 따라, 디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 일 실시예에 따라, 디스플레이 모듈(160)은 터치 회로(또는 터치 센서)(미도시) 또는 압력 센서를 포함할 수 있고, 터치 회로 또는 압력 센서에 기반하여 디스플레이 모듈(160)의 특정 위치에 대한 신호(예: 전압, 광량, 저항, 및/또는 전하량)의 변화를 측정함으로써 터치 입력 및/또는 호버링 입력(또는 근접 입력)을 감지할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 액정 표시 장치(LCD, liquid crystal display), OLED(organic light emitted diode), AMOLED(active matrix organic light emitted diode) 또는 플렉서블 디스플레이(flexible display)로 구성될 수 있다.
일 실시예에 따르면, 디스플레이 모듈(160)은 프로세서(120)의 제어 하에, 사용자가 손 글씨(handwriting)를 입력하는 것과 관련된 다양한 정보(예: 노트 레이아웃(note layout), 손 글씨 객체(예: 문자/글자(예: 텍스트(text)) 및/또는 비문자(예: 비텍스트(non-text)), 및/또는 관심 영역(area of interest) 객체)를 시각적으로 제공할 수 있다. 예를 들면, 디스플레이 모듈(160)은 어플리케이션(240)(예: 노트 어플리케이션, 메모 어플리케이션)의 실행 화면, 메모리(130)에 저장된 컨텐츠(250), 또는 어플리케이션(240)의 실행 화면 상에 사용자의 손 글씨 입력에 대응하는 문자/글자 또는 비문자를 표시할 수 있다. 일 실시예에 따라, 손 글씨는, 사용자가 어플리케이션(240)의 실행 화면 상에 손(예: 손가락) 또는 전자 펜(예: 스타일러스 펜)을 이용하여 쓰는 글씨를 나타낼 수 있다. 예를 들면, 손 글씨는 어떤 기계적인 과정을 거치지 않고, 손가락 또는 전자 펜의 직접적인 도구를 이용하여 손으로 쓴 글씨를 의미할 수 있다. 대부분의 손 글씨는 직감적인 표현으로 쓰이며, 개성 있고 창의적인 글자 표현이 가능하다.
일 실시예에 따라, 메모리(130)는 전자 장치(101)의 적어도 하나의 구성 요소(예: 프로세서(120))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 어플리케이션(240)(예: 도 1의 어플리케이션(146)) 및/또는 컨텐츠(250)를 포함할 수 있다. 일 실시예에서, 어플리케이션(240)은 사용자의 손 글씨 입력을 지원하는 어플리케이션을 포함할 수 있다. 예를 들면, 어플리케이션(240)은 노트 어플리케이션, 메모 어플리케이션, 문서 어플리케이션, 메시지 어플리케이션 및/또는 갤러리 어플리케이션과 같은 다양한 종류를 포함하며, 그 종류가 제한되지 않을 수 있다. 일 실시예에서, 컨텐츠(250)는 어플리케이션(240)을 이용하여 생성된 사용자의 컨텐츠(예: 사용자에 의해 작성된 메모 또는 노트)를 포함할 수 있다. 예를 들면, 컨텐츠는 어플리케이션(240)에 관련된 명령에 대한 입력 데이터 및/또는 출력 데이터를 포함할 수 있다. 일 실시예에 따라, 어플리케이션(240) 및/또는 컨텐츠(250)는 메모리(130) 상에 소프트웨어(예: 도 1의 프로그램(140))로서 저장될 수 있고, 프로세서(120)에 의해 실행 가능할 수 있다.
일 실시예에 따라, 프로세서(120)는 전자 장치(101)에서 어플리케이션(240)을 실행하고, 어플리케이션(240)에 의해 생성되는 컨텐츠(250)를 메모리(130)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 어플리케이션(240)의 실행 화면을 디스플레이 모듈(160)을 통해 표시하는 동안, 손 글씨에 관련된 사용자 입력(예: 손 글씨 입력)에 기반하여, 어플리케이션(240)의 실행 화면 상에서 대응하는 위치에 손 글씨를 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨를 표시하는 동안, 손 글씨의 정렬(alignment)을 위한 사용자 입력에 기반하여, 손 글씨를 정렬하여 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨를 정렬하는 것과 관련된 동작(예: 관심 영역(예: DirtyRect(dirty rectangle)) 생성 동작, 액션(action) 식별 동작, 액션에 대응하는 관심 영역의 대상 객체 식별 동작, 및/또는 대상 객체에 기반한 정렬 동작)을 처리할 수 있다.
일 실시예에 따르면, 프로세서(120)는 인식 모듈(210)(또는 인식 수단), 관심 영역 설정 모듈(220)(또는 관심 영역 설정 수단) 및/또는 정렬 모듈(230)(또는 정렬 수단)을 포함할 수 있다. 일 실시예에 따르면, 프로세서(120)에 의하여 수행될 수 있는 인식 모듈(210), 관심 영역 설정 모듈(220) 및/또는 정렬 모듈(230)의 기능은 메모리(130)에 인스트럭션(instructions)(또는 명령어) 형태로 구현되어 저장될 수 있다. 예를 들면, 프로세서(120)에 포함되는 구성 요소들(예: 인식 모듈(210), 관심 영역 설정 모듈(220) 및/또는 정렬 모듈(230))은, 예를 들면, 하드웨어 모듈(예: 회로(circuitry))로 이해될 수 있지만, 다양한 실시예들이 이에 한정되지 않는다. 예를 들어, 프로세서(120)에 포함되는 구성 요소들(예: 인식 모듈(210), 관심 영역 설정 모듈(220) 및/또는 정렬 모듈(230))은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다. 일 실시예에 따르면, 프로세서(120)에 포함되는 구성 요소들(예: 인식 모듈(210), 관심 영역 설정 모듈(220) 및/또는 정렬 모듈(230))은 프로세서(120)에 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리(130))에 저장된 하나 이상의 인스트럭션들을 포함하는 소프트웨어(예: 도 1의 프로그램(140))로서 구현될 수 있다. 일 실시예에 따르면, 인식 모듈(210), 관심 영역 설정 모듈(220) 및/또는 정렬 모듈(230)에서 수행하는 동작들은, 메모리(130)에 저장되고, 실행 시에, 프로세서(120)가 동작하도록 하는 인스트럭션들에 의해 실행될 수 있다.
일 실시예에 따라, 인식 모듈(210)은 사용자에 의해 입력되는 손 글씨에 대응하는 객체를 인식할 수 있다. 일 실시예에 따르면, 손 글씨를 위한 데이터는, 예를 들어, 물리적으로 스트로크들(strokes)로 이루어진 데이터를 나타내며, 스트로크들은 복수의 점들(points)의 조합으로 이루어진 데이터를 나타내며, 의미적으로는 문자/글자(예: text) 및/또는 비문자(예: non-text)로 구분될 수 있다. 일 실시예에 따르면, 인식 모듈(210)은 어플리케이션(240)의 실행 화면 상에서 사용자로부터 손 글씨 입력을 검출하고, 입력된 손 글씨(예: 손 글씨 데이터)를 하나의 객체로 인식할 수 있다. 일 실시예에 따른 인식 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
일 실시예에 따라, 관심 영역 설정 모듈(220)은 인식 모듈(210)을 통해 인식된 객체에 기반하여 관심 영역을 설정할 수 있다. 일 실시예에 따라, 관심 영역(예: DirtyRect)은 인식된 객체의 최외곽 포인트를 이용하여 객체의 최외곽을 기반으로 가상적으로 설정되는 집합 사각형(예: DirtyRect)의 영역을 포함할 수 있다. 예를 들면, 관심 영역은 손 글씨를 구성하는 모든 점들 중 상(top), 하(bottom), 좌(left), 우(right)에서 최외곽 포인트를 사각형으로 연결하여 설정할 수 있다. 일 실시예에 따르면, 관심 영역 설정 모듈(220)은 사용자에 의해 수행된 액션(action) 별로 관심 영역을 구분할 수 있고, 각 액션 별로 하나 또는 그 이상의 관심 영역을 구분할 수 있다. 일 실시예에 따른 관심 영역 설정 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
일 실시예에 따라, 정렬 모듈(230)은 관심 영역을 기준으로 정렬을 수행할 수 있다. 일 실시예에 따르면, 정렬 모듈(230)은 최근 액션과 연관된 적어도 하나의 관심 영역에 대해 정렬을 수행할 수 있다. 예를 들어, 정렬 모듈(230)은 최근 액션을 기준으로 정렬 대상의 관심 영역을 식별하고, 식별된 관심 영역의 객체에 대해 지정된 정렬 방식으로 정렬을 수행할 수 있다. 어떤 실시예에 따르면, 정렬 모듈(230)은 식별된 관심 영역의 객체 및 그에 연관된 다른 관심 영역의 객체(예: 특정 라인(line)의 객체)를 서로 연관지어 지정된 정렬 방식으로 정렬을 수행할 수 있다. 일 실시예에 따라, 정렬 모듈(230)은, 예를 들어, 손 글씨의 기울기 보정(예: deskew), 라인(line) 별 손 글씨 위치 맞춤(예: indentation), 손 글씨 줄 간격 맞춤(예: line spacing), 글자 크기(예: 높이) 정규화, 및/또는 비문자(예: 밑줄, 도형, 스케치, 및/또는 그림)에 대한 어울림 배치와 같은 다양한 정렬을 수행할 수 있다. 일 실시예에 따른 정렬 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
본 개시의 다양한 실시예들에 따른 전자 장치(101)는, 디스플레이 모듈(160), 및 상기 디스플레이 모듈(160)과 작동적으로 연결된 프로세서(120)를 포함하고, 상기 프로세서(120)는, 손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하고, 상기 실행 화면을 통해 손 글씨 입력을 감지하고, 상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하고, 사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하고, 및 상기 대상 객체에 기반하여 손 글씨 정렬을 수행할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 사용자의 액션 단위로 손 글씨를 구분하고, 최근 액션에 관련된 적어도 하나의 손 글씨에 기반하여 상기 적어도 하나의 관심 영역을 설정할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여, 사용자 의도에 관련된 대상 객체를 정렬할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 적어도 하나의 관심 영역의 제1 객체를 식별하고, 이전 액션에 따른 손 글씨의 객체들 중 상기 제1 객체와 연관된 제2 객체를 식별하고, 상기 제1 객체와 상기 제2 객체를 상기 대상 객체로 결정할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 적어도 하나의 관심 영역의 제1 객체 및 상기 제1 객체와 연관된 주변의 상기 제2 객체를 포함하는 대상 관심 영역을 설정하고, 상기 대상 관심 영역에 기반하여 상기 제1 객체와 상기 제2 객체를 함께 정렬할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 제1 객체를 상기 제2 객체에 대응하게 보정할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 제2 객체에 기반하여 상기 제1 객체의 라인 보정 및/또는 크기 보정 여부를 결정하고, 결정하는 결과에 기반하여 상기 제1 객체의 라인 및/또는 크기 중 적어도 하나를 보정할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 제1 객체를 상기 제2 객체에 대응하도록 보정하고, 상기 제1 객체의 보정이 적용된 상태에서, 상기 제1 객체와 상기 제2 객체를 정렬할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 액션에 관련된 제1 관심 영역을 설정하고, 상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 관련된 상기 제1 객체에 대한 정렬을 수행하고, 제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 액션에 관련된 제2 관심 영역을 설정하고, 상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 상기 제1 객체의 적어도 일부는 유지하는 상태에서, 상기 제2 액션에 관련된 상기 제2 객체에 대한 정렬을 수행할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 프로세서(120)는, 상기 제1 객체 중 상기 제2 객체에 연관된 적어도 하나의 제3 객체를 식별하고, 상기 제2 객체를 상기 제3 객체에 기반하여 보정하고, 상기 보정된 제2 객체와 상기 제3 객체를 연관지어 정렬을 수행할 수 있다.
본 개시의 다양한 실시예들에 따른 전자 장치(101)는, 디스플레이 모듈(160), 및 상기 디스플레이 모듈(160)과 작동적으로 연결된 프로세서(120)를 포함하고, 상기 프로세서(120)는, 제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 관심 영역을 설정 및 상기 제1 객체를 제1 액션에 매핑하고, 상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 매핑된 상기 제1 객체를 정렬하고, 제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 관심 영역을 설정 및 상기 제2 객체를 제2 액션에 매핑하고, 상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 제1 액션에 매핑된 상기 제1 객체는 유지하는 상태에서, 상기 제2 액션에 매핑된 상기 제2 객체를 정렬하도록 설정되고, 상기 제1 손 글씨 및 상기 제2 손 글씨는 상기 제1 액션과 상기 제2 액션에 따른 액션 단위로 구분되고, 상기 제1 액션의 상기 제1 객체 중 상기 제2 액션의 상기 제2 객체와 교차되는 적어도 일부는 상기 제2 객체와 연관되고, 상기 제2 객체와 함께 정렬되는 것을 포함할 수 있다.
이하에서는 다양한 실시예들의 전자 장치(101)의 동작 방법에 대해서 상세하게 설명한다. 다양한 실시예들에 따라, 이하에서 설명하는 전자 장치(101)에서 수행하는 동작들은, 전자 장치(101)의 적어도 하나의 프로세싱 회로(processing circuitry)를 포함하는 프로세서(120)에 의해 실행될 수 있다. 일 실시예에 따라, 전자 장치(101)에서 수행하는 동작들은, 메모리(130)에 저장되고, 실행 시에, 프로세서(120)가 동작하도록 하는 인스트럭션들(instructions)에 의해 실행될 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 3을 참조하면, 동작 301에서, 전자 장치(101)의 프로세서(120)는 어플리케이션의 실행 화면을 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자 입력에 기반하여 손 글씨 입력이 가능한(또는 지원하는) 어플리케이션(예: 노트 어플리케이션, 메모 어플리케이션)을 실행할 수 있다. 일 실시예에 따라, 프로세서(120)는 어플리케이션의 실행에 기반하여 손 글씨를 입력하는 것과 관련된 다양한 정보(또는 객체)(예: 노트 레이아웃)를 포함하는 어플리케이션의 실행 화면을 표시하도록 디스플레이 모듈(160)을 제어할 수 있다.
동작 303에서, 프로세서(120)는 디스플레이 모듈(160)을 통해 손 글씨 입력을 감지할 수 있다. 일 실시예에 따르면, 프로세서(120)는 실행 화면을 표시하는 동안, 사용자로부터 손 글씨 입력을 수신할 수 있고, 입력되는 손 글씨를 실행 화면 상에 표시할 수 있다.
동작 305에서, 프로세서(120)는 관심 영역을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 실행 화면 상에서 사용자로부터 손 글씨 입력을 검출하고, 입력된 손 글씨(예: 손 글씨 데이터)를 하나의 객체로 인식할 수 있다. 일 실시예에 따르면, 프로세서(120)는 인식된 객체에 기반하여 관심 영역을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 인식된 객체의 최외곽 포인트를 이용하여, 객체의 최외곽을 기반으로 가상적으로 설정되는 집합 사각형(예: DirtyRect)의 영역을 설정할 수 있다. 예를 들면, 프로세서(120)는 손 글씨를 구성하는 모든 점들 중 상(top), 하(bottom), 좌(left), 우(right)에서 최외곽 포인트를 사각형으로 연결하여 관심 영역을 설정할 수 있다. 일 실시예에 따른 관심 영역 설정 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 307에서, 프로세서(120)는 정렬 트리거를 감지할 수 있다. 일 실시예에 따르면, 프로세서(120)는 어플리케이션의 실행 화면(또는 노트 레이아웃)의 지정된 영역에 제공되는 손 글씨 정렬을 실행하도록 지정된 객체(예: 정렬 객체)에 기반하여 사용자 입력을 감지할 수 있다.
동작 309에서, 프로세서(120)는 정렬 트리거 감지에 기반하여 액션을 식별(또는 구분)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자에 의해 마지막으로 수행된 액션(또는 최근 액션)을 식별할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자에 의해 입력된 손 글씨에 대응하는 적어도 하나의 객체 기반의 관심 영역을 액션 단위로 구분할 수 있다. 예를 들면, 제1 액션에 제1 손 글씨 입력의 제1 객체에 기반한 제1 관심 영역이 설정되고, 제2 액션에 제2 손 글씨 입력의 제2 객체에 기반한 제2 관심 영역이 설정되고, 제3 액션에 제3 손 글씨 입력의 제3 객체에 기반한 제3 관심 영역이 설정될 수 있다. 일 실시예에 따라, 프로세서(120)는 제1 손 글씨 입력 후 제1 액션이 수행되는 경우, 제1 손 글씨 입력의 제1 관심 영역을 제1 액션(또는 제1 액션 그룹)에 매핑할 수 있다. 예를 들면, 제1 액션이 최근 액션에 대응할 수 있다. 일 실시예에 따라, 프로세서(120)는 제1 액션 이후에 제2 손 글씨가 입력되고 제2 액션이 수행되는 경우, 제2 손 글씨 입력의 제2 관심 영역을 제2 액션(또는 제2 액션 그룹)에 매핑할 수 있다. 예를 들면, 제2 액션이 최근 액션에 대응할 수 있다.
동작 311에서, 프로세서(120)는 액션에 기반하여 적어도 하나의 대상 관심 영역을 식별할 수 있다. 일 실시예에 따르면, 프로세서(120)는 최근 액션에 대응하는 관심 영역, 예를 들어, 이전 액션 이후와 최근 액션 사이에 입력된 손 글씨의 객체에 기반하여 설정된 관심 영역을 식별할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자에 의해 입력된 손 글씨에 대응하는 적어도 하나의 객체 기반의 관심 영역에 대하여, 사용자의 액션을 기반으로 정렬을 위한 대상 관심 영역을 결정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자에 의해 수행되는 액션을 구분할 수 있고, 액션 별로 손 글씨에 대응하는 적어도 하나의 관심 영역을 매핑(또는 그룹화)할 수 있다.
동작 313에서, 프로세서(120)는 대상 관심 영역에 기반하여 대상 객체를 인식할 수 있다. 일 실시예에 따라, 액션 별로 구분되는 관심 영역 각각은 구분되는 액션 단위로 입력된 손 글씨에 대응하는 적어도 하나의 객체로 이루어질 수 있다. 일 실시예에 따르면, 프로세서(120)는 최근 액션에 대응하는 관심 영역을 이루는 적어도 하나의 객체를 정렬을 위한 대상 객체로 인식할 수 있다. 어떤 실시예에 따르면, 대상 객체는 관심 영역의 객체와 연관된 다른 관심 영역의 객체 중 적어도 일부 객체를 포함할 수 있다. 일 실시예에 따르면, 프로세서(120)는 식별된 관심 영역의 객체 및 그에 연관된 다른 관심 영역의 객체(예: 특정 라인(line)의 객체)를 서로 연관지어 대상 객체로 결정할 수 있다. 예를 들면, 프로세서(120)는 제1 관심 영역의 제1 객체 중 제2 관심 영역의 제2 객체에 연관된 적어도 하나의 제3 객체(라인)를 식별하고, 제2 객체와 제3 객체를 연관지어 대상 객체로 결정할 수 있다. 일 실시예에 따라 대상 객체를 결정하는 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 315에서, 프로세서(120)는 대상 객체에 기반하여 정렬을 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 대상 객체에 대해 지정된 정렬 방식으로 정렬을 수행할 수 있다. 예를 들면, 프로세서(120)는 손 글씨에 대응하는 복수의 객체들 중 액션에 기반하여 대상 객체를 지정하고, 지정된 대상 객체에 대해서 정렬을 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 대상 객체에 기반하여, 손 글씨의 기울기 보정(예: deskew), 라인(line) 별 손 글씨 위치 맞춤(예: indentation), 손 글씨 줄 간격 맞춤(예: line spacing), 글자 크기(예: 높이) 정규화, 및/또는 비문자(예: 밑줄, 도형, 스케치, 및/또는 그림)에 대한 어울림 배치와 같은 다양한 정렬을 수행할 수 있다. 일 실시예에 따른 정렬 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 317에서, 프로세서(120)는 정렬 수행에 따른 결과를 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 대상 객체를 지정하여 수행된 손 글씨 정렬 결과를 실행 화면 상에 표시하도록 디스플레이 모듈(160)을 제어할 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
도 4를 참조하면, 동작 401에서, 전자 장치(101)의 프로세서(120)는 디스플레이 모듈(160)을 통해 손 글씨 입력을 감지할 수 있다. 일 실시예에 따르면, 프로세서(120)는 실행 화면을 표시하는 동안, 사용자로부터 손 글씨 입력을 수신할 수 있고, 입력되는 손 글씨를 실행 화면 상에 표시할 수 있다.
동작 403에서, 프로세서(120)는 손 글씨 입력 이후에, 사용자에 의한 트리거(trigger)(또는 사용자 입력)를 감지할 수 있다. 일 실시예에 따라, 트리거(또는 사용자 입력)는 정렬 수행과 관련된 제1 트리거(예: 정렬 트리거), 기능 수행과 관련된 제2 트리거(예: 기능 트리거) 및/또는 손 글씨 입력 종료와 관련된 제3 트리거(예: 종료 트리거)와 같은 다양한 트리거를 포함하며, 그 종류가 제한되지 않을 수 있다. 일 실시예에 따라, 제1 트리거, 제2 트리거, 및/또는 제3 트리거는 사용자에 의해 수행되는 각각의 액션일 수 있다.
동작 405에서, 프로세서(120)는 트리거 감지에 기반하여, 트리거의 종류를 식별할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨 입력 이후에, 어플리케이션의 실행 화면(또는 노트 레이아웃) 상에서 사용자 입력에 대응하는 객체에 기반하여 트리거의 종류를 식별할 수 있다. 일 실시예에 따라, 프로세서(120)는 실행 화면(또는 노트 레이아웃)에서 손 글씨 정렬을 실행하도록 지정된 제1 객체(예: 정렬 객체)가 선택(예: 터치)되는 경우 트리거를 제1 트리거(예: 정렬 트리거)로 식별할 수 있다. 다른 실시예에 따라, 프로세서(120)는 실행 화면에서 손 글씨에 관련된 다른 기능(또는 옵션)(예: 정렬 기능 이외의 다른 기능)을 실행하도록 지정된 제2 객체(예: 지우개 객체, 클립 객체, 텍스트 변환 객체, 저장 객체, 및/또는 화면 전환 객체)가 선택(예: 터치)되는 경우 트리거를 제2 트리거(예: 기능 트리거)로 식별할 수 있다. 일 실시예에서, 손 글씨에 관련된 정렬 기능 이외의 다른 기능(또는 옵션)은, 예를 들어, 손 글씨의 적어도 일부를 지우기 위한 지우개 기능, 손 글씨의 클립핑(clipping)을 위한 클립 기능, 손 글씨를 텍스트로 변환하기 위한 변환 기능, 손 글씨의 색상을 변경하기 위한 색 선택 기능, 및/또는 손 글씨의 저장을 위한 저장 기능과 다양한 종류를 포함하며, 그 종류가 제한되지 않을 수 있다.
동작 405에서, 프로세서(120)는 트리거가 제1 트리거인 것을 판단하면(예: 동작 405의 ‘제1 트리거’), 동작 407에서, 액션에 대응하는 손 글씨 객체에 기반하여 정렬을 수행할 수 있다. 이후, 프로세서(120)는 동작 401과 같이 사용자에 의해 새로운 손 글씨가 입력된 후 제1 트리거 또는 제2 트리거에 대응하여, 새로운 손 글씨 객체에 대해 정렬 또는 유지하는 동작을 수행할 수 있다.
동작 405에서, 프로세서(120)는 트리거가 제2 트리거인 것을 판단하면(예: 동작 405의 ‘제2 트리거’), 동작 409에서, 손 글씨 객체의 유지(또는 고정)를 결정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨 입력 후 제2 트리거가 감지되는 경우, 액션이 전환되는 것으로 식별할 수 있고, 액션 전환까지 입력된 손 글씨 객체(예: 이전 액션과 최근 액션(예: 제2 트리거에 따른 액션) 사이에 입력된 손 글씨 객체)는 정렬 대상에서 제외하고, 사용자에 의해 입력된 형태를 유지할 수 있다. 이후, 프로세서(120)는 동작 401과 같이 사용자에 의해 새로운 손 글씨가 입력된 후 정렬이 수행되는 경우, 유지(또는 고정) 결정된 손 글씨 객체는 정렬 대상에서 제외(예: 현재 형태 유지)하고, 새로운 손 글씨 객체만을 지정하여 정렬을 수행할 수 있다.
도 5a, 도 5b 및 도 6은 다양한 실시예들에 따른 전자 장치에서 액션 별 관심 영역을 설정하는 예를 설명하기 위한 도면들이다.
도 5a, 도 5b 및 도 6을 참조하면, 사용자는 어플리케이션의 실행 화면에서 손 글씨 및 액션 수행을 반복 입력할 수 있다.
도 5a에 예시한 바와 같이, 사용자는 제1 손 글씨(515)를 입력할 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 손 글씨(515)에 대응하는 객체에 기반하여 제1 관심 영역(510)을 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제1 손 글씨(515)에 대응하는 적어도 하나의 객체(예: strokes)에 기반하여 제1 관심 영역(510)을 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제1 손 글씨(515)에 대응하는 적어도 하나의 객체의 최외곽 포인트를 이용하여, 객체의 최외곽을 기반으로 가상적으로 설정되는 집합 사각형(예: DirtyRect)의 영역을 제1 관심 영역(510)으로 설정할 수 있다. 예를 들면, 프로세서(120)는 제1 손 글씨(515)를 구성하는 모든 점들 중 상(top), 하(bottom), 좌(left), 우(right)에서 최외곽 포인트를 사각형으로 연결하여 관심 영역을 설정할 수 있다.
일 실시예에 따라, 전자 장치(101)는 제1 손 글씨(515) 입력 후 제1 액션이 수행되는 경우, 제1 손 글씨(515)의 제1 관심 영역(510)을 제1 액션(또는 제1 액션 그룹)에 매핑할 수 있다. 예를 들면, 전자 장치(101)는 제1 액션에 제1 손 글씨(515)의 제1 관심 영역(510)을 매핑할 수 있다.
도 5b에 예시한 바와 같이, 사용자는 제1 손 글씨(515)를 입력하고 제1 액션을 수행한 이후에, 제2 손 글씨(525)를 입력할 수 있다. 일 실시예에 따라, 전자 장치(101)는 제2 손 글씨(525)에 대응하는 객체에 기반하여 제2 관심 영역(520)을 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2 손 글씨(525)에 대응하는 적어도 하나의 객체(예: strokes)에 기반하여 제2 관심 영역(520)을 설정할 수 있다.
일 실시예에 따라, 전자 장치(101)는 제1 액션 이후에 제2 손 글씨(525)가 입력되고, 제2 액션이 수행되는 경우, 제2 손 글씨(525)의 제2 관심 영역(520)을 제2 액션(또는 제2 액션 그룹)에 매핑할 수 있다. 예를 들면, 전자 장치(101)는 제2 액션에 제2 손 글씨(525)의 제2 관심 영역(520)을 매핑할 수 있다.
도 6에 예시한 바와 같이, 사용자는 도 5a 및 도 5b를 참조한 설명 부분에서 설명한 바에 대응하게, 제3 손 글씨(615)를 입력하고, 제3 액션을 수행한 이후에 제4 손 글씨(625)를 입력할 수 있다. 일 실시예에 따라, 전자 장치(101)는 제3 손 글씨(615)에 대응하는 객체에 기반하여 제3 관심 영역(610)을 설정할 수 있고, 제4 손 글씨(625)에 대응하는 객체에 기반하여 제4 관심 영역(620)을 설정할 수 있다.
일 실시예에 따르면, 사용자는 손 글씨로서 문자/글자(예: text)(예: 제1 손 글씨(515), 제2 손 글씨(525), 제3 손 글씨(615)) 및/또는 비문자(예: non-text)(예: 제4 손 글씨(625))를 모두 이용할 수 있다.
도 5a, 도 5b 및 도 6에 예시한 바와 같이, 다양한 실시예들에 따르면, 전자 장치(101)는 이전 액션(예: 제1 액션 또는 제3 액션)에 대응하는 관심 영역(예: 제1 관심 영역(510) 또는 제3 관심 영역(610))의 제1 객체와 최근 액션(예: 제2 액션 또는 제4 액션)에 대응하는 관심 영역(예: 제2 관심 영역(520) 또는 제4 관심 영역(620))의 제2 객체가 함께 존재하는 상태에서, 정렬 수행 시, 최근 액션에 대응하는 제2 객체 및 제2 객체에 관련된 라인(예: 도 6의 제3 손 글씨(615)의 3 번째, 4 번째 라인)의 객체를 기준으로 정렬을 수행할 수 있다.
도 5a, 도 5b 및 도 6에 예시한 바와 같이, 다양한 실시예들에 따르면, 전자 장치(101)는 어플리케이션의 실행 화면을 통해 입력되는 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 적어도 하나의 관심 영역 중 대상 관심 영역(예: 최근 액션에 대응하는 관심 영역)에 기반하여 대상 객체(예: 신규 객체 및 신규 객체와 연관된 라인의 객체) 인식하고, 액션 구분에 의한 대상 객체만을 지정하여 손 글씨 정렬을 수행할 수 있다.
예를 들면, 전자 장치(101)는 제1 손 글씨 입력에 대응하는 제1 관심 영역을 설정하고, 제1 정렬 트리거에 기반하여, 제1 관심 영역 기반으로 대상 객체를 지정하여 정렬을 수행할 수 있다. 다른 예를 들면, 전자 장치(101)는 제2 손 글씨 입력에 대응하는 제2 관심 영역을 설정하고, 제2 정렬 트리거에 기반하여, 제2 관심 영역 기반으로 대상 객체를 지정하여 정렬을 수행할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다. 도 8은 다양한 실시예들에 따른 전자 장치에서 평균 델타를 구하는 예를 설명하기 위해 도시하는 도면이다. 도 9는 다양한 실시예들에 따른 전자 장치에서 손 글씨 별로 복수의 관심 영역을 설정하는 예를 설명하기 위해 도시하는 도면이다.
일 실시예에 따라, 도 7, 도 8 및 도 9에서는, 전자 장치(101)에서 손 글씨에 대하여 블록(block) 구분을 통해 복수의 관심 영역을 설정하는 동작 예를 나타낼 수 있다. 예를 들면, 전자 장치(101)는 입력된 손 글씨에 대응하여 복수의 DirtyRect가 존재하는 경우, 기존 액션의 DirtyRect 내의 스트로크와 최근 액션의 DirtyRect 내의 스트로크를 분석하여 각각 블록화 하여 구분할 수 있으며, 도 7, 도 8 및 도 9에서는, 블록을 구성하는 예를 나타낼 수 있다.
도 7을 참조하면, 동작 701에서, 전자 장치(101)의 프로세서(120)는 스트로크(예: 손 글씨 데이터)의 평균 델타(average delta)를 도출할 수 있다. 일 실시예에 따르면, 손 글씨를 위한 데이터는, 예를 들어, 적어도 하나의 스트로크(stroke)로 이루어진 데이터를 나타내며, 스트로크는 복수의 점들(points)의 조합으로 이루어진 데이터를 나타내며, 문자/글자(예: text) 및/또는 비문자(예: non-text)로 구분될 수 있다. 일 실시예에 따르면, 프로세서(120)는 입력된 손 글씨의 스트로크를 분석하여 평균 델타를 산출할 수 있다. 이에 예가 도 8에 도시된다.
도 8을 참조하면, 프로세서(120)는 입력된 손 글씨(810)의 각 스트로크를 분석하고, 각 스트로크를 구성하는 복수의 점들(820)(예: 한글의 경우 스트로크 당 약 10 ~ 100 개) 간의 거리(830)(예: 스트로크(820)의 첫 번째 점들 간의 거리(820))를 기준으로 델타를 산출할 수 있다. 어떤 실시예에 따르면, 프로세서(120)는 손 글씨의 라인 분리를 고려하여, 가로(예: X 좌표) 및/또는 세로(예: Y 좌표) 변화에 대하여 가중치(예: 민감도)를 추가하여 델타를 산출할 수 있다. 일 실시예에 따르면, 프로세서(120)는 각 점들 간의 거리(830)를 기준으로 산출된 각각의 델타의 평균을 계산하여 평균 델타를 산출할 수 있다. 일 실시예에 따라, 평균 델타는 이후 동작에서 블록을 구분하는 데 이용될 수 있다.
동작 703에서, 프로세서(120)는 도출된 평균 델타를 기준으로 손 글씨에 대한 블록(예: DirtyRect)을 도출할 수 있다.
동작 705에서, 프로세서(120)는 스트로크(예: i 번째 스트로크, i = 1)를 분석할 수 있다. 예를 들면, 프로세서(120)는 손 글씨의 스트로크 중 i 번째(예: 첫 번째, i = 1) 스트로크를 시작으로, 각 스트로크 간의 거리와 평균 델타를 비교할 수 있다.
동작 707에서, 프로세서(120)는 대응하는 스트로크가 평균 델타를 초과하는지 여부를 판단할 수 있다. 예를 들면, 프로세서(120)는 스트로크 간의 거리가 평균 델타 이상의 차이를 가지는지 판단할 수 있다.
동작 707에서, 프로세서(120)는 스트로크 간의 거리가 평균 델타를 초과하지 않는 경우(예: 동작 707의 ‘아니오’), 동작 709에서, 스트로크 i를 증가(예: i++)할 수 있다. 예를 들면, 프로세서(120)는 다음(next) 스트로크에 대한 분석을 수행할 수 있다. 예를 들면, 프로세서(120)는 동작 705로 진행하여 두 번째(예: i = 2) 스트로크에 대한 분석을 수행할 수 있다.
동작 707에서, 프로세서(120)는 스트로크 간의 거리가 평균 델타를 초과하는 경우(예: 동작 707의 ‘예’), 동작 711에서, 블록을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 스트로크 간의 거리가 평균 델타를 초과하는 경우, 해당 스트로크까지 블록을 설정하고, 다음 스트로크에 대해 새로운 블록을 설정할 수 있다.
동작 713에서, 프로세서(120)는 분석된 스트로크가 마지막 스트로크에 대응하는지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨에 대응하는 모든 스트로크에 대해 분석이 수행되었는지 여부를 판단할 수 있다.
동작 713에서, 프로세서(120)는 분석된 스트로크가 마지막 스트로크가 아닌 경우(예: 동작 713의 ‘아니오’), 동작 709에서, 스트로크 i를 증가(i++)할 수 있다. 예를 들면, 프로세서(120)는 다음(next) 스트로크에 대한 분석을 수행할 수 있다. 예를 들면, 프로세서(120)는 동작 705로 진행하여 두 번째(예: i = 2) 스트로크에 대한 분석을 수행할 수 있다.
동작 713에서, 프로세서(120)는 분석된 스트로크가 마지막 스트로크인 경우(예: 동작 713의 ‘예’), 동작 715에서, 설정된 블록에 기반하여 적어도 하나의 DirtyRect를 설정할 수 있다. 예를 들면, 프로세서(120)는 손 글씨에 기반하여 3개의 블록을 설정하는 경우, 예를 들면, 3개의 블록이 평균 델타 이상의 거리를 가지는 경우, 해당 3개의 블록 각각을 DirtyRect로 설정할 수 있다. 일 실시예에 따르면, DirtyRect는 자체로서 관심 영역으로 설정되거나, 또는 DirtyRect 주변의 다른 객체와 연관지어 관심 영역으로 설정될 수 있다.
일 실시예에 따라, 도 7 및 도 8의 동작에 따른 결과의 예시가 도 9에 도시된다. 도 9에 예시한 바와 같이, 프로세서(120)는 군집화된 스트로크 간의 거리(830)가 평균 델타 이상의 차이가 나는 경우에는 도 9의 예시와 같이 각 손 글씨에서 평균 델타 이상의 차이가 있는 손 글씨 객체에 기반하여 복수의 블록(910)들을 각각 생성할 수 있다. 예를 들면, 프로세서(120)는 독립된 손 글씨들의 위치를 분석하여 블록을 구분하고, 이에 기반하여 각각의 DirtyRect를 도출할 수 있다. 일 실시예에 따라, 도 9에서 각각의 점선 사각형은 설명을 위해 도시된 것으로, 실제 보여지지 않을 수 있다.
도 10은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
일 실시예에 따라, 도 10에서는, 도 7, 도 8 및 도 9에 예시한 바와 같이 설정된 DirtyRect와 연관된 손 글씨 객체(또는 라인)을 구분하여 액션에 따른 정렬 대상의 관심 영역(또는 대상 객체)을 설정하는 동작 예를 나타낼 수 있다.
도 10을 참조하면, 동작 1001에서, 전자 장치(101)의 프로세서(120)는 손 글씨에 기반하여 라인(예: i 번째 라인, i = 1) 분리를 수행할 수 있다. 예를 들면, 프로세서(120)는 도 7에서 예시한 바와 같이 손 글씨에 대한 관심 영역(예: DirtyRect) 설정 후, 손 글씨가 복수의 라인에서 i 번째(예: 첫 번째, i = 1) 라인을 분리하여 구분할 수 있다.
동작 1003에서, 프로세서(120)는 분리된 라인이 관심 영역에 포함되는지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 분리된 라인과 도 7의 예시와 같이 설정된 블록을 비교할 수 있고, 분리된 라인(또는 라인의 객체)의 적어도 일부가 블록과 교차되는지 여부를 판단할 수 있다.
동작 1003에서, 프로세서(120)는 분리된 라인이 관심 영역에 포함되지 않는 경우(예: 동작 1003의 ‘아니오’), 동작 1005에서, 해당 라인(예: 첫 번째 라인)을 비유효 라인(예: valid line = fail)으로 결정할 수 있다. 예를 들면, 프로세서(120)는 해당 라인이 관심 영역에 교차되지 않는 것으로 결정할 수 있다.
동작 1007에서, 프로세서(120)는 라인 i를 증가(예: i++)할 수 있다. 예를 들면, 프로세서(120)는 다음(next) 라인에 대한 분석을 수행할 수 있다. 예를 들면, 프로세서(120)는 동작 1003으로 진행하여 두 번째(예: i = 2) 라인에 대한 분석을 수행할 수 있다.
동작 1003에서, 프로세서(120)는 분리된 라인이 관심 영역에 포함되는 경우(예: 동작 1003의 ‘예’), 동작 1009에서, 해당 라인(예: 첫 번째 라인)을 유효 라인(예: valid line = true)으로 결정할 수 있다. 예를 들면, 프로세서(120)는 해당 라인이 관심 영역에 교차되는 것으로 결정할 수 있다.
동작 1011에서, 프로세서(120)는 분석된 라인이 마지막 라인에 대응하는지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 손 글씨에 대응하는 모든 라인에 대해 분석이 수행되었는지 여부를 판단할 수 있다.
동작 1011에서, 프로세서(120)는 분석된 라인이 마지막 라인이 아닌 경우(예: 동작 1011의 ‘아니오’), 동작 1013에서, 라인 i를 증가(예: i++)할 수 있다. 예를 들면, 프로세서(120)는 다음(next) 라인에 대한 분석을 수행할 수 있다. 예를 들면, 프로세서(120)는 동작 1003으로 진행하여 두 번째(예: i = 2) 라인에 대한 분석을 수행할 수 있다.
동작 1011에서, 프로세서(120)는 분석된 라인이 마지막 라인인 경우(예: 동작 1011의 ‘예’), 동작 1015에서, 대상 관심 영역을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 관심 영역의 객체 및 관심 영역의 객체와 교차되는 라인의 객체를 포함하는 블록(또는 DirtyRect)을 설정하고, 해당 블록을 대상 관심 영역으로 설정할 수 있다. 예를 들면, 프로세서(120)는 관심 영역의 객체와 관심 영역의 객체와 연관된 다른 관심 영역(예: 분리된 라인 기반)의 객체를 포함하도록 대상 관심 영역을 설정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 관심 영역의 객체 및 그에 연관된 다른 관심 영역의 객체(예: 특정 라인(line)의 객체)를 서로 연관지어 대상 객체로 결정할 수 있다. 예를 들면, 프로세서(120)는 제1 관심 영역의 제1 객체 중 제2 관심 영역의 제2 객체에 연관된 적어도 하나의 제3 객체(라인)를 식별하고, 제2 객체와 제3 객체를 연관지어 대상 객체로 결정하고, 대상 객체를 지정하여 정렬을 수행할 수 있다.
도 11 및 도 12는 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역이 설정되는 예를 설명하기 위한 도면들이다.
일 실시예에 따라, 도 11 및 도 12에서는, 도 10에 예시한 바와 같이 관심 영역과 교차되는 라인의 객체를 정렬 대상 객체로 포함하도록 대상 관심 영역을 설정하는 예를 나타낼 수 있다. 예를 들면, 도 11 및 도 12에서는, 기존 액션의 손 글씨의 적어도 일부분을 최근 액션의 손 글씨와 연관지어, 손 글씨 정렬을 위한 대상 관심 영역으로 설정하는 예를 나타낼 수 있다.
도 11에 예시한 바와 같이, 사용자는 4개의 라인들로 이루어진 제1 손 글씨(1110)를 입력하고, 제1 액션을 수행할 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 손 글씨(1110)를 제1 관심 영역으로 설정하고, 제1 액션에 대응하여 제1 손 글씨(1110)의 제1 관심 영역을 제1 액션에 매핑할 수 있다.
도 12에 예시한 바와 같이, 사용자는 제1 손 글씨(1110)를 입력하고 제1 액션을 수행한 이후에, 제1 손 글씨(1110)에 교차(또는 중첩)되는 제2 손 글씨(1200)(예: 1201, 1203, 1205, 1207, 1209, 1211)를 입력할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2 손 글씨(1200)에 대하여, 전술한 도 7, 도 8 및 도 9를 참조한 설명 부분에서 설명한 바와 같이 블록화 하여, 복수의 블록(예: 제1 블록(1210), 제2 블록(1220), 제3 블록(1230))으로 구분할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 4개의 라인으로 이루어진 제1 손 글씨(1110)를 입력하고, 제1 액션이 수행되고, 제2 손 글씨(1200)가 입력되는 경우, 제2 손 글씨(1200)에 대응하는 각각의 객체 또는 객체의 그룹을 지정하여, 점선 사각형으로 표시된 제1 블록(1210), 제2 블록(1220) 및 제3 블록(1230)을 가상적으로 설정할 수 있다. 예를 들면, 제1 블록(1210), 제2 블록(1220) 및 제3 블록(1230)은 평균 델타(average delta) 이상의 거리가 서로 있는 3개의 군집을 나타낼 수 있다. 일 실시예에 따라, 도 12에서 각각의 점선 사각형은 설명을 위해 도시된 것으로, 실제 보여지지 않을 수 있다. 일 실시예에 따르면, 복수의 블록(1210, 1220, 1230) 각각은 DirtyRect(예: 제2 관심 영역)를 나타낼 있다. 예를 들면, 전자 장치(101)는 복수의 DirtyRect에 기반하여 제2 액션에 관련된 제2 관심 영역으로 설정할 수 있다. 어떤 실시예에 따르면, 전자 장치(101)는 제2 관심 영역 설정 시, 제1 관심 영역으로 지정된 제1 손 글씨(1110) 중 각 DirtyRect와 연관되는 적어도 하나의 객체(또는 라인)를 포함하여 대상 관심 영역으로 설정할 수 있다.
도 13, 도 14, 도 15 및 도 16은 다양한 실시예들에 따른 전자 장치에서 이용 가능한 액션의 예를 설명하기 위한 도면들이다.
일 실시예에 따르면, 전자 장치(101)는 어플리케이션을 실행하는 동안, 다양한 사용자 입력에 기반하여 액션을 구분할 수 있다. 예를 들면, 전자 장치(101)는 어플리케이션을 실행하는 동안, 사용자 입력에 따라 액션을 구분하고, 최근 액션과 연관된 손 글씨를 지정하여 정렬을 수행하도록 할 수 있다. 종래에서는, 사용자가 이전에 입력한 제1 손 글씨와 새롭게 입력한 제2 손 글씨가 존재하는 상태에서, 손 글씨 정렬을 수행하는 경우, 모든 손 글씨(예: 제1 손 글씨 및 제2 손 글씨)에 대해 정렬을 수행하였다. 다양한 실시예들에서는, 전자 장치(101)는 액션 단위로 입력된 손 글씨를 구분하고, 이전에 입력된 제1 손 글씨와 새롭게 입력된 제2 손 글씨를 액션 단위로 구분하고, 제2 손 글씨에 대해서 정렬을 집중적으로 수행할 수 있다. 어떤 실시예에 따르면, 전자 장치(101)는 제1 손 글씨에서 제2 손 글씨와 연관된(예: 교차 또는 중첩된) 적어도 일부를 연관지어 정렬을 수행할 수 있다.
일 실시예에 따르면, 액션 구분을 위한 사용자 입력(예: 액션 발생 상황)은, 도 13, 도 14, 도 15 및 도 16에 예시한 바와 같이 다양한 종류를 포함하며, 그 종류가 제한되지 않을 수 있다.
일 실시예에 따라, 도 13은 어플리케이션의 실행 화면(또는 노트 레이아웃)의 지정된 영역에 제공되는, 손 글씨 정렬을 실행하도록 지정된 객체(1330)(예: 정렬 객체)에 기반한 사용자 입력에 따라 액션이 구분되는 예를 나타낼 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 손 글씨(1310)가 입력되고 정렬 객체(1330)가 선택되는 경우, 정렬 객체(1330)의 선택에 응답하여 제1 액션을 식별하고, 제1 액션에 관련된 제1 손 글씨(1310)에 대해 정렬을 수행할 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 액션 이후에 제2 손 글씨(1320)가 입력되고 정렬 객체(1330)가 선택되는 경우, 정렬 객체(1330)의 선택에 응답하여 제2 액션을 식별하고, 제1 액션에 관련된 제1 손 글씨(1310)의 형태는 유지하는 상태에서, 제2 액션(예: 최근 액션)에 관련된 제2 손 글씨(1320)에 대해 정렬을 수행할 수 있다.
일 실시예에 따라, 도 14는 어플리케이션에서 손 글씨에 의한 작업(예: 노트 또는 메모 작성)이 새로 시작되는 경우의 예를 나타낼 수 있다. 예를 들면, 사용자가 새로운 노트 파일을 시작하거나, 또는 새로운 노트 파일을 불러오기 하는 사용자 입력에 따라 액션이 구분될 수 있다.
일 실시예에 따라, 도 15는 사용자가 정렬 기능 이외에 다른 기능을 수행하는 경우의 예를 나타낼 수 있다. 예를 들면, 사용자가 정렬 객체(1330)에 외의 다른 기능 객체(예: 지우개 객체, 클립 객체(1520), 텍스트 변환 객체(1530), 저장 객체, 및/또는 화면 전환 객체)에 기반하여 다른 기능을 실행하는 사용자 입력에 따라 액션이 구분될 수 있다. 일 실시예에 따르면, 전자 장치(101)는 손 글씨 입력 이후에, 어플리케이션의 실행 화면(또는 노트 레이아웃) 상에서 사용자 입력에 대응하는 기능 객체(예: 1510, 1520, 1530, 1540)가 선택되는 경우, 기능 객체(1510, 1520, 1530, 1540)의 선택에 응답하여 액션을 식별할 수 있다. 일 실시예에 따라, 전자 장치(101)는 실행 화면(또는 노트 레이아웃)에서 실행 화면(또는 노트 레이아웃)에서 손 글씨에 관련된 다른 기능(또는 옵션)(예: 정렬 기능 이외의 다른 기능)을 실행하도록 지정된 기능 객체가 선택(예: 터치)되는 경우 액션을 식별할 수 있다.
일 실시예에 따라, 도 16은 사용자가 어플리케이션을 포즈(pause)한 후 다시 시작(resume)하는 사용자 입력에 따라 액션이 구분되는 예를 나타낼 수 있다. 일 실시예에 따르면, 도 16에 예시한 바와 같이, 전자 장치(101)는 어플리케이션을 실행하는 동안 홈(home) 화면으로 이동(예: 예시 화면 <1601>) 후 복귀(예: 예시 화면 <1603>)하는 사용자 입력에 응답하여 액션을 식별할 수 있다. 다른 실시예에 따르면, 어플리케이션의 포즈 후 다시 시작하는 경우로서, 스크린(screen) 턴-오프(turn-off)턴-온(turn-on) 동작, 또는 다른 어플리케이션으로 포커스(focus) 이동 후 복구와 같은 동작을 포함할 수 있다.
도 17, 도 18 및 도 19는 다양한 실시예들에 따른 전자 장치에서 액션 단위로 정렬 대상 객체를 구분하는 예를 설명하기 위한 도면들이다.
일 실시예에 따라, 도 17, 도 18 및 도 19에서는, 기존 액션의 손 글씨는 유지하는 상태에서 최근 액션의 손 글씨에 기반하여 정렬을 위한 대상 관심 영역으로 설정하는 예를 나타낼 수 있다.
일 실시예에 따라, 도 17에 예시한 바와 같이, 도 17은 사용자가 2개의 라인들(예: 첫 번째 라인, 두 번째 라인)로 이루어진 제1 손 글씨(1710)를 입력하고, 제1 액션(예: 정렬 객체(1730) 선택에 의한 정렬 명령)을 수행한 이후에 제2 손 글씨(1720)를 입력한 상태의 예를 나타낼 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 손 글씨(1710)를 제1 관심 영역으로 설정하고, 제1 액션에 대응하여 제1 손 글씨(1710)를 지정하여 정렬을 수행할 수 있다. 일 실시예에 따라, 사용자는 제1 액션 이후에 제2 손 글씨(1720)를 입력하고, 정렬 객체(1730)에 기반하여 제2 액션을 수행할 수 있다.
일 실시예에 따라, 도 18에 예시한 바와 같이, 도 18은 사용자가 제2 손 글씨(1720)를 입력하고, 정렬 객체(1730)를 선택하여 제2 액션을 수행한 상태의 예를 나타낼 수 있다. 일 실시예에 따라, 전자 장치(101)는 제1 액션 이후에 제2 손 글씨(1720)가 입력되고 제2 액션이 수행되는 경우, 제1 손 글씨(1710)(예: 첫 번째 라인, 두 번째 라인)에 대해서는 정렬을 수행하지 않고, 제2 손 글씨(1720)(예: 세 번째 라인)를 지정하여(또는 대상으로) 정렬을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 정렬 객체(1730)에 의해 손 글씨 정렬 시, 사용자에게 정렬 대상의 객체를 가이드(또는 지정) 하는 가이드 객체(1800)(또는 대상 관심 영역을 나타내는 관심 영역 객체)를 제공할 수 있다. 도 18에 예시한 바와 같이, 가이드 객체(1800)는, 대상 객체를 포함하는 지정된 형상(예: 사각형, 타원형, 또는 올가미형)으로 제공될 수 있다. 일 실시예에 따라, 가이드 객체(1800)는, 관심 영역의 범위(또는 크기)를 변경(예: 확장 또는 축소)하기 위한 적어도 하나의 조절 객체(1810, 1820)를 포함할 수도 있다. 예를 들어, 사용자는, 전자 장치(101)에 의해 액션에 따라 지정된 관심 영역에 대해, 조절 객체(1810, 1820)의 상하 이동을 통해 변경할 수 있다. 일 실시예에 따라, 사용자는 제2 액션 이후에 제3 손 글씨(1910)를 입력하고, 정렬 객체(1730)에 기반하여 제3 액션을 수행할 수 있다.
일 실시예에 따라, 도 19에 예시한 바와 같이, 도 19는 사용자가 제3 손 글씨(1910)를 입력하고, 정렬 객체(1730)를 선택하여 제3 액션을 수행한 상태의 예를 나타낼 수 있다. 일 실시예에 따라, 전자 장치(101)는 제2 액션 이후에 제3 손 글씨(1910)가 입력되고 제3 액션이 수행되는 경우, 제1 손 글씨(1710)(예: 첫 번째 라인, 두 번째 라인)와 제2 손 글씨(1720)(예: 세 번째 라인)에 대해서는 정렬을 수행하지 않고, 제3 손 글씨(1910)(예: 네 번째 라인)를 지정하여(또는 대상으로) 정렬을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 정렬 객체(1730)에 의해 손 글씨 정렬 시, 사용자에게 정렬 대상의 객체를 가이드(또는 지정) 하는 가이드 객체(1800)(또는 대상 관심 영역을 나타내는 관심 영역 객체)를 제공할 수 있다.
도 20은 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역을 설정하는 예를 설명하기 위한 도면이다.
일 실시예에 따라, 도 20에서는, 도 10에 예시한 바와 같이 관심 영역과 교차되는 라인의 객체를 정렬 대상 객체로 포함하도록 대상 관심 영역을 설정(예: 확장)하는 예를 나타낼 수 있다. 예를 들면, 도 20에서는, 기존 액션의 손 글씨의 적어도 일부분(예: 라인)을 최근 액션의 손 글씨와 연관지어, 손 글씨 정렬을 위한 대상 관심 영역으로 설정하는 예를 나타낼 수 있다. 일 실시예에 따라, 도 20에서는 최근 액션에 따라 설정되는 관심 영역(예: DirtyRect)가 1개인 경우의 예를 나타낼 수 있다.
도 20을 참조하면, 예시 화면 <2001>에 예시한 바와 같이, 사용자는 4개의 라인들로 이루어진 제1 손 글씨(2010)를 입력하고, 제1 액션(예: 정렬 명령)을 수행하여 제1 손 글씨(2010)에 대한 정렬을 수행할 수 있다. 예시 화면 <2003>에 예시한 바와 같이, 사용자는 제1 액션 이후에 제2 손 글씨(2020)를 제1 손 글씨(2010)의 적어도 하나의 라인의 근처 또는 중첩하여 입력할 수 있다. 일 실시예 따라, 사용자는 제2 손 글씨(2020)를 입력한 이후에 제2 액션(예: 정렬 명령)을 수행할 수 있다.
예시 화면 <2005>에 예시한 바와 같이, 전자 장치(101)는 제2 손 글씨(2020)가 입력되고 제2 액션이 수행되면, 제2 손 글씨(2020)와 제2 손 글씨(2020)에 연관된(또는 교차(intersect)된) 라인(예: 세 번째 라인 및 네 번째 라인 또는 그 객체)에 기반하여 손 글씨 정렬을 수행할 수 있다. 예를 들면, 제2 액션에 대하여 정렬되는 대상 객체는 제2 손 글씨(2020)일 수 있다. 다양한 실시예들에서는, 제2 액션에 대응하여 제2 손 글씨(2020)에 대한 정렬을 수행할 때, 제2 액션에 따른 제2 손 글씨(2020) 및 제2 손 글씨(2020)와 관련되는 다른 객체(예: 이전 제1 액션에 매핑된 제1 손 글씨(2010)의 적어도 일부를 함께 정렬 대상 객체로 포함할 수 있다. 예를 들면, 전자 장치(101)는 제2 손 글씨(2020) 및 제2 손 글씨(2020)에 교차되는 적어도 하나의 다른 객체를 포함하여 대상 관심 영역을 설정할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제2 액션 도출 시, 제1 액션의 제1 손 글씨(2010)의 라인을 분석하여 제2 액션의 제2 손 글씨(2020)와 교차되는지 판단할 수 있다. 예를 들면, 전자 장치(101)는 이전 액션의 손 글씨에서 최근 액션의 손 글씨의 관심 영역(예: DirtyRect)에 교차되는 라인을 최근 액션에 포함하여 정렬을 수행할 수 있다. 예를 들면, 예시 화면 <2005>에 예시한 바와 같이, 전자 장치(101)는 제1 액션의 제1 손 글씨(2010)에서 세 번째 라인(2030)과 네 번째 라인(2040)이 제2 손 글씨(2020)의 관심 영역(예: DirtyRect)와 교차되는 것을 식별할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제1 손 글씨(2010)에서 제2 손 글씨(2020)의 관심 영역과 교차되는 해당 라인(예: 세 번째 라인(2030)과 네 번째 라인(2040))을 유효 라인(예: valid line = true)으로 결정하고, 제2 손 글씨(2020)와 유효 라인을 함께 대상 관심 영역으로 설정할 수 있다. 예를 들면, 예시 화면 <2005>에 예시한 바와 같이, 전자 장치(101)는 제2 손 글씨(2010)에 대한 관심 영역을 유효 라인(예: 세 번째 라인(2030)과 네 번째 라인(2040))을 포함하도록 확장하여 대상 관심 영역으로 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 대상 관심 영역의 대상 객체들(예: 제2 손 글씨(2020) 객체 및 유효 라인의 객체)에 대하여 정렬을 수행할 수 있다.
도 21 및 도 22는 다양한 실시예들에 따른 전자 장치에서 대상 관심 영역을 설정하는 예를 설명하기 위한 도면들이다.
일 실시예에 따라, 도 21 및 도 22에서는, 도 10에 예시한 바와 같이 관심 영역과 교차되는 라인의 객체를 정렬 대상 객체로 포함하도록 대상 관심 영역을 설정(예: 확장)하는 예를 나타낼 수 있다. 예를 들면, 도 21 및 도 22에서는, 기존 액션의 손 글씨의 적어도 일부분(예: 라인)을 최근 액션의 손 글씨와 연관지어, 손 글씨 정렬을 위한 대상 관심 영역으로 설정하는 예를 나타낼 수 있다. 일 실시예에 따라, 도 21 및 도 22에서는, 제2 액션에 따라 설정되는 관심 영역(예: DirtyRect)가 복수인 경우의 예를 나타낼 수 있다.
도 21에 예시한 바와 같이, 사용자는 4개의 라인들로 이루어진 제1 손 글씨(2100)를 입력하고 제1 액션을 수행한 이후에, 제1 손 글씨(2100)에 교차(또는 중첩)되는 제2 손 글씨(2200)를 입력할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2 손 글씨(2200)에 대하여, 전술한 도 7, 도 8 및 도 9를 참조한 설명 부분에서 설명한 바와 같이 블록화 하여, 복수의 블록(예: 제1 블록(2110), 제2 블록(2120), 제3 블록(2130))으로 구분할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 4개의 라인으로 이루어진 제1 손 글씨(2100)를 입력하고, 제1 액션이 수행되고, 제2 손 글씨(2200)가 입력되는 경우, 제2 손 글씨(2200)에 대응하는 각각의 객체 또는 객체의 그룹을 지정하여, 점선 사각형으로 표시된 제1 블록(2110), 제2 블록(2120) 및 제3 블록(2130)을 가상적으로 설정할 수 있다. 예를 들면, 제1 블록(2110), 제2 블록(2120) 및 제3 블록(2130)은 평균 델타(average delta) 이상의 거리가 서로 있는 3개의 군집을 나타낼 수 있다. 일 실시예에 따라, 도 21 및 도 22에서 각각의 점선 사각형은 설명을 위해 도시된 것으로, 실제 보여지지 않을 수 있다. 일 실시예에 따르면, 복수의 블록(2110, 2120, 2130) 각각은 DirtyRect(예: 관심 영역)를 나타낼 있다. 예를 들면, 전자 장치(101)는 복수의 DirtyRect에 기반하여 제2 액션에 관련된 제2 관심 영역으로 설정할 수 있다.
도 22에 예시한 바와 같이, 전자 장치(101)는 제2 관심 영역 설정 시, 제1 관심 영역으로 지정된 제1 손 글씨(2100) 중 각 DirtyRect와 연관되는 적어도 하나의 객체(또는 라인)를 포함하여 대상 관심 영역으로 설정할 수 있다. 예를 들면, 도 22에 예시한 바와 같이 전자 장치(101)는 제2 손 글씨(2200)가 입력되고 제2 액션이 수행되면, 제2 손 글씨(2200)와 제2 손 글씨(2200)에 연관된(또는 교차된) 라인(예: 제1 손 글씨(2100)의 첫 번째 라인, 두 번째 라인 및 네 번째 라인 또는 그 객체)에 기반하여 복수의 대상 관심 영역(2210, 2220, 2230)을 설정할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제2 액션 도출 시, 제1 액션의 제1 손 글씨(2100)의 라인을 분석하여 제2 액션의 제2 손 글씨(2200)와 교차되는지 판단할 수 있다. 예를 들면, 전자 장치(101)는 이전 액션의 손 글씨에서 최근 액션의 손 글씨의 관심 영역(예: DirtyRect)에 교차되는 라인을 최근 액션에 포함하여 정렬을 수행할 수 있다. 예를 들면, 도 22에 예시한 바와 같이, 전자 장치(101)는 제1 손 글씨(2100)에서 첫 번째 라인, 두 번째 라인 및 네 번째 라인이 제2 손 글씨(2200)의 각각의 관심 영역(2110, 2120, 2130)(예: DirtyRect)와 교차되는 것을 식별할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제1 손 글씨(2100)에서 제2 손 글씨(2200)의 관심 영역과 교차되는 해당 라인(예: 첫 번째 라인, 두 번째 라인 및 네 번째 라인)을 유효 라인(예: valid line = true)으로 결정하고, 제2 손 글씨(2200)와 유효 라인을 함께 대상 관심 영역(2210, 2220, 2230)으로 각각 설정할 수 있다. 예를 들면, 도 22에 예시한 바와 같이, 전자 장치(101)는 제2 손 글씨(2200)에 대한 관심 영역을 유효 라인(예: 제1 손 글씨(2100)의 첫 번째 라인, 두 번째 라인 및 네 번째 라인)을 포함하도록 확장하여 대상 관심 영역(2210, 2220, 2230)으로 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 대상 관심 영역(2210, 2220, 2230)의 대상 객체들(예: 제2 손 글씨(2020) 객체 및 유효 라인의 객체)에 대하여 정렬을 수행할 수 있다.
도 23은 다양한 실시예들에 따른 전자 장치의 동작을 도시하는 흐름도이다.
일 실시예에 따라, 도 23에서는 액션 단위로 구분된 손 글씨에 대하여 보정하는 예를 나타낼 수 있다. 일 실시예에 따르면, 전자 장치(101)는 액션이 구분된 특성을 이용하여, 정렬 대상의 대상 객체에 대해 라인 보정 및/또는 크기 보정을 제공할 수 있다. 예를 들면, 전자 장치(101)는 손 글씨의 기울기 보정(예: deskew), 라인(line) 별 손 글씨 위치 맞춤(예: indentation), 손 글씨 줄 간격 맞춤(예: line spacing), 글자 크기(예: 높이) 정규화, 및/또는 비문자(예: 밑줄, 도형, 스케치, 및/또는 그림)에 대한 어울림 배치와 같은 다양한 정렬을 제공할 수 있다.
도 23을 참조하면, 동작 2301에서, 전자 장치(101)의 프로세서(120)는 최근 액션에 관련된 관심 영역에 기반하여 주변 객체를 분석할 수 있다. 일 실시예에 따르면, 프로세서(120)는 최근 액션의 손 글씨 기반의 관심 영역(예: DirtyRect)과 교차(또는 중첩)되거나, 근접한 이전 액션의 손 글씨가 존재하는지 식별할 수 있다. 예를 들면, 프로세서(120)는 관심 영역과 연관 가능한 라인이 있는지 판단할 수 있다.
동작 2303에서, 프로세서(120)는 주변 객체의 분석하는 결과에 기반하여, 마그네틱 보정(또는 설정)이 필요한지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 관심 영역과 교차되거나 근접한 이전 액션의 손 글씨(예: 라인의 적어도 일부가 DirtyRect와 교차하거나 근접하는 손 글씨)가 식별되는 경우, 마그네틱 보정을 수행하는 것으로 결정할 수 있다. 일 실시예에 따른 마그네틱 보정 동작과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 2303에서, 프로세서(120)는 마그네틱 보정이 필요하지 않은 경우(예: 동작 2303의 ‘아니오’), 동작 2309로 진행하여, 동작 2309 이하의 동작을 수행할 수 있다.
동작 2303에서, 프로세서(120)는 마그네틱 보정이 필요한 경우(예: 동작 2303의 ‘예’), 동작 2305에서, 객체 별 마그네틱 포인트(magnetic point)를 도출할 수 있다. 일 실시예에 따른 마그네틱 포인트와 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 2307에서, 프로세서(120)는 마그네틱 포인트에 기반하여, 관심 영역의 대상 객체를 최근접 주변 객체에 이동하여 배치할 수 있다. 일 실시예에 따르면, 프로세서(120)는 마그네틱 포인트에 기반하여 최근접 주변 객체를 식별할 수 있고, 대상 객체를 최근접 주변 객체로 이동하여, 주변 객체와 대상 객체 간의 라인을 맞추는 라인 보정을 수행할 수 있다. 일 실시예에 따른 라인 보정과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 2309에서, 프로세서(120)는 크기 기반 균등화(size-based equalization) 보정이 필요한지 여부를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 관심 영역과 교차되거나 근접한 이전 액션의 손 글씨와 대상 객체의 크기를 비교하여, 일정 이상의 차이가 있는 경우 크기 기반 균등화 보정을 처리하는 것으로 결정할 수 있다.
동작 2309에서, 프로세서(120)는 크기 기반 균등화 보정이 필요하지 않은 경우(예: 동작 2309의 ‘아니오’), 동작 2317로 진행하여, 동작 2317 이하의 동작을 수행할 수 있다.
동작 2309에서, 프로세서(120)는 크기 기반 균등화 보정이 필요한 경우(예: 동작 2309의 ‘예’), 동작 2311에서, 라인 별 무게 중심을 분석할 수 있다. 일 실시예에 따르면, 프로세서(120)는 기존 액션의 손 글씨에 대응하는 라인(또는 주변 객체)의 무게 중심과 최근 액션의 손 글씨에 대응하는 대상 객체의 무게 중심을 확인할 수 있다.
동작 2313에서, 프로세서(120)는 객체 별 평균 크기를 분석할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주변 객체의 무게 중심에 기반하여 주변 객체의 평균 크기를 분석하고, 대상 객체의 무게 중심에 기반하여 대상 객체의 평균 크기를 확인할 수 있다.
동작 2315에서, 프로세서(120)는 대상 객체의 크기를 변경할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주변 객체의 평균 크기와 대상 객체의 평균 크기를 비교하여 편차가 있는 경우, 대상 객체의 평균 크기를 주변 객체의 평균 크기에 대응하는 크기로 맞추는(또는 변경하는) 크기 보정을 수행할 수 있다. 어떤 실시예에 따르면, 프로세서(120)는 대상 객체의 크기 변경에 대응하여 대상 객체의 위치를 이동하여 배치하는 라인 보정을 더 수행할 수도 있다. 일 실시예에 따른 크기 보정과 관련하여 후술하는 도면을 참조하여 상세히 설명된다.
동작 2317에서, 프로세서(120)는 적어도 하나의 객체에 대한 정렬을 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 라인 보정 및/또는 크기 보정된 대상 객체와 주변 객체를 포함하는 대상 관심 영역을 설정하고, 대상 관심 영역의 모든 객체에 대한 손 글씨 정렬을 수행할 수 있다.
일 실시예에 따라, 도 23에서는 라인 보정 동작과 크기 보정 동작이 순차적으로 동작하는 것으로 도시되지만, 다양한 실시예들에 따르면, 보정 동작과 크기 보정 동작은, 도시된 순서에 제한되지 않으며, 병렬적으로, 역순차적으로, 또는 휴리스틱 하게 수행될 수 있다.
도 24는 다양한 실시예들에 따른 전자 장치에서 라인 보정의 예를 설명하기 위한 도면이다.
일 실시예에 따라, 도 24에서는 마그네틱 사용자 인터페이스(magnetic UI(user interface))에 기반하여 액션 단위 별 손 글씨에 대한 라인 보정을 제공하는 예를 나타낼 수 있다.
도 24를 참조하면, 예시 화면 <2101>에 예시한 바와 같이, 사용자는 이전 액션(예: 제1 액션)에 따른 제1 손 글씨(2410, 2420, 2430) 이후에, 제2 손 글씨(2440)를 제1 손 글씨(2410, 2420, 2430)의 적어도 하나의 라인에 연관되게(또는 근처에) 입력할 수 있다. 일 실시예에 따라, 사용자는 제2 손 글씨(2440)를 입력하고 제2 액션(예: 정렬 명령)을 수행할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제2 액션(예: 정렬 명령)을 감지하는 경우, 자동적으로 또는 수동적으로 라인 보정 여부를 판단할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 도 23에 예시한 바와 같이, 마그네틱 보정 여부를 판단하고 판단하는 결과에 기반하여 라인 보정을 자동적으로 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 액션을 구분하여 복수의 액션들이 존재하는 경우에 최근 액션(예: 정렬 명령) 실행 시에, 예시 화면 <2401>에 예시한 바와 같이, 마그네틱 사용자 인터페이스를 제공하여, 사용자에 의한 라인 보정을 수동적으로 수행할 수도 있다. 예를 들면, 전자 장치(101)는 제1 손 글씨(2410, 2420, 2430)와 제2 손 글씨(2440)(또는 각 손 글씨에 대응하는 DirtyRect)에 기반하여 특정 모양(예: 원형, 마름모형, 타원형 또는 사각형)의 마그네틱 포인트(magnetic point)(2450)를 생성하여 제공할 수 있다.
일 실시예에 따라, 전자 장치(101)는 각 손 글씨(2410, 2420, 2430, 2440)의 라인 별로 마그네틱 포인트를 생성할 수 있다. 예를 들면, 전자 장치(101)는 이전 액션 및 최근 액션과 관련된 모든 손 글씨(2410, 2420, 2430, 2440)에 대하여 라인을 분리하고, 각 라인(또는 객체) 별로 마그네틱 포인트(2415, 2425, 2435, 2445)를 생성할 수 있다. 일 실시예에 따라, 예시 화면 <2401>, 예시 화면 <2403> 및 예시 화면 <2405>에서 마그네틱 포인트(2415, 2425, 2435, 2445) 및 점선 사각형은 설명을 위해 도시된 것으로, 시각적으로 표시되거나, 또는 표시되지 않을 수 있다. 예를 들면, 마그네틱 포인트(2415, 2425, 2435, 2445)는 사용자 인지를 위해 시각적으로 표시될 수도 있고(예: 라인 보정의 수동 방식의 경우), 또는 마그네틱 포인트(2415, 2425, 2435, 2445)는 각 객체들의 소속 라인 결정을 위해 내부적으로 사용하고 표시되지 않을 수도 있다(예: 라인 보정의 자동 방식의 경우).
일 실시예에 따라, 예시 화면 <2403>에 예시한 바와 같이, 사용자는 최근 액션에 대응하는 제2 손 글씨(2440)(또는 객체)를 선택(예: 터치(2400))하여 사용자 지정의 위치(예: 이전 액션에 대응하는 제1 손 글씨(2410, 2420, 2430) 중 임의의 라인(또는 객체) 위치)로 이동(예: 드래그(drag), 스와이프(swipe) 또는 플릭(flick))할 수 있다. 예를 들면, 사용자는 제2 손 글씨(2440)를 터치(2400)한 상태에서 제1 손 글씨(2410, 2420, 2430) 중 특정 위치의 라인(예: 첫 번째 라인(2410)) 방향으로 이동(예: 드래그)하는 사용자 입력을 수행할 수 있다.
일 실시예에 따라, 전자 장치(101)는 사용자 입력에 기반하여, 제2 손 글씨(2440)를 사용자에 의해 지정되는 라인(2410) 방향으로 이동하고, 해당 라인(2410)의 근처(예: 지정된 거리 범위 내)에서 제2 손 글씨(2240)를 해당 라인(2410)에 자동적으로 덧붙이기(append)할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 제2 손 글씨(2440)에 대한 덧붙이기 과정을 시각적으로 제공할 수 있다. 일 실시예에 따라, 제2 손 글씨(2440)를 대응하는 라인(2410)에 덧붙이기 하는 결과(예: 라인 보정의 결과)가 예시 화면 <2405>에 도시된다.
예시 화면 <2405>에 예시한 바와 같이, 최근 액션의 제2 손 글씨(2440)가 이전 액션의 제1 손 글씨(2410, 2420, 2430) 중 지정된 라인(2410)에 덧붙이기 되면서 정렬(예: 줄 간격 맞춤(예: line spacing), 위치 맞춤(예: indentation))되어 제공될 수 있다.
일 실시예에 따라, 도 24의 예시에서는, 마그네틱 사용자 인터페이스에 기반하여 사용자 입력에 의한 수동 방식으로 라인 보정을 제공하는 예를 설명하지만, 다양한 실시예들이 이를 제한하는 것은 아니다. 예를 들면, 전자 장치(101)는 도 24에 예시한 바와 같은 마그네틱 사용자 인터페이스의 시각적 표시(예: 마그네틱 포인트의 표시) 없이, 도 23에 예시한 바와 같이, 내부적으로 마그네틱 보정 여부를 판단하고, 판단하는 결과에 기반하여 마그네틱 포인트를 이용하여 손 글씨 객체들 간의 덧붙이기(append) 및 정렬을 자동적으로 수행할 수 있다. 예를 들면, 전자 장치(101)는 이전 액션의 손 글씨의 라인을 분리하고, 최근 액션의 손 글씨가, 이전 액션의 손 글씨와 가까운 위치로 끌려 들어가면서 이전 액션의 손 글씨(예: 대상의 라인)와 인접한 위치에 덧붙이기(append) 되는(예: 마그네틱 효과) UX(user experience)를 제공할 수 있다. 이의 예시에 대하여, 도 25 내지 도 28을 참조하여 설명된다.
도 25, 도 26, 도 27 및 도 28은 다양한 실시예들에 따른 전자 장치에서 라인 보정을 위한 동작 예를 설명하기 위한 도면들이다.
일 실시예에 따라, 도 25, 도 26, 도 27 및 도 28에서 마그네틱 포인트(2450) 및 사각 박스는 설명을 위해 도시된 것으로, 실제 화면에서는 표시되지 않을 수 있다.
일 실시예에 따라, 도 25는 손 글씨(2510)(예: 객체)에 마그네틱 포인트(2450)가 생성되는 예를 나타낼 수 있다. 도 25에 예시한 바와 같이, 마그네틱 포인트(2450)는, 예를 들면, 손 글씨(2510)의 손 글씨(2510)의 세로 방향으로 상측(top)과 하측(bottom)에 각각 적어도 하나의 마그네틱 포인트(2451)와, 가로 방향으로 좌측(left)과 우측(right)에 각각 1개씩의 마그네틱 포인트(2453)를 포함하여 생성될 수 있다. 일 실시예에 따라, 마그네틱 포인트(2450)는 손 글씨(2510)(예: 객체)의 길이 및/또는 높이에 따라 가로 방향 및/또는 세로 방향에서 복수의 마그네틱 포인트들을 포함할 수 있다. 일 실시예에 따라, 마그네틱 포인트(2450)는 손 글씨(2510)의 최외곽을 기준으로 손 글씨(2510)를 둘러싸는 형상을 포함할 수 있다.
일 실시예에 따라, 도 26은 기존 손 글씨(2510)(이하, 제1 손 글씨(2510)) 이후에 새로운 손 글씨(2610)(이하, 제2 손 글씨(2610))가 입력되는 상태를 나타낼 수 있다. 예를 들어, 도 26에 예시한 바와 같이, 제2 손 글씨(2610)가 제1 손 글씨(2510)의 근처에 입력될 수 있다. 일 실시예에 따라, 제2 손 글씨(2610)가 입력되는 경우, 제1 손 글씨(2510)와 제2 손 글씨(2610) 각각을 기반으로 마그네틱 포인트(2450)가 각각 생성될 수 있다. 일 실시예에 따르면, 제1 손 글씨(2510) 근처에 제2 손 글씨(2610)가 입력되는 경우, 제1 손 글씨(2510)의 마그네틱 포인트와 제2 손 글씨(2610)의 마그네틱 포인트 간의 거리(distance)에 기반하여 덧붙이기(append) 대상의 마그네틱 포인트가 결정될 수 있다. 예를 들면, 전자 장치(101)는 유클리디언(euclidean) 알고리즘에 기반하여, 제1 손 글씨(2510)의 마그네틱 포인트와 제2 손 글씨(2610)의 마그네틱 포인트 간에 유클리디언 거리(euclidean distance)가 가장 가까운 마그네틱 포인트를 손 글씨(2510, 2610)마다 하나씩 결정할 수 있다. 이의 예가 도 27에 도시된다.
일 실시예에 따라, 도 27에 예시한 바와 같이, 도 27은 제1 손 글씨(2510)의 마그네틱 포인트(2450) 중 가로 방향(예: 우측 마그네틱 포인트(2515))와 제2 손 글씨(2610)의 마그네틱 포인트(2450) 중 가로 방향(예: 좌측 마그네틱 포인트(2615)가 유클리디언 거리 상 가장 가까운 것으로 결정된 예를 나타낼 수 있다. 예를 들면, 제2 손 글씨(2610)가 제1 손 글씨(2510)의 우측에 줄 맞춤 되어 덧붙이기(append) 될 수 있다.
일 실시예에 따라, 도 28은 제1 손 글씨(2510)에 비문자 기반의 새로운 손 글씨(2810, 2820)(이하, 제3 손 글씨(2810, 2820))가 입력되는 상태를 나타낼 수 있다. 예를 들어, 도 28에 예시한 바와 같이, 제3 손 글씨(2810, 2820)가 제1 손 글씨(2510)의 가로 방향과 세로 방향에서 각각 입력될 수 있다. 일 실시예에 따르면, 제1 손 글씨(2510)를 기준으로 가로 방향과 세로 방향 각각에 제3 손 글씨(2810, 2820)가 각각 입력되는 경우, 제1 손 글씨(2510)의 마그네틱 포인트와 제3 손 글씨(2810, 2820)의 마그네틱 포인트 간의 거리에 기반하여 덧붙이기 대상의 마그네틱 포인트가 결정될 수 있다. 예를 들면, 전자 장치(101)는 유클리디언 알고리즘에 기반하여, 제1 손 글씨(2510)의 마그네틱 포인트와 제3 손 글씨(2810, 2820)의 마그네틱 포인트 간에 유클리디언 거리가 가장 가까운 마그네틱 포인트를 손 글씨(2510, 2810, 2820)마다 하나씩 결정할 수 있다. 일 실시예에 따라, 도 28에 예시한 바와 같이, 제2 손 글씨(2810, 2820) 각각은 유클리디언 거리에 기반하여, 제1 손 글씨(2510)의 가로 방향 또는 세로 방향 중 유클리디언 거리 상 가장 가까운 쪽에 각각 덧붙이기(append) 될 수 있다.
도 29, 도 30 및 도 31은 다양한 실시예들에 따른 전자 장치에서 라인 보정의 동작 예를 설명하기 위한 도면들이다.
도 29를 참조하면, 예시 화면 <2901>에 예시한 바와 같이, 사용자는 이전 액션(예: 적어도 하나의 제1 액션)에 따른 제1 손 글씨(2910, 2920, 2930, 2940) 이후에, 예시 화면 <2903>에 예시한 바와 같이 제2 손 글씨(2950, 2960)를 제1 손 글씨(2910, 2920, 2930, 2940)의 임의 라인(예: 제1 손 글씨(2910, 2920, 2930, 2940) 중 첫 번째 라인의 손 글씨(2910) 및 세 번째 라인의 손 글씨(2930))에 연관되게 입력할 수 있다. 예를 들어, 예시 화면 <2903>에 예시한 바와 같이, 사용자는 첫 번째 라인의 손 글씨(2910)에 연관되게 ‘밑줄’에 대응하는 제2 손 글씨(2950)를 입력하고, 세 번째 라인의 손 글씨(2930)에 연관되게 ‘별표’에 대응하는 제2 손 글씨(2960)를 입력할 수 있다. 일 실시예에 따라, 사용자는 제2 손 글씨(2950, 2960)를 입력하고 제2 액션(예: 정렬 명령)을 수행할 수 있다.
일 실시예에 따라, 전자 장치(101)는 제2 액션(예: 정렬 명령)에 응답하여 제2 손 글씨(2950, 2960)에 대해 라인 보정(예: 마그네틱 기능 수행)을 처리할 수 있다. 예를 들어, 예시 화면 <2905>에 예시한 바와 같이, 전자 장치(101)는 제2 손 글씨(2950, 2960)에 대해, 제1 손 글씨(2910, 2920, 2930, 2940) 중 대응하는 손 글씨(2910, 2930)에 연관지어 라인 보정을 수행할 수 있다. 예를 들면, 예시 화면 <2905>는 제2 액션에 따라 마그네틱 보정이 적용된 예를 나타낼 수 있으며, 제2 손 글씨(2950, 2960)가 각각 가장 가까운 제1 손 글씨(2910, 2930)로 이동되어 배치될 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제2 액션(예: 정렬 명령)에 응답하여, 예시 화면 <2905>에 예시한 바와 같이 라인 보정의 상태에서, 손 글씨 정렬을 수행할 수 있다. 라인 보정의 적용 또는 미적용에 따라 수행된 정렬 결과의 예가 도 30 및 도 31에 도시된다. 예를 들어, 다양한 실시예들에 따르면, 라인 보정(예: 마그네틱 기능) 및 라인 별 정렬을 동시 또는 선택적으로 적용할 수 있으며, 라인 보정(예: 마그네틱 기능) 적용 여부에 따라 도 30 또는 도 31의 예시와 같은 결과가 제공될 수 있다.
도 30을 참조하면, 도 30은 라인 보정의 적용에 따른 라인 별 정렬의 결과 예를 나타낼 수 있다. 도 30에 예시한 바와 같이, 제2 액션에 대해 라인 보정(예: 마그네틱 기능) 적용 완료 후 정렬이 수행되는 경우, 제2 손 글씨(2950, 2960) 각각이 제1 손 글씨(2910, 2920, 2930, 2940)의 대응하는 라인(예: 첫 번째 라인(2910) 및 세 번째 라인(2930))에 덧붙이기 되고, 제2 액션의 제2 손 글씨(2950, 2960)에 의한 대상 관심 영역 지정에 따라, 제2 손 글씨(2950, 2960)가 라인 보정된 상태로 첫 번째 라인(2910) 및 세 번째 라인(2930)과 함께 정렬되어 제공될 수 있다. 예를 들어, 도 30의 경우, 제2 손 글씨(2950, 2960)를 대응하는 라인에 자동적으로 연관지어(또는 포함하여), 보다 깔끔하게 정리/정돈한 후 정렬하는 경우를 나타낼 수 있다.
도 31을 참조하면, 도 31은 라인 보정 미적용에 따른 라인 별 정렬의 결과 예를 나타낼 수 있다. 도 31에 예시한 바와 같이, 제2 액션에 대해 라인 보정(예: 마그네틱 기능) 미적용으로 정렬이 수행되는 경우, 제2 액션의 제2 손 글씨(2950, 2960)에 의한 대상 관심 영역 지정에 따라, 제2 손 글씨(2950, 2960)가 라인 보정 없이 최초 입력된 위치에서, 첫 번째 라인(2910) 및 세 번째 라인(2930)이 정렬되어 제공될 수 있다. 예를 들어, 도 31의 경우, 사용자가 제2 손 글씨(2950, 2960)의 입력 형태를 유지하고자 하는 경우, 라인 보정 기능을 생략하고 정렬하는 경우를 나타낼 수 있다.
도 32는 다양한 실시예들에 따른 전자 장치에서 크기 보정의 예를 설명하기 위한 도면이다.
일 실시예에 따라, 도 32에서는 크기 기반 균등화(size-based equalization)에 기반하여 액션 단위 별 손 글씨에 대한 크기 보정을 제공하는 예를 나타낼 수 있다. 예를 들면, 도 32에서는 기존 액션에 존재하는 손 글씨의 크기를 기반으로 최근 액션으로 입력된 손 글씨의 크기를 변경하여 덧붙이기(예: 라인 보정)를 수행하는 예를 나타낼 수 있다. 일 실시예에 따라, 도 32에서 사각 박스는 설명을 위해 도시된 것으로, 실제 화면에서는 표시되지 않을 수 있다.
도 32를 참조하면, 예시 화면 <3201>에 예시한 바와 같이, 사용자는 이전 액션(예: 제1 액션)에 따른 제1 손 글씨(3210) 이후에, 제2 손 글씨(3220)를 입력할 수 있다. 일 실시예에 따라, 사용자는 제2 손 글씨(3220)를 입력하고 제2 액션(예: 정렬 명령)을 수행할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 제2 액션(예: 정렬 명령)을 감지하는 경우, 제1 액션의 제1 손 글씨(3210)와 제2 액션의 제2 손 글씨(3220)의 크기를 비교하여, 제2 손 글씨(3220)의 크기를 제1 손 글씨(3210)(또는 제1 손 글씨(3210)의 연관된 라인의 객체)의 크기에 대응하는(또는 유사한) 크기로 보정할 수 있다. 어떤 실시예에 따르면, 전자 장치(101)는 크기 보정된 제2 손 글씨(3220)에 대해 라인 보정을 병렬적으로 처리할 수도 있다. 이의 예가 예시 화면 <3203>에 도시된다.
일 실시예에 따라, 예시 화면 <3203>에 예시한 바와 같이, 제2 손 글씨(3220)가 제1 손 글씨(3210)의 크기에 대응하는 크기로 변경되고, 제1 손 글씨(3210)와 가까운 위치로 이동되어 제공될 수 있다. 일 실시예에 따라, 크기 보정과 라인 보정은 선후 관계를 가지지 않으며, 크기 보정 후 라인 보정, 라인 보정 후 크기 보정, 또는 크기 보정 및 라인 보정이 병렬적으로 수행될 수 있다.
일 실시예에 따라, 예시 화면 <3203>에서, 제3 손 글씨(3230)과 제4 손 글씨(3240)은 추가적인 예를 설명하기 위해 도시한 것일 수 있다. 예를 들면, 제3 손 글씨(3230)과 제4 손 글씨(3240)의 경우, 상기의 라인 보정 및 크기 보정에 따라 예시 화면 <3205>에 예시한 바와 같이, 제4 손 글씨(3240)가 제3 손 글씨(3230)의 크기에 대응하는 크기로 변경되고, 제3 손 글씨(3210)와 줄 맞춤 되어 제공될 수 있다. 이의 예시에 대하여, 도 33 내지 도 37을 참조하여 설명된다.
도 33 및 도 34는 다양한 실시예들에 따른 전자 장치에서 크기 보정의 예를 설명하기 위한 도면들이다.
일 실시예에 따라, 도 33은 제2 손 글씨(3320)과 제4 손 글씨(3340)에 대해 크기 보정이 적용되기 전의 예를 나타낼 수 있고, 도 34는 제2 손 글씨(3320)과 제4 손 글씨(3340)에 대해, 각각 제1 손 글씨(3310)와 제3 손 글씨(3330)에 대응하여 크기 보정이 적용된 예를 나타낼 수 있다. 일 실시예에 따라, 손 글씨의 크기 보정은 손 글씨의 평균 높이를 보정하는 것을 포함할 수 있다.
일 실시예에 따르면, 제2 손 글씨(3320)의 크기(예: 도 33 참조)가 제1 손 글씨(3310)의 크기에 유사하게 변경(예: 도 34 참조)될 수 있다. 다른 예를 들면, 제4 손 글씨(3340)의 크기(예: 평균 높이)(예: 도 33 참조)가 제3 손 글씨(3330)의 크기(예: 평균 높이)에 유사하게 변경(예: 도 34 참조)될 수 있다.
일 실시예에 따르면, 전자 장치(101)는 최근 액션의 손 글씨(예: 제2 손 글씨(3320) 또는 제4 손 글씨(3340))의 크기를 기존 액션의 손 글씨(예: 제1 손 글씨(3310) 또는 제3 손 글씨(3330))의 크기에 유사하게 변경하는 것을 의미할 수 있다. 예를 들면, 전자 장치(101)는 새로 입력되는 손 글씨의 크기를 기존 입력된 손 글씨의 평균 크기에 대응하도록 변경할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 손 글씨 별 무게 중심(예: DirtyRect의 무게 중심)을 이용하여 크기를 변경할 수 있다.
도 33 및 도 34의 예시를 참조하면, 제3 손 글씨(3330)는 이전 액션(예: 제3 액션)에서 입력되고, 제4 손 글씨(3340)은 최근 액션(예: 제4 액션)에서 입력될 수 있다. 도 33에 예시된 바와 같이, 제4 손 글씨(3340)의 경우 제3 손 글씨(3330)와 대비하여 무게 중심에 편차가 존재할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 이전 액션의 손 글씨(예: 제1 손 글씨(3310) 또는 제3 손 글씨(3330))와 최근 액션의 손 글씨(예: 제2 손 글씨(3320) 또는 제4 손 글씨(3340))에서 무게 중심의 편차가 있는 경우, 도 34에 예시한 바와 같이, 최근 액션의 손 글씨(예: 제2 손 글씨(3320) 또는 제4 손 글씨(3340))의 무게 중심을 이전 액션의 손 글씨(예: 제1 손 글씨(3310) 또는 제3 손 글씨(3330))의 무게 중심(3410)에 맞게 재배치하고 크기를 균등화(또는 평균화) 하여 최근 액션의 손 글씨의 크기를 조정할 수 있다. 이의 예시에 대하여, 도 35 내지 도 37을 참조하여 설명된다.
도 35, 도 36 및 도 37은 다양한 실시예들에 따른 전자 장치에서 크기 보정의 동작 예를 설명하기 위한 도면들이다.
도 35를 참조하면, 예시 화면 <3501>에 예시한 바와 같이, 사용자는 이전 액션(예: 적어도 하나의 제1 액션)에 따른 제1 손 글씨(3510, 3520, 3530, 3540) 이후에, 예시 화면 <3503>에 예시한 바와 같이 제2 손 글씨(3550, 3560)를 제1 손 글씨(3510, 3520, 3530, 3540)의 임의 라인(예: 제1 손 글씨(3510, 3520, 3530, 3540) 중 첫 번째 라인의 손 글씨(3510) 및 세 번째 라인의 손 글씨(3530))에 연관되게 입력할 수 있다. 예를 들어, 예시 화면 <3503>에 예시한 바와 같이, 사용자는 첫 번째 라인의 손 글씨(3510)에 연관되게, 상대적으로 큰 크기의 제2 손 글씨(3550)를 입력하고, 세 번째 라인의 손 글씨(3530)에 연관되게, 상대적으로 작은 크기의 제2 손 글씨(3560)를 입력할 수 있다. 일 실시예에 따라, 사용자는 제2 손 글씨(3550, 3560)를 입력하고 제2 액션(예: 정렬 명령)을 수행할 수 있다.
일 실시예에 따라, 전자 장치(101)는 제2 액션(예: 정렬 명령)에 응답하여 제2 손 글씨(3550, 3560)에 대해 크기 보정(예: 크기 기반 균등화 보정 수행)을 처리할 수 있다. 예를 들면, 전자 장치(101)는 크기 기반 균등화 및 라인 별 정렬을 동시에 적용할 수 있다. 일 실시예에 따라, 크기 보정(예: 크기 기반 균등화)이 적용된 결과 및 크기 보정 적용에 따라 수행된 정렬 결과의 예가 도 36 및 도 37에 도시된다.
도 36을 참조하면, 도 36은 전자 장치(101)가 제2 액션(예: 정렬 명령)에 응답하여 제2 손 글씨(3550, 3560)에 대해 크기 보정(예: 크기 기반 균등화 보정 수행)된 결과의 예를 나타낼 수 있다. 도 36에 예시한 바와 같이, 전자 장치(101)는 제2 손 글씨(3550, 3560)에 대해, 제1 손 글씨(3510, 3520, 3530, 3540) 중 대응하는 손 글씨(3510, 3530)에 연관지어 크기 보정을 수행할 수 있다. 예를 들면, 도 36은 제2 액션에 따라 크기 기반 ?便苧?가 적용된 예를 나타낼 수 있으며, 제2 손 글씨(3550, 3560)가 각각 대응하는 라인의 손 글씨(3510, 3530)의 크기에 대응하도록 조정될 수 있다. 예를 들면, 전자 장치(101)는 최근 액션의 손 글씨를 이전 액션의 손 글씨 중 대응하는 라인의 손 글씨의 크기 기반으로 조정하여, 최근 액션의 손 글씨의 크기를 주변 라인과 같은 크기로 조정하여 제공할 수 있다.
도 37을 참조하면, 도 37은 크기 보정의 적용에 따른 라인 별 정령의 결과 예를 나타낼 수 있다. 도 37에 예시한 바와 같이, 제2 액션에 대해 크기 보정(예: 크기 기반 균등화) 적용 완료 후 정렬이 수행되는 경우, 제2 손 글씨(3550, 3560)에 의한 대상 관심 영역 지정에 따라, 제2 손 글씨(3550, 3560)가 크기 보정된 상태로 첫 번째 라인(3510) 및 세 번째 라인(3530)과 함께 정렬되어 제공될 수 있다. 예를 들어, 도 37의 경우, 제2 손 글씨(3550, 3560)를 대응하는 라인의 크기에 맞도록 자동적으로 조정한 후 정렬하는 경우를 나타낼 수 있다.
본 개시의 다양한 실시예들에 따른 전자 장치(101)에서 수행하는 동작 방법은, 손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하는 동작, 상기 실행 화면을 통해 손 글씨 입력을 감지하는 동작, 상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하는 동작, 사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하는 동작, 및 상기 대상 객체에 기반하여 손 글씨 정렬을 수행하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 관심 영역을 설정하는 동작은, 상기 사용자의 액션 단위로 손 글씨를 구분하는 동작, 최근 액션에 관련된 적어도 하나의 손 글씨에 기반하여 상기 적어도 하나의 관심 영역을 설정하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 정렬을 수행하는 동작은, 상기 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여, 사용자 의도에 관련된 대상 객체를 정렬하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 대상 객체를 인식하는 동작은, 상기 적어도 하나의 관심 영역의 제1 객체를 식별하는 동작, 이전 액션에 따른 손 글씨의 객체들 중 상기 제1 객체와 연관된 제2 객체를 식별하는 동작, 상기 제1 객체와 상기 제2 객체를 상기 대상 객체로 결정하는 동작, 상기 제1 객체와 상기 제2 객체를 포함하는 대상 관심 영역을 설정하는 동작, 상기 대상 관심 영역에 기반하여 상기 제1 객체와 상기 제2 객체를 함께 정렬하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 정렬하는 동작은, 상기 제1 객체를 상기 제2 객체에 대응하게 보정하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 정렬하는 동작은, 상기 제2 객체에 기반하여 상기 제1 객체의 라인 보정 및/또는 크기 보정 여부를 결정하는 동작, 결정하는 결과에 기반하여 상기 제1 객체의 라인 및/또는 크기 중 적어도 하나를 보정하는 동작, 상기 제1 객체의 보정이 적용된 상태에서, 상기 제1 객체와 상기 제2 객체를 정렬하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 전자 장치(101)에서 수행하는 동작 방법은, 제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 관심 영역을 설정 및 상기 제1 객체를 제1 액션에 매핑하는 동작, 상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 매핑된 상기 제1 객체를 정렬하는 동작, 제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 관심 영역을 설정 및 상기 제2 객체를 제2 액션에 매핑하는 동작, 상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 제1 액션에 매핑된 상기 제1 객체는 유지하는 상태에서, 상기 제2 액션에 매핑된 상기 제2 객체를 정렬하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 제1 손 글씨 및 상기 제2 손 글씨는 상기 제1 액션과 상기 제2 액션에 따른 액션 단위로 구분되고, 상기 제1 액션의 상기 제1 객체 중 상기 제2 액션의 상기 제2 객체와 교차되는 적어도 일부는 상기 제2 객체와 연관되고, 상기 제2 객체와 함께 정렬되는 것을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 전자 장치(101)에서 수행하는 동작 방법은, 상기 제2 객체에 연관된 적어도 하나의 제3 객체를 식별하는 동작, 상기 제2 객체를 상기 제3 객체에 기반하여 보정하는 동작, 상기 보정된 제2 객체와 상기 제3 객체를 연관지어 정렬하는 동작을 포함할 수 있다.
본 명세서와 도면에 개시된 본 개시의 다양한 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.
101: 전자 장치
120: 프로세서
130: 메모리
160: 디스플레이 모듈

Claims (20)

  1. 전자 장치에 있어서,
    디스플레이 모듈; 및
    상기 디스플레이 모듈과 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
    손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하고,
    상기 실행 화면을 통해 손 글씨 입력을 감지하고,
    상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하고,
    사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하고, 및
    상기 대상 객체에 기반하여 손 글씨 정렬을 수행하도록 설정된 전자 장치.
  2. 제1항에 있어서, 상기 프로세서는,
    상기 사용자의 액션 단위로 손 글씨를 구분하고,
    최근 액션에 관련된 적어도 하나의 손 글씨에 기반하여 상기 적어도 하나의 관심 영역을 설정하는 전자 장치.
  3. 제2항에 있어서, 상기 프로세서는,
    상기 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여, 사용자 의도에 관련된 대상 객체를 정렬하도록 설정된 전자 장치.
  4. 제2항에 있어서, 상기 프로세서는,
    상기 적어도 하나의 관심 영역의 제1 객체를 식별하고,
    이전 액션에 따른 손 글씨의 객체들 중 상기 제1 객체와 연관된 제2 객체를 식별하고,
    상기 제1 객체와 상기 제2 객체를 상기 대상 객체로 결정하도록 설정된 전자 장치.
  5. 제4항에 있어서, 상기 프로세서는,
    상기 적어도 하나의 관심 영역의 제1 객체 및 상기 제1 객체와 연관된 주변의 상기 제2 객체를 포함하는 대상 관심 영역을 설정하고,
    상기 대상 관심 영역에 기반하여 상기 제1 객체와 상기 제2 객체를 함께 정렬하도록 설정된 전자 장치.
  6. 제5항에 있어서, 상기 프로세서는,
    상기 제1 객체를 상기 제2 객체에 대응하게 보정하도록 설정된 전자 장치.
  7. 제6항에 있어서, 상기 프로세서는,
    상기 제2 객체에 기반하여 상기 제1 객체의 라인 보정 및/또는 크기 보정 여부를 결정하고,
    결정하는 결과에 기반하여 상기 제1 객체의 라인 및/또는 크기 중 적어도 하나를 보정하도록 설정된 전자 장치.
  8. 제7항에 있어서, 상기 프로세서는,
    상기 제1 객체를 상기 제2 객체에 대응하도록 보정하고, 상기 제1 객체의 보정이 적용된 상태에서, 상기 제1 객체와 상기 제2 객체를 정렬하도록 설정된 전자 장치.
  9. 제2항에 있어서, 상기 프로세서는,
    제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 액션에 관련된 제1 관심 영역을 설정하고,
    상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 관련된 상기 제1 객체에 대한 정렬을 수행하고,
    제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 액션에 관련된 제2 관심 영역을 설정하고,
    상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 상기 제1 객체의 적어도 일부는 유지하는 상태에서, 상기 제2 액션에 관련된 상기 제2 객체에 대한 정렬을 수행하도록 설정된 전자 장치.
  10. 제9항에 있어서, 상기 프로세서는,
    상기 제1 객체 중 상기 제2 객체에 연관된 적어도 하나의 제3 객체를 식별하고,
    상기 제2 객체를 상기 제3 객체에 기반하여 보정하고,
    상기 보정된 제2 객체와 상기 제3 객체를 연관지어 정렬을 수행하도록 설정된 전자 장치.
  11. 전자 장치에 있어서,
    디스플레이 모듈; 및
    상기 디스플레이 모듈과 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
    제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 관심 영역을 설정 및 상기 제1 객체를 제1 액션에 매핑하고,
    상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 매핑된 상기 제1 객체를 정렬하고,
    제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 관심 영역을 설정 및 상기 제2 객체를 제2 액션에 매핑하고,
    상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 제1 액션에 매핑된 상기 제1 객체는 유지하는 상태에서, 상기 제2 액션에 매핑된 상기 제2 객체를 정렬하도록 설정되고,
    상기 제1 손 글씨 및 상기 제2 손 글씨는 상기 제1 액션과 상기 제2 액션에 따른 액션 단위로 구분되고,
    상기 제1 액션의 상기 제1 객체 중 상기 제2 액션의 상기 제2 객체와 교차되는 적어도 일부는 상기 제2 객체와 연관되고, 상기 제2 객체와 함께 정렬되는 전자 장치.
  12. 전자 장치의 동작 방법에 있어서,
    손 글씨 입력을 지원하는 어플리케이션의 실행 화면을 표시하는 동작;
    상기 실행 화면을 통해 손 글씨 입력을 감지하는 동작;
    상기 손 글씨에 대응하는 적어도 하나의 객체에 기반하여 적어도 하나의 관심 영역을 설정하는 동작;
    사용자의 액션(action)에 응답하여, 상기 적어도 하나의 관심 영역을 기반으로 대상 객체를 식별하는 동작; 및
    상기 대상 객체에 기반하여 손 글씨 정렬을 수행하는 동작을 포함하는 방법.
  13. 제12항에 있어서, 상기 관심 영역을 설정하는 동작은,
    상기 사용자의 액션 단위로 손 글씨를 구분하는 동작,
    최근 액션에 관련된 적어도 하나의 손 글씨에 기반하여 상기 적어도 하나의 관심 영역을 설정하는 동작을 포함하는 방법.
  14. 제13항에 있어서, 상기 정렬을 수행하는 동작은,
    상기 최근 액션에 관련된 적어도 하나의 손 글씨의 대상 객체에 기반하여, 사용자 의도에 관련된 대상 객체를 정렬하는 동작을 포함하는 방법.
  15. 제13항에 있어서, 상기 대상 객체를 인식하는 동작은,
    상기 적어도 하나의 관심 영역의 제1 객체를 식별하는 동작,
    이전 액션에 따른 손 글씨의 객체들 중 상기 제1 객체와 연관된 제2 객체를 식별하는 동작,
    상기 제1 객체와 상기 제2 객체를 상기 대상 객체로 결정하는 동작,
    상기 제1 객체와 상기 제2 객체를 포함하는 대상 관심 영역을 설정하는 동작,
    상기 대상 관심 영역에 기반하여 상기 제1 객체와 상기 제2 객체를 함께 정렬하는 동작을 포함하는 방법.
  16. 제15항에 있어서, 상기 정렬하는 동작은,
    상기 제1 객체를 상기 제2 객체에 대응하게 보정하는 동작을 포함하는 방법.
  17. 제16항에 있어서, 상기 정렬하는 동작은,
    상기 제2 객체에 기반하여 상기 제1 객체의 라인 보정 및/또는 크기 보정 여부를 결정하는 동작,
    결정하는 결과에 기반하여 상기 제1 객체의 라인 및/또는 크기 중 적어도 하나를 보정하는 동작,
    상기 제1 객체의 보정이 적용된 상태에서, 상기 제1 객체와 상기 제2 객체를 정렬하는 동작을 포함하는 방법.
  18. 제13항에 있어서,
    제1 손 글씨 입력에 대응하는 적어도 하나의 제1 객체에 기반하여 제1 관심 영역을 설정 및 상기 제1 객체를 제1 액션에 매핑하는 동작,
    상기 제1 액션을 위한 제1 정렬 트리거에 기반하여, 상기 제1 액션에 매핑된 상기 제1 객체를 정렬하는 동작,
    제2 손 글씨 입력에 대응하는 적어도 하나의 제2 객체에 기반하여 제2 관심 영역을 설정 및 상기 제2 객체를 제2 액션에 매핑하는 동작,
    상기 제2 액션을 위한 제2 정렬 트리거에 기반하여, 제1 액션에 매핑된 상기 제1 객체는 유지하는 상태에서, 상기 제2 액션에 매핑된 상기 제2 객체를 정렬하는 동작을 포함하는 방법.
  19. 제18항에 있어서,
    상기 제1 손 글씨 및 상기 제2 손 글씨는 상기 제1 액션과 상기 제2 액션에 따른 액션 단위로 구분되고,
    상기 제1 액션의 상기 제1 객체 중 상기 제2 액션의 상기 제2 객체와 교차되는 적어도 일부는 상기 제2 객체와 연관되고, 상기 제2 객체와 함께 정렬되는 것을 특징으로 하는 방법.
  20. 제18항에 있어서,
    상기 제1 객체 중 상기 제2 객체에 연관된 적어도 하나의 제3 객체를 식별하는 동작,
    상기 제2 객체를 상기 제3 객체에 기반하여 보정하는 동작,
    상기 보정된 제2 객체와 상기 제3 객체를 연관지어 정렬하는 동작을 포함하는 방법.
KR1020200097114A 2020-08-04 2020-08-04 전자 장치에서 손 글씨 입력 제공 방법 및 장치 KR20220017063A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200097114A KR20220017063A (ko) 2020-08-04 2020-08-04 전자 장치에서 손 글씨 입력 제공 방법 및 장치
PCT/KR2021/008737 WO2022030776A1 (ko) 2020-08-04 2021-07-08 전자 장치에서 손 글씨 입력 제공 방법 및 장치
US18/105,931 US11995308B2 (en) 2020-08-04 2023-02-06 Method and device for providing handwriting input in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200097114A KR20220017063A (ko) 2020-08-04 2020-08-04 전자 장치에서 손 글씨 입력 제공 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220017063A true KR20220017063A (ko) 2022-02-11

Family

ID=80117357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200097114A KR20220017063A (ko) 2020-08-04 2020-08-04 전자 장치에서 손 글씨 입력 제공 방법 및 장치

Country Status (3)

Country Link
US (1) US11995308B2 (ko)
KR (1) KR20220017063A (ko)
WO (1) WO2022030776A1 (ko)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4741977B2 (ja) 2006-05-23 2011-08-10 キヤノン株式会社 手書文字処理装置及び手書文字処理方法
KR101623213B1 (ko) 2009-12-24 2016-05-31 삼성전자주식회사 펜 입력 장치 및 방법
US20120318077A1 (en) 2011-06-15 2012-12-20 Paca Roy Ergonomically enhanced System and Method for Handwriting
JP5723697B2 (ja) 2011-06-30 2015-05-27 シャープ株式会社 手書き入力機能付表示装置
KR20140089915A (ko) * 2013-01-08 2014-07-16 주식회사 인프라웨어 필기 문자 조정 방법 및 장치
JP2014153447A (ja) 2013-02-06 2014-08-25 Seiko Epson Corp プロジェクター及びプロジェクターにおける軌跡画像表示方法
KR101467295B1 (ko) * 2013-03-18 2014-12-01 주식회사 피엔에프 필기 정렬이 가능한 정보 입력 장치 및 방법
KR102245706B1 (ko) 2013-09-17 2021-04-28 삼성전자주식회사 데이터 처리 방법 및 그 전자 장치
KR102063766B1 (ko) 2013-09-17 2020-01-08 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
KR20160062565A (ko) * 2014-11-25 2016-06-02 삼성전자주식회사 디바이스 및 디바이스의 필기 컨텐트 제공 방법
KR20160062566A (ko) * 2014-11-25 2016-06-02 삼성전자주식회사 필기 문자를 보정하는 디바이스 및 방법
KR102075433B1 (ko) * 2014-11-28 2020-02-11 삼성전자주식회사 필기 입력 장치 및 그 제어 방법
US10489051B2 (en) 2014-11-28 2019-11-26 Samsung Electronics Co., Ltd. Handwriting input apparatus and control method thereof
US10410316B2 (en) 2015-12-08 2019-09-10 Myscript System and method for beautifying digital ink
JP7166580B2 (ja) 2017-09-19 2022-11-08 有限会社オフィス・アイカワ 言語学習方法
US11023661B2 (en) 2018-05-03 2021-06-01 Microsoft Technology Licensing, Llc Visually enhanced digital ink
JP6670345B2 (ja) * 2018-06-07 2020-03-18 シャープ株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
US20210350122A1 (en) * 2020-05-11 2021-11-11 Apple Inc. Stroke based control of handwriting input

Also Published As

Publication number Publication date
US20230185448A1 (en) 2023-06-15
WO2022030776A1 (ko) 2022-02-10
US11995308B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
KR20220050020A (ko) 플렉서블 디스플레이를 포함하는 전자 장치 및 전자 장치의 화면 운영 방법
US20240029461A1 (en) Electronic device for processing handwriting input on basis of learning, operation method thereof, and storage medium
KR20220017065A (ko) 캡쳐 기능 제공 방법 및 그 전자 장치
US20230177648A1 (en) Electronic device, and method for processing writing input thereof
US11989375B2 (en) Electronic device for typo correction and method thereof
EP4170545A1 (en) Method and device for aligning handwriting
KR102468082B1 (ko) 필기 입력에 대한 보정 방법, 이를 위한 전자 장치 및 저장 매체
KR20230017538A (ko) 전자 장치 및 필기 인식 방법
US20220012409A1 (en) Electronic device for converting handwriting to text and method therefor
US11995308B2 (en) Method and device for providing handwriting input in electronic device
KR20220109254A (ko) 전자 장치 및 전자 장치에서 스트로크 분석 기반 도형 인식 방법
KR20220014709A (ko) 슬라이딩 가능한 전자 장치 및 이의 제어 방법
US20240020996A1 (en) Electronic device and method for identifying sentence indicated by strokes
US20220237936A1 (en) Electronic device and method for shape recognition based on stroke analysis in electronic device
US12008233B2 (en) Electronic device and method for generating a user-customized keypad based on usage characteristics
US20220121357A1 (en) Electronic device and method for operating keypad thereof
EP4280043A1 (en) Electronic apparatus comprising foldable display and control method thereof
US20220350478A1 (en) Electronic device for processing handwriting input and method for operating the same
KR20230009608A (ko) 롤러블 디스플레이를 포함하는 전자 장치 및 필기 인식 방법
KR20220086896A (ko) 필기 입력을 처리하는 전자 장치 및 그 작동 방법
KR20220049694A (ko) 전자 장치 및 전자 장치의 키패드 운영 방법
KR20240039983A (ko) 텍스트를 표시하기 위한 전자 장치 및 그 방법
KR20230109471A (ko) 윈도우를 이용하여 화면을 제공하는 방법 및 이를 지원하는 전자 장치
KR20230118429A (ko) 사용자 입력에 대한 인식 성능 개선 방법 및 전자 장치
KR20240001637A (ko) 전자 장치 및 그의 필기 기능을 지원하는 방법

Legal Events

Date Code Title Description
A201 Request for examination