KR20190113741A - 핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법 - Google Patents

핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20190113741A
KR20190113741A KR1020197007656A KR20197007656A KR20190113741A KR 20190113741 A KR20190113741 A KR 20190113741A KR 1020197007656 A KR1020197007656 A KR 1020197007656A KR 20197007656 A KR20197007656 A KR 20197007656A KR 20190113741 A KR20190113741 A KR 20190113741A
Authority
KR
South Korea
Prior art keywords
connector
diagram
diagram elements
points
elements
Prior art date
Application number
KR1020197007656A
Other languages
English (en)
Other versions
KR102470522B1 (ko
Inventor
로뱅 멜리낭
Original Assignee
마이스크립트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이스크립트 filed Critical 마이스크립트
Priority claimed from PCT/EP2017/082816 external-priority patent/WO2018109084A1/en
Publication of KR20190113741A publication Critical patent/KR20190113741A/ko
Application granted granted Critical
Publication of KR102470522B1 publication Critical patent/KR102470522B1/ko

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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • G06V30/422Technical drawings; Geographical maps

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)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Character Discrimination (AREA)
  • Image Generation (AREA)

Abstract

다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템 및 방법이 제공된다. 시스템 및 방법은, 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들의 디스플레이를 야기하고, 적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하고, 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하고, 맵핑된 포인트들을 정의하기 위해 기하학적 구조들 상으로 연결된 다이어그램 엘리먼트들에 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하고, 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 기하학적 구조 상의 맵핑된 포인트들의 포지션들을 조정하며, 그리고 조정된 연결 포인트들로서 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 맵핑된 포인트의 맵핑에 따라 다이어그램 엘리먼트들의 재디스플레이를 야기하도록 구성된다.

Description

핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법
관련 출원들에 대한 상호 참조
본 출원은 2016 년 12 월 15 일 출원된 유럽 특허 출원 제 16 290 237.3 호에 대해 우선권을 주장하는, 2017 년 3 월 22 일 출원된 미국 특허 출원 제 15/465,946 호에 대해 우선권을 주장하며, 그 전체 내용은 참조로서 본 명세서에 포함된다.
기술 분야
본 개시물은 일반적으로 다양한 형상들 및 문자들의 사용자 입력 핸드라이팅을 인식할 수 있는 컴퓨팅 디바이스 인터페이스의 분야에 관한 것이다. 특히, 본 개시물은 입력된 핸드라이팅된 다이어그램 엘리먼트들 사이에서 커넥터들의 디스플레이를 실시하는 편집 동작들을 핸들링하기 위한 시스템들 및 방법들을 제공한다.
컴퓨팅 디바이스는 일상 생활에서 더욱 더 유비쿼터스화되고 있다. 이들은 컴퓨터 데스크탑, 랩톱 컴퓨터, 태블릿 컴퓨터, e-북리더, 모바일 폰, 스마트 폰, 웨어러블 컴퓨터, 글벌 포지셔닝 시스템(Global Positioning System; GPS) 유닛 엔터프라이즈 데이터 보조기 (Enterprise Data Assistant; EDA), 개인용 디지털 보조기 (Personal Digital Assistant; PDA), 게임 콘솔 등의 형태를 취한다. 또한, 컴퓨팅 디바이스는 자동차, 트럭, 농기계, 제조 장비, 건물 환경 제어 (예를 들어, 조명, HVAC) 및 가정용 및 상업용 기기와 같은 차량 및 장비에 통합되고 있다.
컴퓨팅 디바이스는 일반적으로 적어도 하나의 프로세싱 엘리먼트, 예컨대 중앙 프로세싱 유닛 (CPU), 일부 형태의 메모리, 및 입력 및 출력 디바이스들로 구성된다. 다양한 컴퓨팅 디바이스들 및 이들의 후속 사용들은 다양한 인터페이스들 및 입력 디바이스들을 필요로 한다. 하나의 이러한 입력 디바이스는 터치 스크린 또는 터치 패드와 같은 터치 감지 표면이며, 여기서 사용자 입력은 사용자의 손가락 또는 펜 또는 스타일러스와 같은 도구 및 터치 감지 표면 사이의 접촉을 통해 수신된다. 다른 입력 디바이스는 입력 표면 위에서 사용자에 의해 이루어진 제스처들을 감지하는 입력 표면이다. 추가 입력 디바이스는 비접촉 표면과의 접촉 또는 비접촉 상호작용들의 상대적 포지션을 검출하는 포지션 검출 시스템이다. 이러한 입력 방법들 중 임의의 것은 일반적으로 핸드라인팅 인식 시스템 또는 방법을 사용하여 입력이 해석 (interprete) 되는 텍스트 및 드로잉들의 핸드라이팅된 또는 핸드-드로잉된 입력을 위해 사용될 수 있다.
컴퓨팅 디바이스에서 핸드라이팅 인식의 하나의 애플리케이션은 조판 (typese) 버전으로 변환될 컴퓨팅 디바이스 상에 핸드-드로잉되는 다이어그램들의 생성에 있다. 다이어그램들은 배열 및 관계들을 설명하거나 보여주는 것이다 (파트 기준). 다이어그램들은 일반적으로 임의의 또는 특정 의미를 갖는 형상 및 이러한 형상들과 관계가 있는 텍스트를 포함한다. 플로우 차트, 조직도, 개념 맵, 스파이더 맵, 블록/아키텍처 다이어그램, 마인드 맵, 블록 다이어그램, 벤 다이어그램 및 피라미드와 같은 다양한 유형의 다이어그램들이 있다. 가능한 다이어그램들의 일부 조판 및 핸드라이팅된 예들의 묘사들이 도 5 및 도 6 에 예시된다.
도 1a 및 도 1b 는 각각, 다이어그램 블록들 (12) 사이의 관계들을 연결하거나 지정하는 상이한 유형 (예를 들어, 직선 화살표, 곡선 화살표) 의 커넥터들 (14), 및 다이어그램 블록들 또는 컨테이너들 (12) 를 정의하는 형상들을 다양하게 갖는 조판 및 핸드라이팅된 예시의 개념 맵들 (10) 을 나타낸다. 또한, 도 1b 에서, 컨테이너 (12) 는 텍스트 (16) 를 포함한다. 일반적으로 개념 맵들에서 블록들 간의 연결들은 개념적으로 관련되거나 의존적인 엘리먼트들 또는 그러한 블록들에서 텍스트에 의해 정의된 테마들을 정의한다. 블록들 자체는 개념 맵에 제시되지 않을 수도 있고 대신 텍스트 (예를 들어, 연관된 형상이나 컨테이너를 갖지 않는 텍스트 블록들에 정의됨) 는 커넥터들에 의해 연결될 수도 있다.
도 2a 및 도 2b 는 각각, 마인드 맵들의 소정의 피처들 또는 상태들에 대한 경로들 (18) 과 다이어그램 블록들 (12) 사이의 관계를 연결하거나 지정하는, 상이한 유형 (예를 들어, 직선, 곡선) 의 커넥터들 (14), 다이어그램 블록들 또는 컨테이너들 (12) 을 정의하는 형상을 다양하게 갖는 조판 및 핸드라이팅된 예시의 마인드 맵들 (20) 을 나타낸다. 또한, 도 2b에서, 컨테이너들 (12) 및 경로들 (18) 은 연관된 텍스트 (16) 를 갖는다. 일반적으로 마인드 맵들에서 블록들 사이의 연결들은 그러한 블록들에서 텍스트에 의해 정의된 테마들 또는 중앙 엘리먼트들로부터 가능한 대안의 상태들을 정의하고, 경로들은 그러한 경로들 상에 텍스트에 의해 정의된 각각의 대안의 상태의 핵심적인 피처들을 정의한다. 블록들 자체는 마인드 맵에 제시되지 않을 수도 있고 대신 텍스트 (예를 들어, 연관된 형상이나 컨테이너가 없는 텍스트 블록들에 정의됨) 가 커넥터들 및 경로들에 의해 연결될 수도 있다.
도 3a 및 도 3b 는 각각, 다이어그램 블록들 (12) 사이의 관계들을 연결하거나 지정하는, 상이한 유형 (예를 들어, 직선 화살표, 구부러진 화살표, 분기 라인) 의 커넥터들 (14), 및 상이한 유형 (예를 들어, 타원형, 직사각형, 다이아몬드형) 의 다이어그램 블록들 또는 컨테이너들 (12) 을 정의하는 형상들을 다양하게 갖는 조판 및 핸드라이팅된 예시의 플로우챠트들 또는 다이어그램들 (30) 을 나타낸다. 또한, 도 3b 에서, 컨테이너들 (12) 은 텍스트 (16) 를 포함하며; 텍스트는 또한 커넥터들과 연관될 수도 있다. 일반적으로, 플로우챠트들에서, 블록들 사이의 연결들은 그러한 블록들에서 텍스트에 의해 정의된 절차상 관련되거나 의존적인 엘리먼트들 또는 단계들을 정의한다. 블록들 자체는 플로우챠트에 제시되지 않을 수도 있고 대신 텍스트 (예를 들어 연관된 형상이나 컨테이너를 갖지 않는 텍스트 블록들에 정의됨) 가 커넥터들에 의해 연결될 수도 있다.
도 4a 및 도 4b 는 각각, 다이어그램 블록들 (12) 사이의 관계들을 연결하거나 지정하는, 상이한 유형 (예를 들어, 직선 라인, 구부러진 라인, 분기 라인) 의 커넥터들 (14), 및 다이어그램 블록들 또는 컨테이너들 (12) 을 정의하는 형상들을 다양하게 갖는 조판 및 핸드라이팅된 예시의 조직도 또는 다이어그램들을 나타낸다. 또한, 도 4b 에서, 컨테이너들 (12) 은 텍스트 (16) 를 포함한다. 일반적으로, 조직도에서, 블록들 사이의 연결들은 그러한 블록들에서 텍스트에 의해 정의된 조직 또는 그룹의 멤버들 또는 기능들의 계층적 관계들을 정의한다. 블록들 자체는 조직도에 제시되지 않을 수도 있고 대신 텍스트 (예를 들어, 연관된 형상 또는 컨테이너를 갖지 않는 텍스트 블록들에 정의됨) 가 커넥터들에 의해 연결될 수도 있다.
도 5a 및 도 5b 는 각각, 내포된 (nested) 블록들 사이를 포함한, 다이어그램 블록들 (12) 사이의 관계들을 정의하거나 지정하는 커넥터들 (14), 및 내포된 관계들 (예를 들어, 다른 컨테이너들 (12) 내부의 컨테이너들(12)) 을 갖는 다이어그램 블록들 또는 컨테이너들 (12) 을 정의하는 형상들을 다양하게 갖는 조판 및 핸드라이팅된 예시의 블록/아키텍처 도면들 (50) 을 나타낸다. 또한, 도 5b 에서, 컨테이너들 (12) 및 커넥터들은 연관된 텍스트 (16) 를 갖는다. 일반적으로, 아키텍처 도면들에서, 내포된 블록들은 디바이스 또는 프로세스 컴포넌트들의 배열 또는 소유를 정의하고, 블록들 사이의 연결들은 그러한 블록들에서 텍스트에 의해 정의된 블록들 사이의 기능적 관계들을 정의한다.
도 6a 및 도 6b 는 각각, 다이어그램 블록들 (12) 사이의 관계들을 연결하거나 지정하는 커넥터들 (14) 및 다이어그램 블록들 또는 컨테이너들 (12) 을 정의하는 형상들을 다양하게 갖는 조판 및 핸드라이팅된 예시의 스파이더 맵들 (60) 을 나타낸다. 또한, 도 6b 에서, 컨테이너들 (12) 및 커넥터들은 연관된 텍스트 (16) 을 갖는다. 일반적으로, 스파이더 맵들에서, 블록들 및/또는 텍스트 사이의 연결들은 텍스트에 의해 정의된 중심 엘리먼트 또는 테마로부터 의존적인 관계들 또는 상태들을 정의한다.
도 1 내지 도 6 에 도시된 다이어그램들은 단지 예들일 뿐이며, 각각의 다이어그램 유형에 대해 묘사된 것들과 다른 또는 상이한 엘리먼트들, 또는 묘사된 엘리먼트들 자체의 상이한 유형들 또는 형태들이 부가적으로 또는 대안으로 다이어그램들에서 제시될 수도 있다. 또한, 이러한 다이어그램 유형들의 다른 정의들은 그 조합들 또한 가능하다. 다이어그램들에서 텍스트 및 형상들 (컨테이너들을 갖는 연결들 또는 이들이 없는 연결들) 의 베이스 컴포넌트들을 조합하는 이러한 무수한 변형들은 컴퓨팅 디바이스에 핸드-드로잉된 또는 라이팅된 콘텐츠로서 입력되는 이러한 엘리먼트들의 정확한 인식을 위한 이슈들을 야기할 수 있다. 다이어그램들은 특히 교육 및 비즈니스 설정들에서 사용되며, 여기서 컴퓨팅 디바이스의 사용자는 예를 들어, 강의 또는 미팅 동안 논의되는 개념들, 이슈들 또는 솔루션들을 캡처하기 위해 다이어그램을 생성한다. 이것은 보통 상대적 포지션 검출 시스템에 의해 모니터링되는 표면 또는 터치 감응 표면 상에 핸드-드로잉된 입력을, 디바이스의 통신 링크를 통해 원격으로 또는 디바이스에서 로컬로 수용하고 해석하는 컴퓨팅 디바이스 상의 핸드라이팅된 다이어그램 또는 스케치 애플리케이션을 론칭함으로써 사용자에 의해 행해진다.
통상적으로, 이러한 핸드라이팅된 다이어그램 애플리케이션들은 상술한 다이어그래밍의 복잡성을 핸들링하는 그 능력에 제한되고 일반적으로 사용자의 원래 의도를 반영하지 않는 절충안을 수용하거나 거동들을 채택하도록 사용자들을 제약한다. 그 결과, 일부 종래의 핸드라이팅된 다이어그래밍 애플리케이션들은 사용자들이 선택을 위해 메뉴를 네비게이트하고 형상들을 드로잉하며 형상들과 관련하여 텍스트를 삽입하도록 한다. 이로써, 사용자들은 자연스럽게 또는 자유롭게 형상들 및 커넥터들을 드로잉할 수 없다.
일부 종래 애플리케이션들은 사용자들에게 제공된 합리적인 창조적 자유로 핸드-드로잉된 형상들 및 핸드라이팅된 텍스트를 잘 인식한다. 하지만, 엘리먼트들을 부가, 생략 또는 대체하기 위해 다이어그램들의 엘리먼트들을 편집하는 것과 같이 드로잉된 다이어그램들을 변경하고, 전개되는 개념에 다이어그램을 채택하고, 다이어그램의 유형을 변환하는 등의 능력은, 소정의 동작들만이 이용가능하고, 특히 예를 들어 연결된 컨테이너들과 같은 인식된 관계들을 유지하면서 다이어그램 엘리먼트들의 상대적 포지션들의 조종들에 관하여 다이어그램의 조판 버전 상에서만 이용가능하고, 핸드라이팅된 입력, 이른바 디지털 잉크 상에서는 아닌 경우 제한되며, 상술한 바와 같이, 메뉴를 통해 행해질 선택 또는 학습된 제스처들을 필요로 한다.
예를 들어, 미국 특허 제 8,014,607 호는 디지털 잉크 상에서 직접 소정의 편집 동작들이 있도록 할 수 있는 추론 모드 프로토콜을 기재한다. 하지만, 기재된 동작들은 매우 제한적이다. 또한, 인식된 관계들을 유지하면서 디지털 잉크에 다이어그램 엘리먼트들의 상대적 포지션을 조종하는 능력에 대해 제공되는 솔루션이 없다. 미국 특허 제 6,525,749 호는 오브젝트들 사이의 잉크들이 기하학적으로 변환되어 특징적인 형상을 유지하고 이동된 그들의 링킹 단부 포인트들을 갖는 재포지셔닝 동작들에 관하여 디지털 잉크 상의 상대적 조종들을 기재한다. 하지만, 사용자들에 대해 예상되거나 만족스러운 방식으로 이러한 변환들을 달성하는 방식에 관한 개시는 없다.
미국 특허 제 7,394,935 호는 또한, 재포지셔닝 동작들 및 리사이징에 관하여 디지털 잉크 상의 상대적 조종들을 기재한다. 하지만, 이러한 동작들에서, 연결 포인트 (connection point) 들이 유지되어, 디지털 잉크가 조종에 따라서만 스케일링되고, 이로써 사용자는 디지털 잉크를 그 원래 드로잉된 치수들로 복귀하기 위한 추가 상호작용을 수행하는 것을 필요로 하며, 예를 들어 그 연결된 컨테이너(들)로부터 멀리 컨테이너를 이동하면 커넥터가 상이한 형태로 리사이징되거나 변경될 때 (예를 들어, 직선에서 구부러짐) 커넥터의 디지털 잉크를 근사화하는 백본 (수평 및 수직 라인들) 을 재컴퓨팅함으로써 커넥터들이 "리플로우" 되거나, 커넥터로 하여금 x 및 y 치수들 양자 모두에서 스케치하게 한다. 이것은 관련된 미국 특허 제 7,324,691 호와 관련하여 기재된 바와 같이, 높은 곡률점 (cups) 에서 세그먼트화를 통한 커넥터 잉크의 법선화를 통해 행해질 수도 있는 디지털 잉크의 재생성을 필요로 한다. 따라서, 결과의 조종된 디지털 잉크는 원래 드로잉된 잉크와 상당히 상이할 수도 있어서 사용자들에 의한 개입을 필요로 한다.
하기의 본 명세서에 기재되는 본 개시물의 예들은 휴대용 및 비휴대용 컴퓨팅 디바이스들 상에 핸드-드로잉된 및 핸드라이팅된 콘텐츠를 캡처, 프로세싱, 및 관리하기 위한 시스템들, 방법들 및 소프트웨어를 제공한다.
본 개시물의 일부 구현들에서, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템이 제공된다. 컴퓨팅 디바이스는 프로세서 및 프로세서의 제어 하에서 입력되는 핸드-드로잉된 다이어그램 엘리먼트들을 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독 가능 매체를 포함한다. 적어도 하나의 비일시적 컴퓨터 판독 가능 매체는, 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들의 디스플레이를 야기하고, 적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하고, 연결된 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하고, 맵핑된 포인트들을 정의하기 위해 기하학적 구조들 상으로 연결된 다이어그램 엘리먼트들의 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하고, 적어도 하나의 식별된 커넥터 또는 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 기하학적 구조 상의 맵핑된 포인트들의 포지션들을 조정하며, 그리고 조정된 연결 포인트들로서 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 맵핑된 포인트들의 맵핑에 따라 다이어그램 엘리먼트들의 재디스플레이를 야기하도록 구성된다.
시스템의 일부 구현들에서, 적어도 하나의 커넥터는 커넥터의 특징들 및 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 식별된다. 또한, 적어도 하나의 식별된 커넥터는 비선형 커넥터 및/또는 곡선 커넥터이다.
시스템의 일부 구현들에서, 적어도 하나의 비일시적 컴퓨터 판독가능 매체는 다이어그램 엘리먼트들의 재디스플레이를 야기할 때, 곡선 커넥터의 곡률 반경을 유지하도록 구성된다.
시스템의 일부 구현들에서, 상호작용적 잉크는 디지털 잉크이다.
본 개시물의 일부 구현들에서, 컴퓨팅 디바이스 상에 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법이 제공된다. 컴퓨팅 디바이스는 프로세서, 및 프로세서의 제어 하에서 입력되는 핸드-드로잉 다이어그램 엘리먼트를 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함한다. 방법은, 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들을 디스플레이하는 단계, 적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하는 단계, 연결된 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하는 단계, 맵핑된 포인트들을 정의하기 위해 기하학적 구조들 상으로 연결된 다이어그램 엘리먼트들의 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하는 단계, 적어도 하나의 식별된 커넥터 또는 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 기하학적 구조 상의 맵핑된 포인트들의 포지션들을 조정하는 단계, 및 조정된 연결 포인트들로서 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 맵핑된 포인트들의 맵핑에 따라 다이어그램 엘리먼트들을 재디스플레이하는 단계를 포함한다.
방법의 일부 구현들에서, 방법은 커넥터의 특징들 및 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 적어도 하나의 커넥터를 식별하는 단계를 포함한다. 또한, 적어도 하나의 식별된 커넥터는 비선형 커넥터 및/또는 곡선 커넥터이다.
방법의 일부 구현들에서, 방법은 다이어그램 엘리먼트들을 재디스플레이할 때, 곡선 커넥터의 곡률 반경을 유지하는 단계를 더 포함한다.
방법의 일부 구현들에서, 상호작용적 잉크는 디지털 잉크이다.
일부 구현들에서, 컴퓨터 판독가능 프로그램 코드가 수록되는 비일시적 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결을 관리하기 위한 방법을 구현하기 위해 실행되도록 적응될 수도 있다. 컴퓨팅 디바이스는 프로세서, 및 프로세서의 제어 하에서 입력되는 핸드-드로잉 다이어그램 엘리먼트를 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함한다. 방법은, 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들을 디스플레이하는 단계, 적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하는 단계, 연결된 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하는 단계, 맵핑된 포인트들을 정의하기 위해 기하학적 구조들 상으로 연결된 다이어그램 엘리먼트들에 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하는 단계, 적어도 하나의 식별된 커넥터 또는 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 기하학적 구조 상의 맵핑된 포인트들의 포지션들을 조정하는 단계, 및 조정된 연결 포인트들로서 연결된 다이어그램 엘리먼트들 상에 조정된 맵핑된 포인트들의 맵핑에 따라 다이어그램 엘리먼트들을 재디스플레이하는 단계를 포함한다.
일부 구현들에서, 비일시적 컴퓨터 판독가능 매체는 커넥터의 특징들 및 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 적어도 하나의 커넥터를 식별하는 단계를 구현한다. 또한, 적어도 하나의 식별된 커넥터는 비선형 커넥터 및/또는 곡선 커넥터이다.
일부 구현들에서, 비일시적 컴퓨터 판독가능 매체는 다이어그램 엘리먼트들을 재디스플레이할 때, 곡선 커넥터의 곡률 반경을 유지하는 단계를 구현한다.
일부 구현들에서, 상호작용적 잉크는 디지털 잉크이다.
본 시스템 및 방법은 도면들과 함께 취해진, 그 예들의 다음의 상세한 설명으로부터 보다 완전히 이해될 것이다. 도면들에서, 동일한 참조 번호들은 동일한 엘리먼트들을 나타낸다. 도면들에서:
도 1a 및 도 1b 는 각각 조판 및 핸드라이팅된 예시의 개념 맵들을 나타낸다;
도 2a 및 도 2b 는 각각 조판 및 핸드라이팅된 마인드-맵들을 나타낸다;
도 3a 및 도 3b 는 각각 조판 및 핸드라이팅된 예시의 플로우챠트들 또는 플로우 다이어그램들을 나타낸다;
도 4a 및 도 4b 는 각각 조판 및 핸드라이팅된 예시의 조직도 또는 다이어그램들을 나타낸다;
도 5a 및 5b 는 각각 조판 및 핸드라이팅된 예시의 블록/아키텍처 도면들을 나타낸다.
도 6a 및 도 6b 는 각각 조판 및 핸드라이팅된 예시의 스파이더 맵들을 나타낸다;
도 7 은 본 시스템 및 방법의 예에 따른 컴퓨팅 디바이스의 블록 다이어그램을 나타낸다;
도 8 은 본 시스템 및 방법의 예에 따른 핸드라이팅 인식을 위한 시스템의 블록 다이어그램을 도시한다;
도 9 는 본 시스템 및 방법의 예에 따른 도 8 의 핸드라이팅 인식 시스템의 상세를 도시하는 블록 다이어그램을 나타낸다;
도 10a 는 디지털 잉크로 렌더링된 예시의 핸드-드로잉된 다이어그램을 나타낸다;
도 10b 는 본 시스템 및 방법의 예에 따른 연관된 커넥터 상에서 예시의 필연적 영향을 갖는 도 10a 의 다이어그램의 블록 엘리먼트 상의 이동 동작을 나타낸다;
도 11a 및 도 11b 는 각각 본 시스템 및 방법의 예에 따라 정의된 도 10a 및 도 10b 의 다이어그램들의 연결 관계의 기하학적 특징들을 묘사하는 조판 잉크로 렌더링된 도 10a 및 도 10b 의 다이어그램들을 나타낸다;
도 12a 는 디지털 잉크로 렌더링된 예시의 핸드-드로잉된 다이어그램을 나타낸다;
도 12b 는 본 시스템 및 방법에 따른 연관된 커넥터 상에서 예시의 필연적 영향을 갖는 도 12a 의 다이어그램의 블록 엘리먼트 상의 이동 동작을 나타낸다;
도 12c 는 본 시스템 방법의 다른 예에 따른 연관된 커넥터 상에서 예시의 필연적 영향을 갖는 도 12a 의 다이어그램의 블록 엘리먼트 상의 이동 동작을 나타낸다;
도 13a, 도 13b 및 도 13c 는 각각 본 시스템 및 방법의 예에 따라 정의된 도 12a, 도 12b 및 도 12c 의 다이어그램들의 연결 관계의 기하학적 특징들을 묘사하는 조판 잉크로 렌더링된 도 12a, 도 12b, 및 도 12c 의 다이어그램들을 나타낸다;
도 14a 는 디지털 잉크로 렌더링된 예시의 핸드-드로잉된 다이어그램을 나타낸다;
도 14b 는 본 시스템 및 방법의 예에 따른 연관된 커넥터 상에서 예시의 필연적 영향을 갖는 도 14a 의 다이어그램의 블록 엘리먼트 상의 이동 동작을 나타낸다; 그리고
도 15a 및 도 15b 는 각각 본 시스템 및 방법의 예에 따라 정의된 도 14a 및 도 14b 의 다이어그램들의 연결 관계의 기하학적 특징들을 묘사하는 조판 잉크로 렌더링된 도 14a 및 도 14b 의 다이어그램들을 나타낸다.
다음의 상세한 설명에서, 다수의 특정 상세들이 관련 교시들의 철저한 이해를 제공하기 위하여 예로서 기술된다. 하지만, 본 교시들은 이러한 상세들 없이 실시될 수도 있다는 것이 당업자들에게 명백해야 한다. 다른 경우들에서, 잘 알려진 방법들, 절차들, 컴포넌트들, 및/또는 회로부가 본 교시들의 양태들을 불필요하게 모호하게 하는 것을 회피하기 위하여, 상세 없이, 상대적으로 하이-레벨로 설명되었다.
위, 아래, 상부, 하부, 최저, 최고, 수평, 수직 등과 같은 방향적 피처들에 대한 언급 및 그의 논의는, 인식될 입력이 이루어지는 입력 표면에 적용되는 바와 같이 데카르트 좌표계에 대하여 이루어진다. 게다가, 좌측 및 우측과 같은 용어는 도면들을 볼 때 참조의 독자 프레임과 관련하여 이루어진다. 또한, 본 설명에서의 용어 '텍스트' 의 사용은 임의의 기입된 언어에서의, 모든 알파뉴메릭 문자들, 및 그 스트링들 및 기입된 텍스트에서 사용되는, 아주 흔한 비알파뉴메릭 문자들, 예를 들어, 심볼들을 포괄하는 것으로서 이해된다. 더욱이, 본 설명에서의 용어 '비텍스트 (non-text)' 는 프리폼 핸드라이팅된 또는 핸드-드로잉된 콘텐츠 및 렌더링된 텍스트 및 이미지 데이터뿐만 아니라 비텍스트 콘텍스트들에서 사용되는, 비알파뉴메릭 문자들, 및 그 스트링들, 및 알파뉴메릭 문자들, 및 그 스트링들을 포괄하는 것으로서 이해된다. 또한, 이러한 도면들에 나타낸 예들은 좌측에서 우측으로 (left-to-right) 기입된 언어 콘텍스트에 있으며, 이에 따라 포지션들에 대한 임의의 언급은 상이한 방향성 포맷들을 갖는 기입된 언어들을 위해 적응될 수 있다.
본 명세서에서 설명된 다양한 기술들은 일반적으로 콘텐츠의 충실한 조판 또는 미화된 버전으로의 변환을 허용하면서, 콘텐츠의 입력된 스타일을 보유하는 방식으로 휴대용 및 비휴대용 컴퓨팅 디바이스들 상의 핸드-드로잉된 그리고 핸드라이팅된 콘텐츠의 캡처, 프로세싱 및 관리하는 것에 관한 것이다. 본 명세서에서 설명된 시스템들 및 방법들은 컴퓨팅 디바이스에 연결되거나, 또는 그 컴퓨팅 디바이스의 터치 감지 스크린과 같은 입력 표면을 통해, 또는 그 컴퓨팅 디바이스에 연결된 디지털 펜 또는 마우스와 같은 입력 디바이스를 통해, 또는 포지션 검출 시스템에 의해 모니터링되는 표면을 통해, 컴퓨팅 디바이스에 입력된 사용자들의 자연스런 기입 및 드로잉 스타일들의 인식을 활용할 수도 있다. 다양한 예들이 소위 온라인 인식 기법들을 사용하는 핸드라이팅 입력의 인식에 대하여 설명되지만, 디지털 잉크보다는 이미지들이 인식되는 오프라인 인식과 같은 인식을 위한 다른 형태들의 입력에 적용이 가능한 것으로 이해된다. 용어들 핸드-드로잉 및 핸드라이팅은 직접 디지털 또는 디지털적으로 연결된 매체 상으로의 사용자들의 손의 사용을 통한 또는 핸드-헬드 스타일러스와 같은 입력 툴을 통한 사용자들에 의한 디지털 콘텐츠의 생성을 정의하기 위해 본 명세서에서 상호교환가능하게 사용된다. 용어 "손" 은 입력 기법들의 간결한 설명을 제공하기 위해 본 명세서에서 사용되지만, 발, 입 및 눈과 같이, 유사한 입력을 위한 사용자들의 신체의 다른 부분들의 사용이 이 정의에 포함된다.
도 7 은 일 예의 컴퓨팅 디바이스의 블록 다이어그램을 나타낸다. 컴퓨팅 디바이스는 컴퓨터 데스크톱, 랩톱 컴퓨터, 태블릿 컴퓨터, 하이브리드 컴퓨터들 (2-인-1들), e-북 리더, 모바일 폰, 스마트폰, 웨어러블 컴퓨터, 디지털 시계, 상호작용적 화이트보드, 글로벌 포지셔닝 시스템 (GPS) 유닛, 기업용 디지털 보조기 (EDA), 개인용 디지털 보조기 (PDA), 게임 콘솔 등일 수도 있다. 컴퓨팅 디바이스 (100) 는 적어도 하나의 프로세싱 엘리먼트, 일부 형태의 메모리 및 입력 및/또는 출력 (I/O) 디바이스들의 컴포넌트들을 포함한다. 컴포넌트들은 서로 입력들 및 출력들, 이를 테면 커넥터들, 라인들, 버스들, 케이블들, 버퍼들, 전자기 링크들, 네트워크들, 모뎀들, 트랜스듀서들, IR 포트들, 안테나들, 또는 당업자들에게 알려진 다른 것들을 통하여 통신한다.
컴퓨팅 디바이스 (100) 의 예시된 예는 이미지들, 텍스트, 및 비디오와 같은 데이터를 컴퓨팅 디바이스로부터 출력하기 위한 적어도 하나의 디스플레이 (102) 를 갖는다. 디스플레이 (102) 는 LCD, 플라즈마, LED, iOLED, CRT, 또는 당업자들에게 알려진 바와 같이 터치 감지이거나 또는 터치 감지가 아닌 임의의 다른 적절한 기술을 사용할 수도 있다. 디스플레이 (102) 의 적어도 일부는 적어도 하나의 입력 인터페이스 (104) 와 공동-위치된다. 입력 인터페이스 (104) 는 저항성, 표면 탄성파, 용량성, 적외선 그리드, 적외선 아크릴 프로젝션, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 또는 당업자들에게 알려진 바와 같은 임의의 다른 적절한 기술과 같은 표면 채용 기술일 수도 있다. 입력 인터페이스 (104) 는 그 경계들을 분명히 식별하는 영구적인 또는 비디오-생성된 경계에 의해 바운딩될 수도 있다. 온-보드 디스플레이 대신에, 또는 그에 더하여, 컴퓨팅 디바이스 (100) 는 프로젝팅된 디스플레이 능력을 가질 수도 있거나, 프로젝팅된 디스플레이로 동작할 수도 있어서, 입력 인터페이스가 가상 표면이다. 또한, 디스플레이 자체가 별도의 형태일 수도 있고 컴퓨팅 디바이스에 연결될 수도 있다.
각각의 컴퓨팅 디바이스 (100) 는 로컬 인터페이스를 통해 통신가능하게 커플링되는 하나 이상의 추가적인 I/O 디바이스들 (또는 주변기기들) 을 포함할 수도 있다. 추가적인 I/O 디바이스들은 입력 디바이스들, 이를 테면 키보드, 마우스, 스캐너, 마이크로폰, 터치패드들, 바 코드 리더들, 레이저 리더들, 무선-주파수 디바이스 리더들, 또는 당업자들에게 알려진 임의의 다른 적절한 기술을 포함할 수도 있다. 게다가, I/O 디바이스들은 출력 디바이스들, 이를 테면 프린터, 바 코드 프린터들, 또는 당업자들에게 알려진 임의의 다른 적절한 기술을 포함할 수도 있다. 더욱이, I/O 디바이스들은 입력들 및 출력들 양자 모두를 통신하는 통신 디바이스들, 이를 테면 변조기/복조기 (모뎀; 다른 디바이스, 시스템, 또는 네트워크에 액세스하기 위함), 무선 주파수 (RF) 또는 다른 트랜시버, 텔레포닉 인터페이스, 브릿지, 라우터, 또는 당업자들에게 알려진 임의의 다른 적절한 기술을 포함할 수도 있다. 로컬 인터페이스는 통신을 가능하게 하는 추가적인 엘리먼트들, 이를 테면 제어기들, 버퍼들 (캐시들), 드라이버들, 리피터들, 및 수신기들을 가질 수도 있으며, 이들은 단순성을 위해 생략되지만 당업자들에게 알려져 있다. 게다가, 로컬 인터페이스는 다른 컴퓨터 컴포넌트들 간에 적절한 통신을 가능하게 하는 어드레스, 제어, 및/또는 데이터 커넥션들을 포함할 수도 있다.
컴퓨팅 디바이스 (100) 는 또한, 소프트웨어, 특히 메모리 (108) 에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스인 프로세서 (106) 를 포함한다. 프로세서는 임의의 주문 제작한 또는 상업적으로 입수가능한 범용 프로세서, 중앙 프로세싱 유닛 (CPU), (마이크로칩 또는 칩세트의 형태의) 반도체 기반 마이크로프로세서를 포함하는 상업적으로 입수가능한 마이크로프로세서들, 마이크로제어기, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 상태 머신, 또는 당업자들에게 알려진 소프트웨어 명령들을 실행하기 위해 설계된 그 임의의 조합일 수 있다.
메모리 (108) 는 휘발성 메모리 엘리먼트들 (예를 들어, 랜덤 액세스 메모리 (RAM, 이를 테면 DRAM, SRAM, 또는 SDRAM)) 및 비휘발성 메모리 엘리먼트들 (예를 들어, ROM, EPROM, 플래시 PROM, EEPROM, 하드 드라이브, 자기 또는 광학 테이프, 메모리 레지스터들, CD-ROM, WORM, DVD, RAID (redundant array of inexpensive disks), 다른 직접 액세스 저장 디바이스 (DASD), 또는 임의의 다른 자기식, 저항식 또는 상변화 (phase-change) 비휘발성 메모리) 중 임의의 하나 또는 조합을 포함할 수 있다. 더욱이, 메모리 (108) 는 전자, 자기, 광학, 및/또는 다른 유형들의 저장 매체들을 통합할 수도 있다. 메모리 (108) 는 다양한 컴포넌트들이 서로 원격으로 위치되지만 또한 프로세서 (106) 에 의해 액세스될 수 있는 분산형 아키텍처를 가질 수 있다. 게다가, 메모리 (108) 는 컴퓨팅 디바이스 (100) 에 의해 원격으로 액세스가능한 서버 또는 클라우드-기반 시스템에서와 같이, 디바이스로부터 원격일 수도 있다. 메모리 (108) 는 프로세서 (106) 에 커플링되어, 프로세서 (106) 는 메모리 (108) 로부터 정보를 판독하고 그 메모리 (108) 에 정보를 기입할 수 있다. 대안으로, 메모리 (108) 는 프로세서 (106) 와 일체형일 수도 있다. 다른 예에서, 프로세서 (106) 및 메모리 (108) 는 양자 모두 단일 ASIC 또는 다른 집적 회로에 상주할 수도 있다.
메모리 (108) 에서의 하나 이상의 별도의 컴퓨터 프로그램을 각각 포함할 수도 있는, 운영 시스템 (110), 입력 관리 시스템 (112), 및 입력 인식 시스템 (114) 을 포함한다. 이들 각각은 논리 함수들을 구현하기 위해 실행가능한 명령들의 순서화된 리스팅을 갖는다. 운영 시스템 (110) 은 입력 관리 시스템 (112) 및 입력 인식 시스템 (114) 의 실행을 제어하거나 이들 시스템의 기능들을 통합할 수도 있다. 운영 시스템 (110) 은 임의의 사유 운영 시스템 또는 상업적으로 또는 자유롭게 입수가능한 운영 시스템, 이를 테면 WEBOS, WINDOWS®, MAC 및 IPHONE OS®, LINUX, 및 ANDROID 일 수도 있다. 다른 운영 시스템들이 또한 활용될 수도 있는 것으로 이해된다. 대안적으로, 본 시스템 및 방법의 입력 관리 시스템 (112) 및 입력 인식 시스템 (114) 은 운영 시스템의 사용 없이 제공될 수도 있다.
입력 관리 시스템 (112) 은 (후에 상세히 논의되는) 사용자들에 의한 핸드-드로잉된 형상 및 핸드라이팅된 텍스트의 검출, 관리 및 처리에 관련된 하나 이상의 프로세싱 엘리먼트들을 포함한다. 소프트웨어는 또한 입력 인식, 상이한 기능들, 또는 양자 모두에 관련된 하나 이상의 애플리케이션들을 포함할 수도 있다. 다른 애플리케이션들의 일부 예들은 텍스트 편집기, 전화 다이얼, 연락처 디렉토리, 인스턴트 메시징 설비, 컴퓨터-지원 설계 (CAD) 프로그램, 이메일 프로그램, 워드 프로세싱 프로그램, 웹 브라우저, 및 카메라를 포함한다. 입력 관리 시스템 (112), 및 애플리케이션들은, 제조 시 컴퓨팅 디바이스 (100) 가 제공받은 프로그램(들)을 포함하고 제조 후 컴퓨팅 디바이스 (100) 에 업로드 또는 다운로드된 프로그램들을 더 포함할 수도 있다.
본 시스템 및 방법은 핸드라이팅된 텍스트 및 핸드-드로잉된 형상들, 예를 들어, 비텍스트를 포함하는, 디바이스 (100) 에 대한 핸드라이팅된 입력을 인식하기 위하여 입력 인식 시스템 (114) 을 이용한다. 지원 및 호환 능력들을 가진, 입력 인식 시스템 (114) 및 그의 컴포넌트들 중 임의의 것은, 소스 프로그램, 실행가능 프로그램 (목적 코드), 스크립트, 애플리케이션, 또는 수행될 명령들의 세트를 갖는 임의의 다른 엔티티일 수도 있다. 소스 프로그램이면, 그 프로그램은 컴파일러, 어셈블러, 인터프리터 등을 통해 트랜슬레이트되어야 하며, 이는 운영 시스템 (110) 과 관련하여 적절히 동작하도록, 메모리 (108) 내에 포함될 수도 있거나 또는 포함되지 않을 수도 있다.
더욱이, 지원 및 호환 능력들을 가진 입력 인식 시스템은 (a) 방법들 및 데이터의 클래스들을 갖는 객체 지향 프로그래밍 언어; (b) 루틴들, 서브루틴들, 및/또는 함수들을 갖는 프로시저 프로그래밍 언어 (예를 들어, C, C++, 파스칼, 베이직, 포트란, 코볼, 펄, 자바, 오브젝티브 C, 스위프트, 피톤 (Python), C# 및 에이더, 그러나 이들에 제한되지 않음); 또는 (c) 함수 프로그래밍 언어들 (예를 들어, Hope, Rex, Common Lisp, Scheme, Clojure, Racket, Erlang, OCaml, Haskell, Prolog, 및 F#, 그러나 이들에 제한되지 않음) 로서 기입될 수 있다.
대안적으로, 입력 인식 시스템 (114) 은 디바이스로부터 원격인 입력 인식 시스템, 이를 테면 서버 또는 클라우드-기반 시스템과의 통신을 위한 방법 또는 시스템일 수도 있지만, 컴퓨팅 디바이스 (100) 의 앞서-언급된 통신 I/O 디바이스들을 사용하여 통신 링크들을 통하여 컴퓨팅 디바이스 (100) 에 의해 원격으로 액세스가능하다. 게다가, 입력 관리 시스템 (112) 및 입력 인식 시스템 (114) 은 함께 동작하거나 또는 단일 시스템으로 결합될 수도 있다.
입력 인터페이스 (104) 상에 또는 이를 통해 입력된 스트로크들은 디지털 잉크로서 프로세서 (106) 에 의해 프로세싱된다. 사용자는 입력 표면으로 사용하기에 적합한 펜 또는 스타이러스와 같은 손가락 또는 일부 기구로 스트로크를 입력할 수도 있다. 사용자는 또한, 스트로크 및 제스처 신호들을 결정하기 위해 프로젝팅된 인터페이스, 예를 들어 수동 평면 표면의 이미지 프로세싱으로, 또는 마우스 또는 조이스틱과 같은 컴퓨팅 디바이스 (100) 의 주변 디바이스로, 또는 입력 표면 (104) 근방에서의 모션들을 감지하는 기술이 사용되고 있는 경우 입력 인터페이스 (104) 위에서 제스처를 행하는 것에 의해 스트로크를 입력할 수도 있다. 상호작용 유형에 관계 없이, 상호작용들은 일반적으로 프로세서 (106) 에 의해 검출되고 상호작용들을 나타내는 정보는 입력 관리 시스템 (112) 으로 통신된다. 대안으로 또는 부가적으로, 스트로크들은 예를 들어, 이미지 파일, 문서 파일 등으로서, 외부 소스로부터 메모리 (108) 에 로딩된 콘텐츠의 이미지들 또는 예를 들어, 컴퓨팅 디바이스 (100) 의 카메라로 캡처된 콘텐츠의 이미지들로부터 해석되거나, 디바이스 (100) 의 메모리 (108) 에 로딩되고 핸드라이팅된 입력으로부터 다른 디바이스로 렌더링된 디지털 잉크의 것들일 수도 있다.
스트로크는 적어도 스트로크 개시 위치, 스트로크 종료 위치, 및 스트로크 개시 및 종료 위치들을 연결하는 경로를 특징으로 한다. 그 경로를 따른 다수의 샘플 포인트들에서의 타이밍, 압력, 각도와 같은 추가 정보가 또한 (디바이스 (100) 의 디스플레이 (102) 가 그러한 것에 대한 정보를 제공하도록 구성되는 경우) 스트로크들의 더 자세한 상세를 제공하기 위해 캡처될 수도 있다. 상이한 사용자들은 물론, 약간의 변화가 있는, 동일한 오브젝트, 예를 들어, 글자 (letter), 형상 (shape), 심볼 (symbol) 을 기입할 수도 있기 때문에, 입력 인식 시스템은 정확한 또는 의도된 오브젝트로서 인식되는 동안 각각의 오브젝트가 입력될 수도 있는 다양한 방식들을 수용한다.
도 8 은 로컬 (즉, 디바이스 (100) 상에 로딩됨) 또는 원격 (즉, 디바이스 (100) 에 의해 원격으로 액세스가능함) 형태들 중 어느 하나로의, 입력 인식 시스템 (114) 의 일 예의 개략도이다. 입력 인식 시스템 (114) 은 프리프로세싱 (116), 인식 (118) 및 출력 (120) 과 같은 스테이지들을 포함한다. 프리프로세싱 스테이지 (116) 는 더 큰 정확성을 달성하고 인식 스테이지 (118) 동안의 프로세싱 시간을 감소시키기 위해 디지털 잉크를 프로세싱한다. 이 프리프로세싱은 입력을 평활화하기 위해 B-스플라인 근사화와 같은 방법들 및/또는 사이즈 정규화를 적용함으로써 스트로크 개시 및 종료 위치들을 연결하는 경로를 정규화하는 것을 포함할 수도 있다. 프리프로세싱된 스트로크들은 그 후, 스트로크들을 프로세싱하여 그것에 의하여 형성된 오브젝트들을 인식하는 인식 스테이지 (118) 로 전달된다. 인식된 오브젝트들은 그 후 핸드라이팅된 엘리먼트들/문자들 및 핸드-드로잉된 형상들의 디지털 잉크 또는 조판 잉크 버전들로서 메모리 (108) 및 디스플레이 (102) 에 출력 (120) 된다.
인식 스테이지 (118) 는 상이한 프로세싱 엘리먼트들 또는 엑스퍼트 (expert) 들을 포함할 수도 있다. 도 9 는 인식 스테이지 (118) 의 개략적 상세를 도시하는 도 8 의 예의 개략도이다. 3 개의 엑스퍼트들, 세그먼트화 엑스퍼트 (122), 인식 엑스퍼트 (124), 및 언어 엑스퍼트 (126) 가 예시되며, 이들은 동적 프로그래밍을 통하여 협업하여 출력 (120) 을 생성한다.
세그먼트화 엑스퍼트 (122) 는 표현들, 예를 들어, 단어들, 수학식들, 또는 형상들의 그룹들을 형성하기 위하여, 입력 스트로크들을 개개의 엘리먼트 가설들, 예를 들어, 알파뉴메릭 문자들 및 수학 연산자들, 텍스트 문자들, 개개의 형상들, 또는 하위 표현으로 세그먼트화하는 상이한 방식들을 정의한다. 예를 들어, 세그먼트화 엑스퍼트 (122) 는 각각의 노드가 적어도 하나의 엘리먼트 가설에 대응하고 엘리먼트들 간의 인접성 제약들이 노드 연결들에 의해 핸들링되는 세그먼트화 그래프를 획득하기 위해 원래의 입력의 연속적인 스트로크들을 그룹화함으로써 엘리먼트 가설들을 형성할 수도 있다. 대안적으로, 세그먼트화 엑스퍼트 (122) 는 상이한 입력 유형들, 이를 테면 텍스트, 드로잉들, 식들, 및 음악 기호에 대해 별도의 엑스퍼트들을 채용할 수도 있다.
인식 엑스퍼트 (124) 는 분류기 (128) 에 의해 추출된 피처들의 분류를 제공하고 세그먼트화 그래프의 각각의 노드에 대한 확률들 또는 인식 스코어들을 가진 엘리먼트 후보들의 리스트를 출력한다. 이 인식 태스크를 어드레싱하기 위해 사용될 수 있는 많은 유형들의 분류기들, 예를 들어, 서포트 벡터 머신들, 은닉 마르코프 모델들, 또는 뉴럴 네트워크들, 이를 테면 다층 퍼셉트론들, 딥, 콘볼루셔널 또는 회귀 뉴럴 네트워크들이 존재한다. 그 선택은 태스크에 대해 요망되는 복잡성, 정확성, 및 속도에 의존한다.
언어 엑스퍼트 (126) 는 언어 모델들 (예를 들어, 문법 또는 시맨틱스) 을 사용하여 세그먼트화 그래프에서의 상이한 경로들에 대한 언어적 의미 (linguistic meaning) 를 생성한다. 엑스퍼트 (126) 는 언어 정보 (130) 에 따라 다른 엑스퍼트들에 의해 제안된 후보들을 체크한다. 언어 정보 (130) 는 어휘 (lexicon), 정규 표현 (regular expression) 들 등을 포함할 수 있고, 언어 모델을 실행하기 위해 언어 엑스퍼트 (126) 에 의해 사용되는 모든 정적 데이터에 대한 스토리지이다. 언어 모델은 주어진 언어에 대한 통계 정보에 의존할 수 있다. 언어 정보 (130) 는 인식 및 사용자 상호작용들의 결과들에 따른 적응으로 또는 적응 없이 오프라인으로 컴퓨팅되고 언어 엑스퍼트 (126) 에 제공된다. 언어 엑스퍼트 (126) 는 최상의 인식 경로를 발견하는 것을 목표로 한다. 하나의 예에서, 언어 엑스퍼트 (126) 는 언어 정보 (130) 의 콘텐츠를 표현하는 최종 상태 오토마톤 (final state automaton; FSA) 과 같은 언어 모델을 탐구함으로써 이것을 행한다. 어휘 제약에 더하여, 언어 엑스퍼트 (126) 는 엘리먼트들의 주어진 시퀀스가 얼마나 자주 특정된 언어에서 나타나는지 또는 특정 사용자에 의해 사용되는지에 대한 통계 정보 모델링을 가진 언어 모델을 사용하여 세그먼트화 그래프의 주어진 경로의 해석의 언어적 가능성을 평가할 수도 있다
본 시스템 및 방법에 의해 제공된 입력 관리 시스템 (112) 은 학생들, 학업적 및 일하는 전문가들과 같은 사용자들이, 핸드라이팅된 다이그램들을 생성하고 생성된 다이어그램들의 유형, 예를 들어 플로우챠트들, 조직도들, 개념 맵들, 스파이더 맵들, 블록/아키텍처 다이어그램들, 마인드-맵들, 블록 다이어그램들, 벤 다이어그램들 및 피라미드들에 관계없이 입력 인식 시스템 (114) 을 사용하여 실질적으로 충실히 인식된 그러한 다이어그램들을 갖도록 할 수 있다. 이러한 리스트는 완전하지는 않으며 다이어그램들의 다른 유형들 또는 비유형들이 가능하다. 예를 들어, 도 1b, 도 2b, 도 3b, 도 4b, 도 5b 및 도 6b 에 도시된 핸드-드로잉된 다이어그램들의 상이한 엘리먼트들은 다이어그램 유형에 관계 없이 그 사이의 임의의 공간 및 콘텍스트 관계들과 함께 개별적으로 인식된다.
앞서 논의된 바와 같이, 이러한 다이어그램 엘리먼트들은 형상 및 테스트 엘리먼트들을 포함한다. 형상 또는 드로잉 엘리먼트들은 선형 또는 비선형 구성들로 그래픽 또는 기하학적 형성들을 정의하는 것들이며, 컨테이너들, 커넥터들 및 자유형 드로잉들을 포함한다. 텍스트 엘리먼트들은 텍스트 문자들을 포함하는 것들이며 형상 엘리먼트들 및 텍스트 블록들에 대한 라벨들 및 테스트 블록들을 포함한다. 양자의 텍스트 블록들 및 라벨들은 하나 이상의 수직 라인들에 제공된 하나 이상의 문자들, 워드들, 문장들 또는 구절들의 텍스트를 포함할 수도 있다. 텍스트 블록들은 컨테이너들의 외부 (텍스트 블록들 외부) 에 제공되거나 포함되지 않을 수도 있다. 외부 텍스트 블록들은 컨테이너들 또는 다이어그램의 다른 엘리먼트들과 관련되지 않을 수도 있거나 다른 다이어그램 엘리먼트들과 직접 관련될 수도 있다,
또한, 본 시스템 및 방법에 의해 제공된 입력 관리 시스템 (112) 은, 사용자들이 이러한 형상들 및 텍스트를, 이들이 기술에 의해 느려지지 않으면서 페이퍼 상에 있게 하면서 생성된 다이어그램들의 동작들을 편집하는 캡처를 허용하는 디지털 툴들의 파워로부터 이익을 얻기 때문에 자유롭게 핸드-드로잉하도록 할 수 있다. 특히, 형상들이 새로운 아이디어들을 위한 공간의 생성, 연결들 또는 형상 유형의 변경, 및 편집 제스처들의 핸들링을 위해 이동되고 조종되는 것을 가능하게 편집이 지원된다.
본 출원인 및/또는 양수인의 이름으로 2015 년 10 월 19 일의 우선일을 주장하여 출원되고, 전체 내용이 본 명세서에 참조로서 통합되는, 미국 특허 출원 제 14/955,174 호에서, 연결 관계의 기하학적 특징들과 관련하여, 다이어그램 엘리먼트 블록들 (예를 들어, 형상들, 컨테이너들, 텍스트 블록들) 로 커넥터들의 연결 포인트들을 이동함으로써 커넥트들 상에서 수행된 편집 동작들을 핸들링하는 시스템 및 방법의 설명이 제공된다. 이러한 기하학적 특징들은 이와 관련하여 정의된 연결 경로들 및 다이어그램 블록들의 지오메트리의 중심들을 포함한다.
특히, 이러한 이전의 개시물에서는, 라인이 연결되는 다이어그램 블록들로, 커넥터의 길이를 따라, 커넥터의 어느 단부로부터든 연장하는 라인이 정의되고, 연결 경로는 이러한 확장 또는 프로젝션 라인과 관련하여 정의된다. 커넥터가 다이어그램 블록들의 개개의 연결 경계 상에 중심이 있는 경우, 연결 경로는 다이어그램 블록들의 지오메트리의 중심들을 통과한다. 하지만, 커넥터가 개개의 연결된 경계들로부터 오프셋되거나 그 상에 중심이 없는 경우, 연결 경로는 커넥터 프로젝션 라인이 각각의 다이어그램 블록의 지오메트리의 중심을 통해 연장하는 법선 또는 수직인 라인들과 교차하는 포인트들 사이에 정의되며, 여기서 이러한 교차 포인트들은 지오메트리의 개개의 중심으로부터 유사하게 오프셋된다.
법선 라인들은 실질적으로 서로 평행하고, 이러한 유사성은 실질적으로 사용자 선택 및 드래그 또는 푸시, 리사이징과 같은 편집 동작들 동안 유지된다. 즉, 다이어그램 블록들의 상대적 포지션들이 편집 동작을 통해 변경되는 경우, 법선 라인들은 그들의 유사성을 실질적으로 유지하기 위해서 블록들의 새로운 상대적 x 및 y 포지션들에 대응하여 회전된다. 연결 경로의 교차 포인트들은 편집 동작 동안, 개개의 다이어그램 블록 내의 포인트들 중 하나 이상을 보유하는데 필요한 결과의 상대적 시프트들로 또는 이러한 시프트들 없이, 회전된 법선 라인들 상에서 유사하게 유지된다. 이로써, 연결 경로는 법선 라인들 및 그렇게 연결 경로 상에 렌더링되는 커넥터로 회전된다. 따라서, 다이어그램 블록들의 경계들에서 커넥터의 대응 연결 포인트들은 현재 회전된 커넥터에 기초하여 조정될 수도 있다. 하지만, 연결의 파라미터들보다는 오히려, 연결 그 자체가 준수 (resepct) 되기 때문에, 커넥터는 다이어그램 블록들에 연결된 채로 현저히 유지됨으로써, 사용자들에 의한 다이어그램 오브젝트들을 완전히 자유롭게 이동할 수 있다.
이러한 이전의 개시물의 다른 실시형태들에서, 다중 커넥터들을 수반하는 상황들은, 평행 커넥터들에 대한 공통 연결 경로를 정의하는 것, 및 커넥터들이 각각의 연결된 다이어그램 블록 또는 그러한 다이어그램 블록들의 지오메트리의 중심들을 연결하는 연결 경로 및 그 법선 라인들 사이에서 이루는 각도들 연결하는 각도들을 사용하여 교차된 커넥터들의 연결 포인트들을 조정하는 것과 같은, 부가 또는 상이한 기하학적 특징들을 사용함으로써 핸들링된다.
본 개시물의 시스템 및 방법에서는, 연결 관계의 추가적인 기하학적 특징들이 하나 이상의 비선형 커넥터들, 예를 들어 곡선 또는 아크 커넥터들과 연결되거나 불규칙 형상들을 갖는 하나 이상의 연결된 블록들을 갖는 하나 이상의 연결된 블록들과 같은, 추가 연결 관계들을 처리하기 위해 편집 동작들 동안 정의되고 관리된다. 이제 본 시스템 및 방법에 의해 커넥터들 상에서 수행되는 편집 동작들의 핸들링이 도 10 내지 도 15 에 도시된 예시의 다이어그램들과 관련하여 설명된다.
도 10 은 핸드-드로잉된 다이어그램 (1000) 에서 연관된 디지털 잉크 커넥터 상에서 예시의 필연적 영향을 갖는 디지털 잉크 블록 상의 이동 동작을 나타낸다. 다이어그램 (1000) 은 참조로서 앞서 통합된 미국 특허 출원 제 14/955,174 호에 묘사된 예와 유사하지만, 도 10 의 이동 동작은 본 시스템 및 방법의 예에 따른다는 것을 유의한다.
도 10a 에서, 다이어그램 (1000) 은 커넥터 (1006) 에 의해 연결된 블록 (1002) 및 블록 (1004) 를 포함한다. 핸드-드로잉된 다이어그램 (1000) 은 예를 들어, 컴퓨팅 디바이스 (100) 의 입력 인터페이스 (104) 및/또는 디스플레이 (102) 상의 디지털 잉크 다이어그램으로서 입력 관리 시스템에 의해 디스플레이될 수도 있다. 도 10b 에서, 블록 (1004) 은 조정된 커넥터 (1006') 로서 입력 관리 시스템 (112) 에 의해 커넥터의 디스플레이의 필연적 조정으로 블록 (1002) 에 대해 이동됨으로써 다이어그램 (1000) 의 편집된 버전 (1000') 을 형성한다. 디지털 잉크 엘리먼트들의 조정된 디스플레이는, 예를 들어 본 출원인 및/또는 양수인의 이름으로 2015 년 10 월 19 일의 우선일을 주장하여 출원되고, 그 전체 내용이 본 명세서 참조로서 통합되는, 미국 특허 출원 제 14/955,155 호에 기재된 바와 같은 방식으로와 같은 원래 디지털 잉크의 재렌더링된 버전들 또는 미리 정의된또는 동적 디지털 잉크 라이브러리로부터 조정된 디지털 잉크 엘리먼트들을 렌더링함으로써 수행될 수도 있다.
알 수 있는 바와 같이, 블록들 (1002 및 1004) 의 경계들로의 커넥터 (1006) 의 연결 포인트들 (i 및 ii) 은 각각, 블록 경계들의 코너들 (1002a 및 1004a) 에 관하여 조정된 커넥터 (1006') 에 대한 연결 포인트들 (iii 및 iv) 로 각각 조정된다. 커넥터의 조정된 디스플레이는 사용자에 의해 다이어그램 (1000) 에 대해 의도된 편집에 자연스럽고 준수한 것으로 나타난다. 다이어그램 엘리먼트 블록들의 경계들은 컨테이너들, 형상들과 같은, 핸드-드로잉되거나 조판 변환된, 비텍스트 엘리먼트들의 경계로서, 또는 포함되지 않은 텍스트 블록들과 같은, 핸드라이팅되거나 조판 변환된, 텍스트 엘리먼트들의 바운딩 박스에 정의될 수도 있다. 텍스트 블록들의 바운딩 박스들의 정의는 당업자에게 잘 알려져 있다,
커넥터 (1006) 의 연결 포인트들이 이동 동작 동안 성공적으로 조정되는 방식은 다이어그램 (1000) 의 조판 형태로 도 10 의 이동 동작을 나타내는 도 11 을 참조하여 설명된다. 본 명세서에서 다이어그램들의 조판된 버전은 단지 설명의 명료성을 위한 목적으로 사용되며, 다음에 설명되는 기법들은 또한 디지털 잉크 버전들에도 적용가능하다. 디지털 잉크 다이어그램 (1000) 의 조판 잉크 버전은 예를 들어, 입력 인식 시스템 (114) 으로부터 핸드-드로잉된 다이어그램 (1000) 입력의 인식된 출력 (120) 의 수신 시 입력 관리 시스템 (112) 에 의해, 컴퓨팅 디바이스 (100) 의 입력 인터페이스 (104) 및/또는 디스플레이 (102) 상에 디스플레이될 수도 있다. 이러한 프로세싱에서, 입력 관리 시스템 (112) 및/또는 입력 인식 시스템 (114) 은, 예를 들어 인식 프로세싱을 통해, 다이어그램 블록들, 커넥터들, 및 그 기하학적 특징들 및 피처들과 같은, 다이어그램 엘리먼트들을 인식하고 식별하도록 구성될 수도 있다.
도 11a 에서, 블록 (1002) 은 조판 블록 (1002b) 으로서 디스플레이되고, 블록 (1004) 은 조판 블록 (1004b) 으로서 디스플레이되며, 커넥터 (1006) 는 조판 커넥터 (1006b) 로서 디스플레이되고, 도 11b 에서 조정된 커넥터 (1006') 는 조판 커넥터 (1006b') 로서 디스플레이된다. 도 11a 는 연결 포인트 조정을 위해 본 시스템 및 방법에 의해 결정되고 사용되는 다이어그램 엘리먼트들의 관계들의 기하학적 특징들 또는 피처들을 나타낸다.
이러한 피처들은 블록들 (1002 및 1004) 의 지오메트리의 중심들 (A), 지오메트리의 개개의 중심 (A) 과 상호작용하기 위해 개개의 블록들 (1002b 및 1004b) 로 커넥터 (1006) 의 어느 단부로부터든 프로젝팅하는 커넥터 (1006) 의 확장 (대시) 라인들 (1008), 각각의 블록의 지오메트리의 중심에 관하여 정의된 타원들 (1010), 포인트들 (B) 와 지오메트리의 중심들 (A) 사이의 각각의 프로젝션 라인 (1008) 의 일부가 타원들 (1010) 의 방사상 라인을 형성하도록 개개의 확장 또는 프로젝션 라인 (1008) 이 개개의 타원들 (1010) 과 교차하는 타원들 (1010) 상의 포인트들 (B), 각각의 블록 (1002 및 1004) 의 라인들 (1012) 이 서로 평행하도록 각각의 블록의 지오메트리의 중심을 통해 연장하는 평행 (대시) 라인들 (1012), 개개의 타원들 (1010) 상의 개개의 포인트 (B) 를 교차하도록 포인트 (C) 로부터 개개의 라인 (1012) 에 법선으로 연장하는 법선 (대시) 라인들 (1014) 을 포함한다. 평행 라인들 (1012) 은 연결 포인트들 (i 및 ii) 를 연결하는 선형 라인 (즉, 본 예에서 커넥터 (1006b)) 에 대한 수직 라인들로서 정의된다. 이에 따라 연결 포인트 라인은 알 수 있는 바와 같이, 포인트들 (B 및 C) 를 연결하는 법선 라인들 (1014) 과 일치한다.
지오메트리의 중심들, 대시 라인들, 타원들 및 교차 포인트들에 대해 도시된 마크들은 단지 예시의 목적으로만 도면들에 제공되고, 통상적으로 입력 관리 시스템 (112) 에 의해 사용자들에게는 디스플레이되지 않는 것을 유의한다. 하지만, 입력 관리 시스템 (112) 의 사용자 인터페이스 (UI) 는 예를 들어, 편집 동작들 동안, 참조를 위해 그러한 마킹들을 디스플레이하기 위한 능력을 사용자들에게 제공할 수도 있다.
도 11b 에서, 이러한 마킹들은 도 10b 에 도시된 다이어그램 (1000') 의 조정된 디스플레이와 관련하여 나타낸다. 알 수 있는 바와 같이, 조정된 커넥터 (1006b') 는 블록 (1002) 에 대한 블록 (1004) 의 이동에 기인하여 조정되도록 렌더링된다. 이러한 조정에서, 평행 라인들 (1012) 은 지오메트리의 중심들 (A) 을 통과하는 것으로 유지되지만, 조정된 평행 라인들 (1012') 을 형성하기 위해 블록들 (1002 및 1004) 의 새로운 상대적 x 및 y 포지션들에 대응하여 회전된다. 이것은 다음과 같이 달성된다.
도 11a 에 추가하여 지오메트리의 2 개의 중심들 (A) 을 연결하는 연결 (대시) 라인 (1016) 이 도시된다. 연결 라인 (1016) 과 평행 라인들 (1012) 사이의 각도는 (도면들에서 이중 각도로 묘사됨) 는 입력 관리 시스템 (112) 에 의해 결정된다. 블록 (1004b) 이 블록 (1002b) 에 대해 이동될 때, 연결 라인 (1016) 은 도 11b 에 나타낸 바와 같이, 조정된 연결 라인 (1016') 을 정의하도록 이동하거나 회전하기 위해 야기된다. 입력 관리 시스템 (112) 은 조정된 평행 라인 (1012') 으로서 평행 라인들을 유사하게 이동하거나 회전함으로써 연결 및 평행 라인들 사이의 각도를 유지한다. 즉, 각도는 조정된 연결 라인 (1016') 과 조정된 평행 라인들 (1012') 사이에서 유지된다. 포인트들 (C) 은 이러한 회전을 통해 평행 라인들 (1012) 상에서 유지되지만, 조정된 평행 라인들 (1012') 상의 상대적 포지션은 또한 조정된 포인트들 (C') 로 이동될 수도 있다. 포인트들 (C') 의 조정된 포지션들은 다음과 같이 입력 관리 시스템 (112) 에 의해 결정된다.
도 11a 에 추가하여 평행 라인들 (1012) 상에 포인트들 (E) 이 도시된다. 입력 관리 시스템 (112) 은 본 예에서의 포인트들 (E) 을 그들의 최대 범위 (블록들 (1002 및 1004) 의 코너들에 개개의 포인트들 (E) 을 연결하는 라인들로 도면들에 나타냄) 에서 블록들 (1002b 및 1004b) 상으로 평행 라인들 (1012) 을 직교로 V프로젝팅함으로써 결정한다. 블록들 (1002 및 1004) 의 하나 이상의 이동 시, 입력 관리 시스템 (112) 은 블록들의 최대 범위 상으로 이제 조정된 평행 라인들 (1012') 을 직교로 프로젝팅함으로써 포인트들 (E) 의 조정된 포인트들을 결정한다.
조정된 포인트들 (C') 을 포지셔닝하기 위해서, 입력 관리 시스템 (112) 은 개개의 (미리 조정된) 평행 라인들 (1012) 상의 포인트들 (A 및 C) 사이의 (제 1) 거리 (A-C), 개개의 (미리 조정된) 평행 라인들 (1012) 상의 포인트들 (A 및 E) 사이의 (제 2) 거리 (A-E) 및 개개의 조정된 평행 라인들 (1012') 상의 조정된 포인트들 (E') 과 포인트들 (A) 사이의 (제 3) 거리 (A-E') 를 결정하고, 미리 조정된 거리 (A-E 및 A-C) 의 비율이 조정된 거리 (A-E' 및 A-C') 의 비율과 실질적으로 동일하도록 조정된 포인트들 (C') 을 포지셔닝한다. 대안으로, 거리 (A-C') 는 거리 (A-C') 가 고정된 비율로 설정되는 경우, 거리 (A-C) 가 거리 (A-E') 의 이러한 고정된 비율보다 크지 않으면, 거리 (A-C) 와 동일하게 유지될 수 있다.
조정된 포인트들 (C') 은 그 후 도 11b 에 나타낸 바와 같이, 새로운 (회전되거나 전치 (transpose) 된) 포인트들 (D) 에서 타원들 (1010) 을 교차하는, 조정된 포인트들 (C') 로부터 조정된 법선 라인들 (1014') 을 결정하기 위해 입력 관리 시스템 (112) 에 의해 사용된다. 이러한 전치된 포인트들 (D) 에서, 블록들 (1002b 및 1004b) 의 개개의 경계 상으로 그리고 전치된 포인트들 (D) 을 통해 지오메트리의 개개의 중심들 (A) 로부터 프로젝팅하는 재프로젝션 (방사상) 라인들 (1008') 이 결정된다. 개개의 재프로젝션 라인들 (1008') 이 블록 경계들과 교차하는 포인트들은 조정된 커넥터 (1006') 에 대해 조정된 연결 포인트들 (iii 및 iv) 를 정의한다.
따라서, 본 시스템 및 방법에서는, 조정된 커넥터 (1006b') 에 대해 조정된 연결 경로가 커넥터 자체보다는 오히려 다이어그램 엘리먼트 블록들에 관하여 정의된 타원들에 대해 정의된다. 따라서, 도 10 및 도 11 의 예의 기법에 의해, 커넥터들에 대한 연결 경로들은 미리 조정된 오브젝트들의 지오메트리의 중심들 주위에 정의된 타원들에 연결된 오브젝트들의 경계들 상의 미리 조정된 (제 1) 연결 포인트들을 맵핑하는 것 및 조정된 오브젝트들의 타원들로부터 연결된 오브젝트들의 경계들 상으로 조정된 (제 2) 연결 포인트들을 맵핑하는 것에 기초하여 결정되고, 이에 따라 연결 포인트들의 조정이 지오메트리의 중심들에 대하여 간접적으로 이루어진다.
본 명세서에서는 타원들이 다이어그램 엘리먼트 블록들에 의해 정의되었지만, 다이어그램 엘리먼트 블록들의 형상 및 치수들에 관련된 다른 기하학적 구조들은 치수들과 같은 연결된 다이어그램 엘리먼트들 블록들의 기하학적 특징들로부터 식별된 커넥터들의 연결의 포인트들의 맵핑을 위해 입력 관리 시스템에 의해 정의되고 결정될 수도 있다는 것을 유의한다. 이러한 기하학적 구조들은 블록들 자체의 형상 또는 경계들에 관계없이 그리고 커넥터들 자체의 특징들에 관계없이 다이어그램 엘리먼트 블록들의 연결 관계를 정의하도록 작용한다. 커넥터들의 문자들은 형상 및 선형성을 포함한다. 도 10 및 도 11 의 예는 선형 커넥터에 관련되지만, 변환 기법을 위해 사용된 기하학적 피처들은 또한 비선형 커넥터들에 대해서도 적합하다. 이제 비선형 커넥터 예들이 도 12 내지 도 15 에 관하여 기재된다.
도 12 는 핸드-드로잉된 다이어그램 (1200) 에서 연관된 디지털 잉크 커넥터 상에서 예시의 필연적 영향을 갖는 디지털 잉크 블록의 이동 동작을 나타낸다. 도 12a 에서, 다이어그램 (1200) 은 곡선 또는 아크 커넥터 (1206) 에 의해 연결된 블록 (1202) 및 블록 (1204) 를 포함한다. 도 12b 에서, 블록 (1204) 은 조정된 커넥터 (1206') 로서 커텍터의 필연적 조정 디스플레이로 블록 (120) 에 대해 이동됨으로써 다이어그램 (1200) 의 편집된 버전 (1200') 을 형성한다. 알 수 있는 바와 같이, 블록들 (1202 및 1204) 로의 커넥터 (1206) 의 연결 포인트들 (i 및 ii) 는 각각, 블록 (1204) 이 블록 (1202) 에 대해 단지 1 차원으로 (즉, 수평으로) 이동되었기 때문에 이러한 이동으로 조정되지 않는다. 하지만, 이러한 이동으로 인해, 커넥터 (1206) 의 비선형 형상 또는 곡선은 조정된 커넥터 (1206') 에서 변경되었다.
이것은 이제 다이어그램 (1200) 의 조판 형태로 도 12a 및 도 12b 의 이동 동작의 개개의 상태들을 나타내는 도 13a 및 도 13b 에 관하여 설명된다. 본 명세서에서 다이어그램들의 조판 버전은 단지 설명의 명료성을 위한 목적으로 사용되며, 다음에 설명되는 기법들은 또한 디지털 잉크 버전들에 적용가능하다.
도 13a 에서, 블록 (1202) 은 조판 블록 (1202b) 으로서 디스플레이되고, 블록 (1204) 은 조판 블록 (1204b) 으로서 디스플레이되며, 커넥터 (1206) 는 조판 커넥터 (1206b) 로서 디스플레이되고, 도 13b 에서 조정된 커넥터 (1206') 는 조판 커넥터 (1206b') 로서 디스플레이된다. 도 13a 는 연결 포인트 조정을 위한 본 시스템 및 방법에 의해 결정되고 사용되는 다이어그램 엘리먼트들의 관계들의 기하학적 특징들 및 피처들을 나타낸다.
이 피처들은 블록들 (1202 및 1204) 의 지오메트리의 중심들 (A), 지오메트리의 개개의 중심 (A) 과 교차하기 위해 개개의 블록들 (1202b 및 1204b) 로 커넥터 (1206) 의 어느 단부로부터든 프로젝팅하는 커넥터 (1206) 의 확장 (대시) 라인들 (1208), 각각의 블록의 지오메트리의 중심에 관하여 정의된 타원들 (1210), 개개의 확장 또는 프로젝션 라인 (1208) 이 지오메트리의 중심들 (A) 과 포인트들 (B) 사이의 각각의 프로젝션 라인 (1208) 의 일부가 타원 (1210) 의 방사상 라인을 형성하도록 개개의 타원 (1210) 과 교차하는 타원들 (1210) 상의 포인트들 (B), 각각의 블록 (1202 및 1204) 의 라인들이 서로 평행하도록 각각의 블록의 지오메트리의 중심을 통해 연장하는 평행 (대시) 라인들 (1212), 개개의 타원 (1210) 상의 개개의 포인트 (B) 를 교차하도록 포인트 (C) 로부터 개개의 라인 (1212) 에 법선으로 연장하는 법선 (대시) 라인들 (1014), 및 지오메트리의 2 개의 중심들 (A) 을 연결하는 연결 (대시) 라인 (1216) 을 포함한다. 평행 라인들 (1212) 은 연결 포인트들 (i 및 ii) 을 연결하는 선형 라인에 수직인 라인들로서 정의된다 (예를 들어, 본 예에서 블록들 (1202 및 1204) 의 정렬된 연결 (상부) 경계들 사이에 정의된 라인 (1218)). 따라서, 이 연결 포인트 라인 (1218) 은 포인트들 (B 및 C) 을 연결하는 법선 라인과 일치한다.
지오메트리의 중심들, 대시 라인들, 타원들 및 교차 포인트들에 대해 도시된 마크들은 단지 예시의 목적으로만 도면들에 제공되고, 통상적으로 입력 관리 시스템 (112) 에 의해 사용자들에게 디스플레이되지 않는다는 것을 유의한다. 하지만, 입력 관리 시스템 (112) 의 사용자 인터페이스 (UI) 는 예를 들어, 편집 동작들 동안 참조를 위해 그러한 마킹들을 디스플레이하는 능력을 사용자들에게 제공할 수도 있다.
도 13b 에서, 도 12b 에 도시된 다이어그램 (1200') 의 조정된 디스플레이에 관하여 나타낸다. 알 수 있는 바와 같이, 조정된 커넥터 (1206b') 는 블록 (1202) 에 대한 블록 (1204) 의 이동으로 인해 조정된대로 렌더링된다. 이러한 조정에서, 평행 라인들 (1212) 은 지오메트리의 중심들 (A) 을 통과하는 것으로 유지되지만, 조정된 평행 라인들 (1212') 을 형성하기 위해 블록들 (1202 및 1204) 의 새로운 상대적 x 및 y 포지션들에 대응하여 회전된다. 이것은 다음과 같이 달성된다.
연결 라인 (1216) 과 평행 라인들 (1212) 사이의 각도 (도면들에서 이중 각도로 도시됨) 는 입력 관리 시스템 (112) 에 의해 결정된다. 블록 (1204b) 이 블록 (1202b) 에 대해 이동될 때, 연결 라인 (1216) 은 도 13b 에 나타낸 바와 같이, 조정된 연결 라인 (1216') 을 정의하도록 이동하거나 회전하기 위해 야기된다. 입력 관리 시스템 (112) 은 조정된 평행 라인들 (1212') 과 같이 평행 라인들을 유사하게 이동하거나 회전함으로써 연결 및 평행 라인들 사이의 각도를 유지한다. 즉, 각도는 조정된 연결 라인 (1216') 과 조정된 평행 라인들 (1212') 사이에서 유지된다. 포인트들 (C) 은 이러한 회전을 통해 평행 라인들 (1212) 상에 유지되지만, 조정된 평행 라인들 (1212') 상의 상대적 포지션은 또한 조정된 포인트들 (C') 을 정의하도록 이동한다. 포인트들 (C') 의 조정된 포지션들은 다음과 같이 입력 관리 시스템 (112) 에 의해 결정된다.
도 13a 에 추가하여 평행 라인들 (1212) 상의 포인트들 (E) 이 도시된다. 입력 관리 시스템 (112) 은 개개의 평행 라인들 (1212) 상에 (도면들에 나타낸) 타원들 (1210) 의 직교 프로젝션의 최대 범위로서 포인트들 (E) 을 결정한다. 블록들 (1202 및 1204) 의 하나 이상의 이동 시, 입력 관리 시스템 (112) 은 이제 조정된 평행 라인들 (1212') 상으로 타원들 (1210) 의 최대 범위들을 직교로 프로젝팅함으로써 포인트들 (E) 의 조정된 포지션들을 결정한다.
조정된 포인트들 (C') 을 포지셔닝하기 위해, 입력 관리 시스템 (112) 은 개개의 (미리 조정된) 평행 라인들 (1212) 상의 포인트들 (A 및 C) 사이의 (제 1) 거리 (A-C), 개개의 (미리 조정된) 평행 라인들 (1212) 상의 포인트들 (A 및 E) 사이의 (제 2) 거리 (A-E), 및 개개의 조정된 평행 라인들 (1212') 상의 조정된 포인트들 (E') 과 포인트들 (A) 사이의 (제 3) 거리 (A-E') 를 결정하고, 미리 조정된 거리들 (A-E 및 A-C) 의 비율이 조정된 거리들 (A-E' 및 A-C') 의 비율과 실질적으로 동일하도록 조정된 포인트들 (C') 을 포지셔닝한다.
조정된 포인트들 (C')은 그 후 도 13b 에 나타낸 바와 같이 새로운 (회전된 또는 전치된) 포인트들 (D) 에서 타원들 (1210) 과 교차하는 조정된 포인트들 (C') 로부터 조정된 법선 라인들 (1214') 을 결정하기 위해 입력 관리 시스템 (112) 에 의해 사용된다. 이들 전치된 포인트들 (D) 에서, 개개의 지오메트리의 중심 (A) 으로부터 전치된 포인트들 (D) 을 통해 블록들 (1202b 및 1204b) 의 개개의 경계 상으로 프로젝팅하는 재프로젝션 라인들 (1208 ') 이 결정된다. 하지만, 알 수 있는 바와 같이, 본 예에서는, 전치된 포인트들 (D) 이 초기 포인트들 (C) 과 타원들 (1210) 상에서 실질적으로 동일한 위치에 있다. 따라서, 재프로젝션 라인들 (1208') 은 조정된 커넥터 (1206') 에 대한 원래의 연결 포인트들 (i 및 ii) 로서 조정된 연결을 정의하기 위해 블록 경계들과 교차한다.
하지만, 이러한 일차원 변환 예에서 연결 포인트들은 동일하게 유지되는 한편, 연결 경로는 커넥터 (1206) 의 비선형 형상으로 인해 여전히 변경된다. 특히, 이동 동작에 의해 블록들 (1202 및 1204) 사이의 거리가 증가함에 따라, 아크 커넥터 (1206) 의 곡률 반경 또한 증가된다. 즉,도 13 에 도시된 바와 같이, 연결 포인트 라인 (1218) 으로부터 커넥터 (1206) 의 아크까지의 최대 거리로서 나타낸 커넥터 (1206) 의 곡률 반경은, 블록들 (1202 및 1204) 의 여전히 정렬된 연결된 (상부) 경계들 사이에 정의된 조정된 라인 (1218') 으로부터 조정된 커넥터 (1206') 의 아크까지의 최대 거리로서 도 13b 에 나타낸, 조정된 커넥터 (1206') 의 곡률 반경 (r') 까지 증가된다. 유사하게, 곡률 반경은 분리 거리가 증가되었던 경우, 증가되는 대신 감소될 것이다.
이동된 블록들의 연결 포인트들은 연결 관계를 준수하는 방식으로 렌더링되지만, 특히 편집된 다이어그램 또는 다이어그램 일부는 다른 컨텐츠에 근접하는 상황들에서, 곡선 커넥터의 겉보기 성장 (또는 축소) 이 사용자들에게 불안정하게 될 수도 있다. 따라서, 연결 관계들의 추가 기하학적 피처들은 커넥터의 조정된 디스플레이가 자연스럽고 사용자에 의해 다이어그램에 대한 의도된 편집에 준수하는 것으로 보이도록 비선형 커넥터들을 조정하기 위해 입력 관리 시스템 (112) 에 의해 결정될 수도 있다. 이러한 조정의 예가 도 12c 및 도 13c 에 나타나 있다.
도 12c 에서, 블록 (1204) 은 조정된 커넥터 (1206") 로서의 커넥터의 디스플레이의 필연적 조정으로 블록 (1202) 에 대해 이동됨으로써, 다이어그램 (1200) 의 편집된 버전 (1200") 을 형성한다. 알 수 있는 바와 같이, 커넥터 (1206) 의 블록들 (1202 및 1204) 로의 연결 포인트 (i 및 ii) 은 도 12b 및 도 13b 의 예에서와 같이, 이러한 이동 동작에서 조정되지 않는다. 하지만, 이러한 이전의 예와 달리, 커넥터 (1206) 의 비선형 형상 또는 곡선은 조정된 커넥터 (1206") 에서 실질적으로 변경되지 않는다.
이러한 방식으로 커넥터를 조정하기 위해, 입력 관리 시스템 (112) 은 도 13a 에 정의된 바와 같이 커넥터 (1206) 의 곡률 반경 (r) 을 결정하고 이 곡률 반경을 변환을 통해 유지한다. 이것은 도 13c 에 나타나 있으며, 여기에서는 조정된 커넥터 (1206") 가 블록들 (1202 및 1204) 의 여전히 정렬된 연결된 (상부) 경계들 사이에 정의된 조정된 라인 (1218") 으로부터 조정된 커넥터 (1206") 의 아크까지의 최대 거리로서 정의된 곡률 반경 (r) 을 갖는다.
이러한 방식으로, 비선형 커넥터의 조정된 디스플레이는 자연스럽고 사용자에 의한 다이어그램에 대해 의도된 편집에 준수하는 것으로 보인다. 본 시스템 및 방법에서, 이러한 변환은 2 차원 편집 동작들, 예를 들어 수평 및 수직 방향 또는 x 및 y 방향 모두에 적용 가능하다. 2 차원 이동 동작의 예가 도 14 및 도 15 에 도시된다.
도 14 는 핸드-드로잉된 다이어그램 (1400) 에서 연관된 디지털 잉크 커넥터 상에서 필연적 영향을 갖는 디지털 잉크 블록상의 이동 동작을 도시한다. 도 14a 에서, 다이어그램 (1400) 은 곡선 또는 아크 커넥터 (1406) 에 의해 연결된 블록 (1402) 및 블록 (1404) 을 포함한다. 도 14b 에서, 블록 (1404) 은 조정된 커넥터 (1406") 로서의 커넥터의 필연적 조정 디스플레이로 블록 (1402) 에 대해 이동됨으로써, 다이어그램 (1400) 의 편집된 버전 (1400") 을 형성한다. 알 수 있는 바와 같이, 커넥터 (1406) 의 블록들 (1402 및 1404) 에 대한 연결 포인트 (i 및 ii) 은 각각 코너들 (1402a 및 1404a) 에 관하여 조정된 커넥터 (1406') 의 연결 포인트 (iii 및 iv) 에 대해 조정된다. 알 수 있는 바와 같이, 커넥터 (1406) 의 비선형 형상 또는 곡선은 조정된 커넥터 (1406') 에서 유지된다. 따라서, 커넥터의 조정된 디스플레이는 자연스럽고 사용자에 의한 다이어그램으로의 의도된 편집에 준수하는 것으로 보인다.
이것은 이제 다이어그램 (1400) 의 조판 형태로 도 14a 및 도 14b 의 이동 동작의 개개의 상태들을 나타내는 도 15a 및 도 15b 에 관하여 설명된다. 본 명세서 다이어그램의 조판된 버전은 단지 설명의 명료성을 위해 사용되며, 다음에 설명되는 기술은 또한 디지털 잉크 버전에도 적용 가능하다.
도 15a 에서, 블록 (1402) 은 조판 블록 (1402b) 으로서 디스플레이되고, 블록 (1404) 은 조판 블록 (1404b) 으로서 디스플레이되며, 커넥터 (1406) 는 조판 커넥터 (1406b) 로서 디스플레이되며, 도 15b 에서 조정된 커넥터 (1406) 는 조판 커넥터 (1406b') 로서 디스플레이된다. 도 15a 는 연결 포인트 조정을 위한 본 시스템 및 방법에 의해 결정되고 사용되는 다이어그램 엘리먼트들의 관계들의 기하학적 특징들 또는 피처들을 나타낸다.
이들 피처들은 블록들 (1402 및 1404) 의 지오메트리의 중심 (A), 지오메트리의 개개의 중심 (A) 과 교차하기 위해 커넥터 (1406) 의 어느 단부로부터든 개개의 블록들 (1402b 및 1404b) 로 프로젝팅하는 커넥터 (1406) 의 확장 (대시) 라인들 (1408), 각각의 블록의 지오메트리의 중심에 관하여 정의된 타원들 (1410), 포인트들 (B) 와 지오메트리의 중심들 (A) 사이의 각각의 프로젝션 라인 (1408) 의 일부가 타원 (1410) 의 방사상 라인을 형성하도록 개개의 확장 또는 프로젝션 라인 (1408) 이 개개의 타원 (1410) 을 교차하는 타원들 (1410) 상의 포인트들 (B), 각각의 블록 (1402 및 1404) 의 라인들이 서로 평행하도록 각각의 블록의 지오메트리의 중심을 통해 연장하는 평행 (대시) 라인들 (1412), 개개의 타원 (1410) 상의 개개의 포인트 (B) 를 교차하도록 포인트 (C) 로부터 개개의 라인 (1412) 에 법선으로 연장하는 법선 (대시) 라인들 (1414), 및 지오메트리의 2 개의 중심들 (A) 을 연결하는 연결 (대시) 라인 (1416) 을 포함한다. 평행 라인들 (1412) 은 연결 포인트들 (i 및 ii)(미도시) 을 연결하는 선형 라인에 수직인 라인들로서 정의된다. 따라서, 이 연결 포인트 라인은 포인트들 (B 및 C) 를 연결하는 법선 라인 (1414) 과 일치한다.
지오메트리의 중심들, 대시 라인들, 타원들 및 교차 포인트들에 대해 도시된 마크들은 단지 예시의 목적으로만 도면들에 제공되며, 통상적으로 입력 관리 시스템 (112) 에 의해 사용자에게 디스플레이되지 않는다는 것을 유의해야 한다. 하지만, 입력 관리 시스템 (112) 의 사용자 인터페이스 (UI) 는 예를 들어, 편집 동작들 동안 참조를 위해 이러한 마킹들을 디스플레이하는 능력을 사용자들에게 제공할 수도 있다. 이것은 다음과 같이 달성된다.
연결 라인 (1416) 과 평행 라인들 (1412) 사이의 각도 (도면에서 이중 각도로 도시됨) 는 입력 관리 시스템 (112) 에 의해 결정된다. 블록 (1404b) 이 블록 (1402b) 에 대해 이동될 때, 연결 라인 (1416) 은 도 15b 에 나타낸 바와 같이, 조정된 연결 라인 (1416') 을 정의하도록 이동하거나 회전하게 한다. 입력 관리 시스템 (112) 은 평행 라인들을 조정된 평행 라인들 (1412') 과 같이 유사하게 이동하거나 회전함으로써 연결 및 평행 라인들 사이의 각도를 유지한다. 즉, 각도는 조정된 연결 라인 (1416') 과 조정된 평행 라인 (1412') 사이에 유지된다. 포인트들 (C) 은 이러한 회전을 통해 평행 라인들 (1412) 상에 유지되지만, 조정된 평행 라인들 (1412') 상의 상대 포지션은 조정된 점들 (C') 을 정의하도록 이동할 수도 있다. 조정된 포인트들 (C') 의 포지션은 다음과 같이 입력 관리 시스템 (112) 에 의해 결정된다.
도 15a 에 추가하여 평행 라인들 (1412) 상의 포인트들 (E) 이 도시된다. 입력 관리 시스템 (112) 은 포인트들 (E) 을 개개의 평행 라인들 (1412) 상으로의 타원들 (1410) (도면에 나타냄) 의 직각 프로젝션의 최대 확장으로서 결정한다. 블록들 (1402 및 1404) 의 하나 이상의 이동 시, 입력 관리 시스템 (112) 은 타원들 (1410) 의 최대 범위를 이제 조정된 평행 라인들 (1412') 상으로 직각 프로젝팅함으로써 포인트들 (E) 의 조정된 포지션들을 결정한다.
조정된 포인트들 (C') 을 포지셔닝하기 위해, 입력 관리 시스템 (112) 은 개개의 (미리 조정된) 평행 라인들 (1412) 상의 포인트들 (A 및 C) 사이의 (제 1) 거리 (A-C), 개개의 (미리 조정된) 평행 라인들 (1412) 상의 포인트들 (A 및 E) 사이의 (제 2) 거리 (A-E), 및 개개의 조정된 평행 라인들 (1412') 상의 조정된 포인트들 (E') 과 포인트들 (A) 사이의 (제 3) 거리 (A-E') 를 결정하고, 미리 조정된 거리들 (A-E 및 A-C) 의 비율이 조정된 거리 (A-E' 및 A-C') 의 비율과 실질적으로 동일하도록 미리 조정된 포인트들 (C') 을 포지셔닝한다.
조정된 포인트들 (C'_ 은 그 후 도 13b 에 나타낸 바와 같이 새로운 (회전된 또는 전치된) 포인트들 (D) 에서 타원들 (1410) 과 교차하는 조정된 포인트들 (C') 로부터 조정된 법선 라인들 (1414') 을 결정하기 위해 입력 관리 시스템 (112) 에 의해 사용된다. 이들 전치된 포인트들 (D) 에서, 개개의 지오메트리의 중심 (A) 으로부터 전치된 포인트들 (D) 을 통해 블록들 (1402b 및 1404b) 의 개개의 경계 상으로 프로젝팅하는 재프로젝션 라인들 (1408') 이 결정된다. 개개의 재프로젝션 라인들 (1408') 이 블록 경계들과 교차하는 포인트들은 조정된 커넥터 (1406') 에 대해 조정된 연결 포인트들 (iii 및 iv) 을 정의한다.
이전의 예와 같이, 커넥터 (1406) 의 비선형 형상 또는 곡선은 조정된 커넥터 (1406') 에서 실질적으로 변경되지 않는다.
이러한 방식으로 커넥터를 조정하기 위해, 입력 관리 시스템 (112) 은 도 15a 에 나타낸 바와 같이 커넥터 (1406) 의 곡률 반경 (r) 을 결정하고, 블록 (1402b 및 1404b) 의 지오메트리의 중심들 (A) 의 연결 라인 (1416) 으로부터 커넥터 (1406) 의 아크까지의 최대 거리로서, 도 15b 에 나타낸 바와 같이 변환을 통해 이 곡률 반경을 유지한다. 본 예에서의 곡률 반경은 이전의 예에서와 같이 블록들의 연결된 경계들 사이에 정의된 라인보다는 지오메트리의 연결된 블록 줌심들의 연결 라인에 대해 정의된다. 하지만, 연결된 경계들 (즉, 커넥터의 연결 포인트를 갖는 블록의 경계들) 의 이러한 라인은 이 예에서 사용될 수도 있고 이전 예들에서는 연결 라인들이 사용되었다는 것을 이해해야 한다.
본 명세서에 기재된 본 시스템 및 방법의 예들에서, 입력 관리 시스템 (112) 은 예를 들어, 입력 인식 시스템 (114) 과 함께 동작하여 컴퓨팅 디바이스의 디스플레이 상에 상호작용 잉크로서 렌더링된 디지털 잉크에서의 입력 다이어그램 엘리먼트의 디스플레이를 야기하고 다이어그램 엘리먼트 블록들을 서로 연결하는 다이어그램 엘리먼트의 커넥터를 식별한다. 블록 경계들 및 지오메트리의 중심들에 의해 정의되는 설명된 예시의 타원들과 같은, 연결된 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 연결된 다이어그램 엘리먼트의 각각의 기하학적 구조를 결정함으로써, 입력 관리 시스템 (112) 은 기하학적 구조들 상으로 연결된 다이어그램 엘리먼트들의 경계들에 커넥터들의 연결 포인트들을 맵핑함으로써, 맵핑된 포인트들을 정의한다.
이들 맵핑된 포인트들의 포지션은, 그 후 사용자에 의해 디스플레이된 상호작용 잉크로, 컴퓨터 디바이스 (100) 의 입력 인터페이스 (104) 서의 상호 작용들과 같은 입력 관리 시스템 (112) 의해 연결된 블록들 또는 커넥터 자체에 대한 편집 동작이 검출될 때, 입력 관리 시스템 (112) 에 의해 조정된다. 조정된 맵핑된 포인트들은 연결된 다이어그램 엘리먼트 블록들의 경계들 상으로 조정된 맵핑된 포인트들을 맵핑함으로써 커넥터들의 조정된 연결 포인트들로 다이어그램 엘리먼트 블록들을 재디스플레이하는데 사용된다. 이러한 방식으로, 다이어그램 엘리먼트 블록들의 연결 관계는 블록들 자체의 형상 또는 경계들에 관계없이, 그리고 커넥터들 자체의 특징들에 관계없이 정의됨으로써, 편집 동작들 동안 및 그 동작들 후에 디스플레이된 다이어그램 엘리먼트들의 실질적으로 충실할 편집을 허용한다.
전술한 것은 최상의 모드 및/또는 다른 예들인 것으로 고려된 것을 설명하였지만, 다양한 수정들이 본 명세서에서 이루어질 수도 있고 본 명세서에서 개시된 요지는 다양한 형태들 및 예들로 구현될 수도 있고, 그들은 단지 일부만이 본 명세서에서 설명된 다수의 다른 애플리케이션들, 조합들, 및 환경들에서 적용될 수도 있는 것으로 이해된다. 당업자들은 개시된 양태들이 요지의 참된 정신 및 범위로부터 벗어남 없이 변경 또는 보정될 수도 있다는 것을 인식할 것이다. 따라서, 청구물은 본 기재에서의 특정 상세들, 제시들, 및 예시된 예들에 제한되지 않는다. 본 명세서에서 개시된 유리한 개념들의 진정한 범위 내에 있는 임의의 및 모든 수정들 및 변경들을 보호하도록 의도된다.
동사 "포함하다(comprise)", "포함하다(contain)", "포함하다(include)" 또는 이들의 동사활용들은 언급된 것 이외의 엘리먼트들 또는 단계들의 존재를 배제하지 않는다. 엘리먼트 또는 단계를 설명할 때 부정 관사 "a" 또는 "an" 의 사용은, 달리 언급되지 않는 한 그러한 엘리먼트들 또는 단계들의 복수의 존재를 배제하지 않는다. 예를 들어, "프로세서" 라는 용어는 달리 명시되지 않는 한 "하나 이상의 프로세서들" 을 의미하는 것으로 고려될 수도 있다.

Claims (18)

  1. 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템으로서,
    상기 컴퓨팅 디바이스는, 프로세서 및 상기 프로세서의 제어 하에서 입력되는 핸드-드로잉된 다이어그램 엘리먼트들을 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독 가능 매체를 포함하고,
    상기 적어도 하나의 비일시적 컴퓨터 판독 가능 매체는,
    상기 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들의 디스플레이를 야기하고;
    적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하고;
    연결된 상기 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 상기 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하고;
    맵핑된 포인트들을 정의하기 위해 상기 기하학적 구조들 상으로 상기 연결된 다이어그램 엘리먼트들에 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하고;
    상기 적어도 하나의 식별된 커넥터 또는 상기 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 상기 기하학적 구조 상의 맵핑된 상기 포인트들의 포지션들을 조정하며; 그리고
    조정된 연결 포인트들로서 상기 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 상기 맵핑된 포인트들의 맵핑에 따라 상기 다이어그램 엘리먼트들의 재디스플레이를 야기하도록 구성되는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  2. 제 1 항에 있어서,
    적어도 하나의 상기 커넥터는 상기 커넥터의 특징들 및 상기 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 식별되는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 적어도 하나의 식별된 커넥터는 비선형 커넥터인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  4. 제 3 항에 있어서,
    상기 비선형 커넥터는 곡선 커넥터인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체는 상기 다이어그램 엘리먼트들의 재디스플레이를 야기할 때, 상기 곡선 커넥터의 곡률 반경을 유지하도록 구성되는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 상호작용적 잉크는 디지털 잉크인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 시스템.
  7. 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법으로서,
    상기 컴퓨팅 디바이스는 프로세서 및 상기 프로세서의 제어 하에서 입력되는 핸드-드로잉 다이어그램 엘리먼트를 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 방법은,
    상기 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들을 디스플레이하는 단계;
    적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하는 단계;
    연결된 상기 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 상기 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하는 단계;
    맵핑된 포인트들을 정의하기 위해 상기 기하학적 구조들 상으로 상기 연결된 다이어그램 엘리먼트들에 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하는 단계;
    상기 적어도 하나의 식별된 커넥터 또는 상기 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 상기 기하학적 구조 상의 맵핑된 상기 포인트들의 포지션들을 조정하는 단계; 및
    조정된 연결 포인트들로서 상기 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 상기 맵핑된 포인트들의 맵핑에 따라 상기 다이어그램 엘리먼트들을 재디스플레이하는 단계를 포함하는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 커넥터의 특징들 및 상기 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 적어도 하나의 상기 커넥터를 식별하는 단계를 포함하는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 적어도 하나의 식별된 커넥터는 비선형 커넥터인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 비선형 커넥터는 곡선 커넥터인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 다이어그램 엘리먼트들을 재디스플레이할 때, 상기 곡선 커넥터의 곡률 반경을 유지하는 단계를 더 포함하는, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  12. 제 7 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 상호작용적 잉크는 디지털 잉크인, 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법.
  13. 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스 상의 다이어그램 엘리먼트들의 연결들을 관리하기 위한 방법을 구현하기 위해 실행되도록 적응되며,
    상기 컴퓨팅 디바이스는 프로세서 및 상기 프로세서의 제어 하에서 입력되는 핸드-드로잉 다이어그램 엘리먼트를 검출하고 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함하며,
    상기 방법은,
    상기 컴퓨팅 디바이스와 연관된 디스플레이 디바이스 상에 상호작용적 잉크로 복수의 입력 다이어그램 엘리먼트들을 디스플레이하는 단계;
    적어도 하나의 다이어그램 엘리먼트를 복수의 다이어그램 엘리먼트들을 연결하는 커넥터로서 식별하는 단계;
    연결된 상기 다이어그램 엘리먼트들의 기하학적 특징들에 기초하여 상기 연결된 다이어그램 엘리먼트들의 각각의 기하학적 구조를 결정하는 단계;
    맵핑된 포인트들을 정의하기 위해 상기 기하학적 구조들 상으로 상기 연결된 다이어그램 엘리먼트들에 적어도 하나의 식별된 커넥터의 연결 포인트들을 맵핑하는 단계;
    상기 적어도 하나의 식별된 커넥터 또는 상기 연결된 다이어그램 엘리먼트들 중 하나 이상의 상호작용적 잉크로 수신된 하나 이상의 상호작용들에 기초하여 상기 기하학적 구조 상의 맵핑된 상기 포인트들의 포지션들을 조정하는 단계; 및
    조정된 연결 포인트들로서 상기 연결된 다이어그램 엘리먼트들 상에 적어도 조정된 상기 맵핑된 포인트들의 맵핑에 따라 상기 다이어그램 엘리먼트들의 재디스플레이하는 단계를 포함하는, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
  14. 제 13 항에 있어서,
    상기 커넥터의 특징들 및 상기 다이어그램 엘리먼트들 사이의 포지션 관계들에 기초하여 적어도 하나의 상기 커넥터를 식별하는 단계를 포함하는, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 적어도 하나의 식별된 커넥터는 비선형 커넥터인, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
  16. 제 15 항에 있어서,
    상기 비선형 커넥터는 곡선 커넥터인, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
  17. 제 16 항에 있어서,
    상기 방법은 상기 다이어그램 엘리먼트들을 재디스플레이할 때, 상기 곡선 커넥터의 곡률 반경을 유지하는 단계를 더 포함하는, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
  18. 제 13 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 상호작용적 잉크는 디지털 잉크인, 컴퓨터 판독가능 프로그램 코드가 수록된 비일시적 컴퓨터 판독가능 매체.
KR1020197007656A 2016-12-15 2017-12-14 핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법 KR102470522B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP16290237 2016-12-15
EP16290237.3 2016-12-15
US15/465,946 2017-03-22
US15/465,946 US20180173688A1 (en) 2016-12-15 2017-03-22 System and method for management of handwritten diagram connectors
PCT/EP2017/082816 WO2018109084A1 (en) 2016-12-15 2017-12-14 System and method for management of handwritten diagram connectors

Publications (2)

Publication Number Publication Date
KR20190113741A true KR20190113741A (ko) 2019-10-08
KR102470522B1 KR102470522B1 (ko) 2022-11-23

Family

ID=57799506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197007656A KR102470522B1 (ko) 2016-12-15 2017-12-14 핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US20180173688A1 (ko)
EP (1) EP3555736B1 (ko)
JP (1) JP7134169B2 (ko)
KR (1) KR102470522B1 (ko)
CN (1) CN109690462B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140392B1 (en) 2017-06-29 2018-11-27 Best Apps, Llc Computer aided systems and methods for creating custom products
US10254941B2 (en) 2017-06-29 2019-04-09 Best Apps, Llc Computer aided systems and methods for creating custom products
US10761719B2 (en) * 2017-11-09 2020-09-01 Microsoft Technology Licensing, Llc User interface code generation based on free-hand input
US10867081B2 (en) 2018-11-21 2020-12-15 Best Apps, Llc Computer aided systems and methods for creating custom products
US10922449B2 (en) 2018-11-21 2021-02-16 Best Apps, Llc Computer aided systems and methods for creating custom products
US10706637B2 (en) 2018-11-21 2020-07-07 Best Apps, Llc Computer aided systems and methods for creating custom products
US11263371B2 (en) 2020-03-03 2022-03-01 Best Apps, Llc Computer aided systems and methods for creating custom products
US11514203B2 (en) 2020-05-18 2022-11-29 Best Apps, Llc Computer aided systems and methods for creating custom products
US20230133057A1 (en) * 2021-10-29 2023-05-04 Keysight Technologies, Inc. System and method for configuring network elements in a design network topology

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816805A (ja) * 1994-06-30 1996-01-19 Casio Comput Co Ltd 図形作成装置
JPH1091803A (ja) * 1996-08-15 1998-04-10 Xerox Corp 任意形状の閉鎖曲線のアウトライン生成方法及びセレクション指示方法
US20030231219A1 (en) * 2002-06-12 2003-12-18 Smart Technologies Inc. System and method for recognizing connector gestures
US20060061780A1 (en) * 2004-09-21 2006-03-23 Microsoft Corporation System and method for editing a hand-drawn chart in ink input

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7218779B2 (en) * 2003-01-21 2007-05-15 Microsoft Corporation Ink divider and associated application program interface
US7324691B2 (en) * 2003-09-24 2008-01-29 Microsoft Corporation System and method for shape recognition of hand-drawn objects
US7352902B2 (en) * 2003-09-24 2008-04-01 Microsoft Corporation System and method for detecting a hand-drawn object in ink input
US7412094B2 (en) 2004-09-21 2008-08-12 Microsoft Corporation System and method for editing a hand-drawn table in ink input
US20100013833A1 (en) * 2008-04-14 2010-01-21 Mallikarjuna Gandikota System and method for modifying features in a solid model
US8832582B2 (en) 2012-03-15 2014-09-09 Microsoft Corporation Interactive control of the curvature of links
DE102015000377A1 (de) * 2014-02-07 2015-08-13 Adobe Systems, Inc. Bereitstellen einer Zeichenhilfe unter Nutzung einer Merkmalserfassung und eines semantischen Kennzeichnens
US10417491B2 (en) * 2015-10-19 2019-09-17 Myscript System and method for recognition of handwritten diagram connectors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816805A (ja) * 1994-06-30 1996-01-19 Casio Comput Co Ltd 図形作成装置
JPH1091803A (ja) * 1996-08-15 1998-04-10 Xerox Corp 任意形状の閉鎖曲線のアウトライン生成方法及びセレクション指示方法
US20030231219A1 (en) * 2002-06-12 2003-12-18 Smart Technologies Inc. System and method for recognizing connector gestures
US20060061780A1 (en) * 2004-09-21 2006-03-23 Microsoft Corporation System and method for editing a hand-drawn chart in ink input

Also Published As

Publication number Publication date
JP7134169B2 (ja) 2022-09-09
CN109690462A (zh) 2019-04-26
US20180173688A1 (en) 2018-06-21
JP2020504848A (ja) 2020-02-13
EP3555736B1 (en) 2024-06-26
CN109690462B (zh) 2024-02-13
EP3555736A1 (en) 2019-10-23
KR102470522B1 (ko) 2022-11-23

Similar Documents

Publication Publication Date Title
US11157732B2 (en) System and method of handwriting recognition in diagrams
KR102470522B1 (ko) 핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법
US11740783B2 (en) System and method of guiding handwriting diagram input
KR102428704B1 (ko) 핸드라이팅된 다이어그램 커넥터들의 인식을 위한 시스템 및 방법
US20180114059A1 (en) System and method for managing digital ink typesetting
JP7388645B2 (ja) グラフィックオブジェクトを選択するための方法及び対応するデバイス
KR102347554B1 (ko) 디지털 잉크를 뷰티파잉하기 위한 시스템 및 방법
US10579868B2 (en) System and method for recognition of objects from ink elements
EP3491580B1 (en) System and method for beautifying superimposed digital ink
US20240134507A1 (en) Modifying digital content including typed and handwritten text
WO2018109084A1 (en) System and method for management of handwritten diagram connectors

Legal Events

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