KR100952562B1 - 스타일러스-기반 입력 시스템 및 그를 위한 컴퓨터-구현 프로세스 - Google Patents
스타일러스-기반 입력 시스템 및 그를 위한 컴퓨터-구현 프로세스 Download PDFInfo
- Publication number
- KR100952562B1 KR100952562B1 KR1020047009034A KR20047009034A KR100952562B1 KR 100952562 B1 KR100952562 B1 KR 100952562B1 KR 1020047009034 A KR1020047009034 A KR 1020047009034A KR 20047009034 A KR20047009034 A KR 20047009034A KR 100952562 B1 KR100952562 B1 KR 100952562B1
- Authority
- KR
- South Korea
- Prior art keywords
- ink
- canvas object
- delete delete
- objects
- ink canvas
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
잉크를 포착하고 랜더링하는 시스템 및 프로세스가 기술된다. 잉크 캔버스 객체는 0 개 이상의 객체들 혹은 소자들을 포함할 수 있고 객체들이나 소자들의 z 순서를 지정할 수 있다. 잉크 캔버스 객체는 다양한 객체들이나 소자들을 호스트 (host)할 수 있고, 그러므로, 객체나 소자들 자신은 잉크 기능성을 갖지 않지만, 이들 객체들이나 소자들에게 잉크 기능성을 제공할 수 있다.
잉크 캔버스 객체, z 순서, 잉크의 계층화
Description
본 발명의 양태들은 정보 포착 및 랜더링에 관한 것이다. 더 구체적으로, 본 발명의 양태들은 전자 잉크를 포착하고 랜더링하는 것에 관한 것이다.
사람들은 종종 정보의 문자 표현들보다 그래픽 표현들에 의존한다. 그들은 그림과 동일한 문자의 단락보다 그 그림을 보기를 더 좋아할 것이다. 예를 들어, 집 소유주는 잡지에서 그림들을 잘라내어 계약자들에게 부엌이나 화장실을 리모델링할 때 정확히 어떤 것을 원하는지를 보여줄 수 있다. 동일 소재의 문자 기술들은 종종 그것보다 못하다. 집 소유주가 사용할 수 있는 도구는 가위 정도로 밖에 복잡하지 않다.
그러나, 컴퓨팅 분야에서, 동일 내용을 포착하고 전달하기 위해 시도하는 것은 성가신 일이다. 전형적 컴퓨터 시스템들은 그래픽 집중적 내용을 포착하고 전달하는 쉬운 인터페이스를 제공하지 않는다. 대신, 그들은 문자를 포착하고 랜더링하는 것에 최적화되어 있다. 예를 들어, 전형적 컴퓨터 시스템들, 특히 마이크로소프트 윈도우즈와 같은, 그래픽 사용자 인터페이스 (GUI) 시스템들을 사용하는 컴퓨터 시스템들은, 문자 입력을 위한 키보드 및, 사용자 인터페이스를 동작시키기 위한 하나 이상의 버튼들을 가진 마우스와 같은 포인팅 디바이스와 같은, 하나 이 상의 개별적 입력 장치들로부터 사용자 입력을 수용하기 위해 최적화된다.
몇 개의 컴퓨팅 시스템들은 시스템들로 정보를 입력하기 위해 스타일러스 (stylus)를 사용하도록 해서 사용자가 이용할 수 있는 입력 및 인터랙션 시스템들을 확장시켰다. 스타일러스는 (컨트롤용) 마우스를 비롯해서 (데이타 입력용) 키보드 둘 다를 대체할 수 이다. 몇 개의 컴퓨팅 시스템들은 필기 전자 정보 혹은 전자 잉크를 수신하고 즉시 전자 잉크를 문자로 변환하는 시도를 한다. 다른 시스템들은 전자 잉크가 필기 형태로 남아 있도록 허용한다.
스타일러스의 존재에도 불구하고, 전자 잉크를 전형적 그래픽 사용자 인터페이스와 조합하는 다양한 접근 방법들은 제 3자 응용 프로그램의 개발자들에게는 성가신 일일 수 있다. 따라서, 제 3자 개발자들에게 친화적인 잉크 포착 및 랜더링을 위한 진보된 시스템에 대한 이 기술에의 요구가 있다.
<간략한 요약>
본 발명의 양태들은 위에 언급된 하나 이상의 쟁점들을 다루고, 그래서 제 3자 개발자들에 의해 사용될 수 있는 향상된 내용 포착 및 랜더링을 제공한다. 몇 개의 실시예들에서, 잉크 포착 및 랜더링 소자는, 인터페이스의 각 소자가 깊이로 (혹은 z 순서) 지정될 수 있는 구조의 부분인 객체로서 명백할 수 있다. 몇 가지 경우들에서, 객체는 인터페이스의 다양한 소자들을 그들의 지정된 z 순서에서 랜더링하고, 그 다음에 최상위 계층에 잉크를 랜더링한다. 다른 경우들에서, 잉크 및 기타 소자들은 서로 혼합될 수 있다.
이러한 그리고 다른 양태들이 도면들 및 관련 설명으로 기술된다.
<도면 설명>
도1은 본 발명의 하나 이상의 양태들을 지원하는 범용 컴퓨터를 도시한다.
도2는 본 발명의 양태들에 따라 스타일러스 기반의 입력 시스템을 위한 디스플래이를 도시한다.
도3a 및 3b는 본 발명의 양태에 따라 인터페이스들의 다양한 예들과 각각에서 어떻게 순서가 컨트롤되는지를 도시한다.
도4는 본 발명의 양태들에 따라 한 영역에 적용되는 잉크를 도시한다.
도5는 본 발명의 양태들에 따라 객체의 구성자들 및 특성들을 도시한다.
도6은 본 발명의 양태들에 따라 객체의 방법들을 도시한다.
도7은 본 발명의 양태들에 따라 객체의 이벤트들을 도시한다.
도8은 본 발명의 양태들에 따라 객체들과 다양한 동작들의 관계들을 도시한다.
도9a, 9b, 및 9c는 본 발명의 양태들에 따라 영역으로 잉크가 절단된 다양한 정도들을 도시한다.
본 발명의 양태들은 진보된 잉크 포착 및 랜더링 시스템에 관한 것이다.
이 문서는 독자를 돕기 위해 섹션들로 분리된다. 이러한 섹션들은 다음을 포함한다: 잉크의 특성들; 용어들; 범용 컴퓨팅 환경; 객체들의 순서; 구성자들, 특성들, 방법들, 및 객체들의 이벤트들; 관계들; 및 클립핑.
<잉크의 특성들>
잉크 펜들을 사용하는 사용자들에게 알려진 것처럼, 물리적 잉크는 (잉크통을 갖는 펜을 사용해서 종이 위에 씌여지는 것과 같은 종류) 선 세그먼트 (segment)들에 의해 연결된 일련의 좌표들보다 더 많은 정보를 전달할 수 있다. 예를 들어, 물리적 잉크는 펜 압력 (잉크의 두께에 의해서), 펜 각도 (선 혹은 커브 (curve) 세그먼트들의 모양 및 점들 주위의 잉크 동작에 의해서), 및 펜 끝의 속도 (직진성 및 선의 굵기에 의해서, 선의 굵기는 선 혹은 커브의 진행 경로에서 변함)를 반영할 수 있다. 이러한 추가적 특성들 때문에, 감정, 개성, 강조 및 기타가 점들 사이의 균일한 선 굵기에 의한 것보다 더욱 즉각적으로 전달될 수 있다.
전자 잉크 (혹은 잉크)는 사용자가 스타일러스 기반의 입력 장치를 사용할 때 전자 정보의 포착 및 포착된 전자 정보의 디스플래이에 관련있다. 전자 잉크는 스트로크 (stroke)들의 시퀀스를 참조하고, 여기서 각 스트로크는 점들의 시퀀스로 구성된다. 점들은 직각 좌표들 (X, Y), 극 좌표들 (r, T), 및 이 기술에서 알려진 기타 기술들을 포함하는 다양한 알려진 기술들을 사용해서 표현될 수 있다. 전자 잉크는 압력, 각도, 속도, 색, 스타일러스 크기, 및 잉크 불투명도를 포함하는 실제 잉크의 특성들의 표현들을 포함할 수 있다. 전자 잉크는, 다른 정보들 중에, 어떻게 잉크가 페이지 위에 도포되었는지의 순서 (대부분 서구 언어들에서 좌측에서 우측으로 그 다음에 위쪽에서 아래쪽으로의 래스터 (raster) 패턴), 시간 도장 (time stamp) (언제 잉크가 도포되었는지를 표시함), 잉크의 필자의 표시, 및 필기 디바이스 (잉크가 나오는 기계의 식별 혹은 잉크를 도포하기 위해 사용되는 펜의 식별 중의 적어도 하나)를 포함하는 기타 특성들을 더 포함할 수 있다.
<용어들>
잉크 - 특성들을 가진 스트로크들의 시퀀스 혹은 세트. 스트로크들의 시퀀스는 순서화된 형태로 스트로크들을 포함할 수 있다. 시퀀스는 포착된 시간에 의해서 혹은 스트로크들이 페이지 위에서 나타나는 장소에 의해서 혹은 잉크의 필자에 의해 협동적 상황들에서 순서화될 수 있다. 기타 순서들도 가능하다. 스트로크들의 세트는 스트로크들의 시퀀스 혹은 비순서화된 스트로크들 혹은 그들의 임의의 조합을 포함할 수 있다. 더욱이, 어떤 특성들은 각 스트로크 혹은 스트로크의 점에 고유할 수 있다 (예를 들어, 압력, 속도, 각도, 및 기타). 이러한 특성들은, 잉크 수준이 아닌, 스트로크 혹은 점 수준에서 저장될 수 있다.
잉크 객체 - 특성들을 갖고 혹은 갖지 않고 잉크를 저장하는 데이타 구조.
스트로크 - 포착된 점들의 시퀀스 혹은 세트. 예를 들어, 랜더링될 때, 점들의 시퀀스는 선들로 연결될 수 있다. 다른 경우에서, 스트로크는 점 및 다음 점쪽의 방향으로의 벡터로서 표현될 수 있다. 요약해서, 스트로크는, 점들 및/또는 그 점들을 연결하는 내부 표현에 상관 없이, 잉크와 관련된 점들 혹은 세그먼트들의 임의의 표현을 포함하도록 의도된다.
점 - 공간에서 위치를 정의하는 정보. 예를 들어, 점들은 포착 공간 (예를 들어, 디지타이저 위의 점들), 가상 잉크 공간 (포착된 잉크가 위치되는 공간의 좌표들), 및/또는 디스플래이 공간 (디스플래이 디바이스의 점들 혹은 픽셀들)에 관련해서 정의될 수 있다.
소자들 - 트리 (tree)에 위치되는 객체들 이며, 트리에서 그들의 위치는 순 서로서 작용한다.
<일반 목적 컴퓨팅 환경>
도1은 본 발명의 다양한 양태들을 구현하기 위해 사용될 수 있는 설명적 범용 일반 목적 디지탈 컴퓨팅 환경의 개략도를 도시한다. 도1에서, 컴퓨터(100)는 처리 장치(110), 시스템 메모리(120) 및, 시스템 메모리를 포함해서 다양한 시스템 구성 요소들을 처리 장치(110)로 연결하는 시스템 버스(130)를 포함한다. 시스템 버스(130)는 메모리 버스 혹은 메모리 컨트롤러, 주변 버스, 및 다양한 버스 구조들 중 임의의 것을 사용하는 로컬 버스를 포함하는 몇 개의 타입들의 버스 구조들 중 임의의 것일 수 있다. 시스템 메모리(120)는 읽기전용 메모리(ROM)(140) 및 랜덤 액세스 메모리 (RAM)(150)를 포함한다.
스타트 업 (start-up) 동안 같은 때에, 컴퓨터(100) 내의 소자들 간의 정보 전송을 돕는 기본 루틴들을 포함하는 기본 입/출력 시스템 (BIOS)(160)은 ROM(140)에 저장된다. 컴퓨터(100)는 하드 디스크 (도시 안됨)로 읽고 쓰기 위한 하드 디스크 드라이브(170), 분리형 자기 디스크(190)로 읽고 쓰기 위한 자기 디스크 드라이브(180), 및 CD ROM 혹은 기타 광 매체들과 같은 분리형 광 디스크(192)로 읽고 쓰기 위한 광 디스크 드라이브(191)를 또한 포함한다. 하드 디스크 드라이브(170), 자기 디스크 드라이브(180), 및 광 디스크 드라이브(191)는 하드 디스크 드라이브 인터페이스(192), 자기 디스크 드라이브 인터페이스(193), 및 광 디스크 드라이브 인터페이스(194)에 의해 시스템 버스(130)으로 각각 연결된다. 드라이브들 및 그들의 연관된 컴퓨터 판독 가능한 매체들은 컴퓨터 판독 가능한 명령들, 데이타 구조들, 프로그램 모듈들, 및 개인 컴퓨터(100)을 위한 기타 데이타의 비휘발성 저장을 제공한다. 자기 카세트들, 플래쉬 메모리 카드들, 디지탈 비디오 디스크들, 버놀리 카트리지들, 랜덤 액세스 메모리들 (RAMs), 읽기전용 메모리들 (ROMs), 및 기타와 같은 컴퓨터에 의해 액세스할 수 있는 데이타를 저장할 수 있는 기타 타입들의 컴퓨터 판독 가능한 매체들은 운영 환경의 예에서도 또한 사용될 수 있음을 이 기술에 숙련된 자라면 이해할 것이다.
다수의 프로그램 모듈들은, 운영 체제(195), 하나 이상의 응용 프로그램들(196), 기타 프로그램 모듈들(197), 및 프로그램 데이타(198)를 포함해서, 하드 디스크 드라이브(170), 자기 디스크(190), 광 디스크(192), ROM(140) 혹은 RAM(150)에 저장될 수 있다. 사용자는 키보드(101) 및 포인팅 디바이스(102)와 같은 입력 디바이스들을 통해 컴퓨터(100)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치들 (도시 안됨)로는 마이크로 폰, 조이 스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이러한 그리고 다른 입력 디바이스들은 시스템 버스로 연결된 직렬 포트 인터페이스(106)를 통해 처리 장치(110)으로 종종 연결되지만, 병렬 포트, 게임 포트 혹은 범용 직렬 버스 (USB)와 같은 기타 인터페이스들에 의해 연결될 수도 있다. [현재 시점에서, USB가 매우 널리 쓰이므로, 독자는 도1에 USB를 넣기를 원할 수 있다] 더욱이, 이러한 디바이스들은 적절한 인터페이스를 (도시 안됨) 통해 시스템 버스(130)로 직접 연결될 수 있다. 모니터(107) 혹은 기타 타입의 디스플래이 디바이스는, 비디오 어뎁터(108)와 같은, 인터페이스를 통해 시스템 버스(130)으로 또한 연결된다. 모니터에 추가해서, 개인 컴퓨터들은, 스피커들 및 프린터들과 같은, 기타 주변 출력 장치들 (도시 안됨)을 전형적으로 포함한다. 한 실시예에서, 펜 디지타이저(165) 및 동반되는 펜 혹은 스타일러스(166)는 자유로운 입력을 디지탈로 포착하기 위해 제공된다. 펜 디지타이저(165) 및 직렬 포트 인터페이스(106) 간에 직접 연결이 도시되었지만, 실제로, 펜 디지타이저(165)는, 무선을 포함한 임의의 기술에 의해 병렬 포트 혹은 기타 인터페이스 및 시스템 버스(130)에 의해 직접적으로 처리 장치(110)으로 연결될 수 있다. 또한, 펜(166)은 그것과 연계된 카메라 및 카메라에 의해 포착된 이미지 정보를 버스(130)와 인터랙션하는 인터페이스로 무선 전송하기 위한 송수신기를 가질 수 있다. 더욱이, 펜은, 가속도계들, 자기계들, 및 자이로스코프 (gyroscope)들을 포함하는 전자 잉크의 스트로크들을 결정하기 위한 카메라에 추가로 혹은 대신해서 기타 감지 시스템들을 가질 수 있다.
더욱이, 디지타이저(165)는 모니터(170)으로부터 분리되어 도시되지만, 디지타이저(165)의 사용 가능한 입력 영역은 모니터(107)의 디스플래이 영역과 함께 확장될 수 있다. 더욱이, 디지타이저(165)는 모니터(107)에 병합될 수 있고, 혹은 모니터(107)를 오버래이 (overlay)하거나, 혹은 그렇지 않으면 모니터(107)에 첨부되는 분리된 디바이스로서 존재할 수 있다.
컴퓨터(100)는, 원격 컴퓨터(109)와 같은, 하나 이상의 원격 컴퓨터들로 논리 연결들을 사용해서 통신망화된 환경에서 동작할 수 있다. 원격 컴퓨터(109)는 서버, 라우터, 통신망 PC, 피어 (peer) 디바이스 혹은 기타 범용 통신망 노드일 수 있고, 단지 메모리 저장 디바이스(111)가 도1에 설명되었지만, 전형적으로 컴퓨터(100)에 관련된 위에 기술된 다수 혹은 전체 소자들을 포함한다. 도1에 도시된 논리 연결들은 구내 통신망 (LAN)(112) 및 광역 통신망 (WAN)(113)을 포함한다. 그런 통신망 환경들은 사무실들, 기업체 기반 컴퓨터 통신망들, 인트라넷들 및 인터넷에서 보편적이다.
LAN 통신 환경에서 사용될 때, 컴퓨터(100)는 통신망 인터페이스 혹은 어뎁터(114)를 통해 구내 통신망(112)으로 연결된다. WAN 통신 환경에서 사용될 때, 개인 컴퓨터(100)는, 인터넷과 같은, 광역 통신망(113)을 통해 통신을 개통하기 위한 모뎀(115) 혹은 기타 방법들을 전형적으로 포함한다. 외장 혹은 내장일 수 있는, 모뎀(115)은 직렬 포트 인터페이스(106)를 통해 시스템 버스(130)로 연결된다. 통신망 환경에서, 개인 컴퓨터(100)에, 혹은 그 일부들, 관련해서 도시된 프로그램 모듈들은 원격 메모리 저장 디바이스에 저장될 수 있다. 더욱이, 시스템은 유선 및/또는 무선 능력들을 포함할 수 있다. 예를 들어, 통신망 인터페이스(114)는 블루투스, SWLan, 및/또는 조합 능력들의 IEEE 802.11 클래스를 포함할 수 있다. 기타 무선 통신 프로토콜들이 이러한 프로토콜들과 연결해서 혹은 대신해서 사용될 수 있음이 이해된다.
도시된 통신망 연결들이 설명적일 뿐이고 컴퓨터들 간에 통신선을 개통하기 위한 기타 기술들이 사용될 수 있다. TCP/IP, 이써넷 (Ethernet), FTP, HTTP 및 기타와 같은 다양하고 잘 알려진 프로토콜들 중의 임의의 것의 존재가 가정되고, 시스템은 웹기반 서버로부터 웹 페이지들을 사용자가 검색 수취하도록 허가하는 클라이언트-서버 구조로 동작될 수 있다. 다양한 범용 웹 브라우져들 중의 임의의 것이 웹 페이지들의 데이타를 디스플래이하고 조작하기 위해 사용될 수 있다.
도2는 본 발명의 다양한 양태들에 대응해서 사용될 수 있는 태블랫 PC(201)를 도시한다. 도1의 시스템의 특징들, 서브시스템들, 및 기능들의 임의의 것 혹은 전부가 도2의 컴퓨터에 포함될 수 있다. 태블랫 PC(201)는 큰 디스플래이 표면(202)을 포함한다, 예를 들어, 다수의 윈도우들(203)이 디스플래이되는 디지탈화하는 플랫 패널 디스플래이 (flat panel display), 액정 디스플래이 (LCD) 스크린이 선호됨. 스타일러스(204)를 사용해서, 사용자는 디지탈화하는 디스플래이 표면(202) 위에서 선택하고, 하일라이트하고, 및/또한 쓸 수 있다. 적절한 디지탈화하는 디스플래이 표면들(202)의 예들은, 뮤토 (Mutoh) 혹은 와콤 (Wacom) 펜 디지타이저들과 같은 전자기 펜 디지타이저들을 포함한다. 예를 들어 광 디지타이저들과 같은 기타 타입들의 펜 디지타이저들이 또한 사용될 수 있다. 태블랫 PC(201)는 데이타를 조작하고 문자를 입력하고 그림들을 생성하고 그리고/또는 스프래드쉬트들, 워드 프로세싱 프로그램들, 및 기타와 같은 범용 컴퓨터 응용 프로그램 작업들을 실행하도록 하기 위해 스타일러스(204)를 사용해서 만들어진 제스춰들을 해석한다.
스타일러스(204)는 그 자신의 선택 능력들을 추가하기 위해 하나 이상의 버튼들 혹은 기타 특징들로 장치될 수 있다. 한 실시예에서, 스타일러스(204)는, 한 끝은 쓰기 부분을 구성하고 다른 끝은 디스플래이 위에서 이동될 때 지워져야할 디스플래이의 부분들을 표시하는 지우개를 구성하는 연필 혹은 펜으로 구현될 수 있다. 마우스, 트랙볼, 혹은 기타와 같은, 기타 타입들의 입력 장치들이 사용될 수 있다. 추가로, 사용자 자신의 손가락은 스타일러스(204)가 될 수 있고 접촉에 민감한 (touch-sensitive)혹은 거리감에 민감한 (proximity-sensitive) 디스플래이 위에 디스플래이된 이미지의 부분들을 선택 혹은 지시하기 위해 사용될 수 있다. 결과적으로, 본 명세서에서 사용된 바와 같이, "사용자 입력 디바이스"라는 용어는 넓은 정의를 갖고 스타일러스(204)와 같은 잘 알려진 입력 디바이스들의 다수의 이형들을 포함하도록 의도된다. 영역(205)은 스타일러스(204)가 디스플래이 표면(202)의 어디를 접촉했는지를 사용자가 결정하도록 하는 피드백 영역 혹은 접촉 영역을 나타낸다.
다양한 실시예들에서, 시스템은, 응용 프로그램이 잉크를 포착하고 조작하고 저장하기 위해 사용할 수 있는 COM (구성요소 객체 모델 (component object model)) 서비스들의 세트로서 잉크 플랫폼을 제공한다. 한 개의 서비스는 잉크의 개시된 표현들을 사용해서 잉크를 읽고 쓰기 위해 응용 프로그램을 가동시킨다. 잉크 플랫폼은 확장성 마컵 언어 (extensible markup language, XML)와 같은 언어를 포함하는 마컵 언어를 또한 포함할 수 있다. 더욱이, 시스템은 또 다른 구현으로서 DCOM을 사용할 수 있다. 다른 구현들은 마이크로소프트사로부터 Win32 프로그래밍 모델 및 .Net 프로그래밍 모델을 포함해서 사용될 수 있다.
<객체들의 순서화>
도3a 및 도3b는 인터페이스에서 항목들을 순서화하는 다양한 기술들을 보인다. 도3a에서, 윈도우(301)는 항목(302) 및 (303)을 포함한다. 여기서, 항목(302)에 초점이 맞추어지고 항목(303)의 전면으로 나타내진다. 도3b에서, 내용이 트리로 배치된다. 여기서, 루트 노드 ("루트"라고 불림)(304)는 트리의 모든 다른 노드들의 기반이 되는 노드이다. 자식 노드들 (305) 및 (306)는 루트 노드(304)로부터 트리에 위치된다. 서로에 대한 그들의 상대적 위치들은 어떻게 그들이, 서로의 위 혹은 아래에서 랜더링되는지를 정의한다. 도3b의 좌측의 축(307)은 이 트리의 예에서 다양한 노드들의 "z 순서"를 설명한다.
도4는 어떻게 잉크가 z 순서 (혹은 깊이 순서화됨) 순서화 구조를 갖는 시스템에서 랜더링될 수 있는지의 예를 도시한다. 여기서, 윈도우(401)는 내용과 함께 도시된다. 내용은 위치(403)에 랜더링된 내용(402)과 위치(405)에 랜더링된 내용(404)을 포함한다. 일단 이전 내용들(402) 및 (404)가 랜더링되면, 잉크(406)는 최상위 내용 (여기서 (404))의 위치(407)에 랜더링될 수 있다. 잉크(406)는 최상위 내용(404)과 항상 연계되는 것은 아니다. 예를 들어, 사용자는 내용(406)으로 잉크 정보를 수용하는 형태(404)로 작업할 수 있다. 여기서, 형태(404)는 그 위에 잉크(406)가 위치되기 전에 랜더링되어질 수 있다.
다른 접근 방법에서, 잉크는 기타 소자들의 밑에 놓일 수 있다. 예를 들어, 잉크가 랜더링되어지고 그 다음에 그 위에 소자들이 랜더링된다. 잉크의 랜더링은 소자들의 랜더링과 혼합될 수 있다.
<객체들의 구성자들, 특성들, 방법들, 및 이벤트들>
내용의 계층 순서를 컨트롤하기 위해서, 객체는 이 작업을 핸들링하기 위해 사용될 수 있다. 단순성을 위해서, 이 개시는 "잉크 캔버스" 객체로서 잉크에 관련된 이 작업을 핸들링할 수 있는 객체를 참조한다 (여기서, 그것은 어떻게 화가가 물리적 캔버스에 계층들로 색을 칠하는지와 기능적으로 유사하다). 한 예에서, 잉크 캔버스는 소자일 수 있다. 또 다른 예에서, 잉크 캔버스는 객체일 수 있다 (모든 소자들이 객체들이지만, 모든 객체들이 다 소자들은 아님). 단순성을 위해서, 잉크 캔버스는 본 명세서에서 객체로서 참조된다. 잉크 캔버스 객체는 다양한 구성자들, 특성들, 방법들, 및 이벤트들로 도5-7에서 도시된다. 다양한 구성자들, 특성들, 방법들, 및 이벤트들은 단지 설명적 목적들로만 도시됨이 이해된다. 일부, 전체, 혹은 추가의 것들은 이 발명으로부터 분리되지 않고 잉크 캔버스 객체의 기타 예들의 다양한 형태들로 나타날 수 있다. 잉크 캔버스 객체는 0 개 이상의 소자들 혹은 객체들을 포함한다. 잉크 캔버스 객체는 포함된 소자들 혹은 객체들을 위해 잉크를 랜더링하거나 그러한 소자들 혹은 객체들은 그들 스스로 잉크를 랜더링할 수 있다.
다음의 도면들 및 그것들의 설명은 방법들, 특성들, 이벤트들, 및 구성자들의 다양한 예들을 설명한다. 몇 개의 예들에서, 다양한 항목들이 외부 액세스로부터 숨겨져 있고, 그래도 다른 메카니즘에 의해 액세스할 수 있다. 예를 들어, 한 방법이 잉크 객체, 선택된 잉크 스트로크들, 잉크 스트림, 혹은 바이트들의 배열을 리턴하기 위해 사용될 수 있다. 이 방법은 이 정보를 포함할 수 있는 특성을 액세스하는 대신에 사용될 수 있다. 방법들은, 특성들을 액세스하거나 세트하기 위해서, 이벤트들에 응답하거나 발효하기 위해서, 그리고 기타 등등을 하기 위해서 사용될 수 있다. 특성들은 방법들 및/또는 이벤트들의 상태들을 설명할 수 있다. 이벤트들은 언제 특성들이 세트되고 언제 방법들이 실행되는지를 표시할 수 있다. 기타 예들은 이것들로부터 나오지만 본 명세서에 리스트되지는 않았다.
다양한 양태들이 잉크 캔버스 객체에 나타나거나 혹은 나타나지 않을 수 있다. 처음, 잉크 캔버스 객체는 소자들 및/또는 객체들을 포함할 것이다. 소자들 및 객체들은 잉크 캔버스 객체에 의해 랜더링되어질 수 있거나 혹은 스스로 랜더링할 수 있다. 잉크 캔버스 객체는 트리 기반의 조직 구조에 포함될 수 있다. 잉크 캔버스 객체는 마컵 언어 (예를 들어, HTML, XML, 및/또는 XAML, 및 기타)에서 생성될 수 있다. 잉크 캔버스 객체는 인식 기능을 포함할 수 있다 (필기 인식, 모양 인식, 그림 인식, 주석 인식, 및 기타를 포함). 잉크 캔버스 객체는 확장할 수 있는 편집 기능을 포함할 수 있다. 마지막으로, 잉크 캔버스 객체는, 잉크 캔버스 객체와 인터랙션하는 응용 프로그램들을 개발자가 기록하도록 하는 다양한 응용 프로그램 프로그래밍 인터페이스들을 포함할 수 있다. 한 개 이상의 이러한 양태들이 잉크 캔버스 객체에 나타내질 수 있다.
도5는 잉크 캔버스 객체와 연계된 구성자들 및 특성들을 도시한다. 잉크 캔버스 객체는 (501)로 도시된다. 두 개의 구성자들이 (502) 및 (503)으로 도시된다. 구성자(502)는 디폴트 수집 및 랜더링 능력들이 가능한 퍼블릭 구성자 (public constructor) 이다. 구성자들(503)은 지정된 부모로 링크를 갖는 잉크 캔버스 객체(501)의 새로운 인스턴스 (instance)를 생성한다.
도5는 또한 특성들(504)-(518)를 도시한다:
● 맞춤 편집 동작 (Custom Edit Behavior) 특성(504)은 맞춤 편집 동작을 세트할 수 있게 한다.
● 디폴트 그리기 속성들 (Default Drawing Attributes) 특성(505)은 새로 수집된 스트로크들을 위한 그리기 속성들을 정의한다.
● 편집 모드 (Editing Mode) 특성(506)은 현재 편집 모드를 세트한다.
● 지우개 크기 (Eraser Size) 특성(507)은 지우기 모드가 가동될 때 지우개의 크기를 세트한다.
● 지우개 모양 (Eraser Shape) 특성(528)은 지우기 모드가 가동될 때 지우개의 모양을 (원, 타원, 정사각형, 직사각형, 및 기타) 세트한다.
● 잉크 (Ink) 특성(508)은 잉크 캔버스 객체에 포함된 잉크로 액세스하도록 한다.
● 클립 잉크 (Clip Ink) 특성(509)은 언제 잉크가 잉크 캔버스들의 디스플래이된 영역의 크기로 클립핑이되는지를 결정한다,
● 편집 모드 인버티드 (Editing Mode Inverted) 특성(510)은, 어느 편집 모드가 (혹은 기타 언어 혹은 상태) 사용자 펜이 인버트되었을 때 활성화될지를 표시한다. 추가 펜들이 사용될 수 있음이 유의된다(noted). 따라서, 추가 특성들(510)은 기타 펜 끝(pen tip)들과 연계되는 기타 모드들을 정의하기 위해 사용될 수 있다.
● 스타일러스 인버티드 (Stylus Inverted) 특성(511)은 스타일러스가 현재 인버트되었는지의 여부를 표시한다.
● 이동 가동 (Move Enabled) 특성(512)은 생성된 잉크를 이동하기 위한 능력을 가동시키고 정지시킨다.
● 크기 조절 가동 (Resize Enabled) 특성(513)은 생성된 잉크를 크기 조절하는 능력을 가동시키고 정지시킨다.
● 회전 가동 (Rotate Enabled) 특성(514)은 생성된 잉크를 회전하기 위한 능력을 가동시키고 정지시킨다.
● 선택 소자 액세스 (Access Selected Elements) 특성(515)은 현재 잉크 캔버스(501)의 자식들인 현재 선택된 소자들로의 액세스를 가동한다.
● 선택 스트로크 액세스 특성 (Access Selected Strokes)(516)은 현재 잉크 캔버스(501)와 연계된 현재 선택된 스트로크들로의 액세스를 가동한다.
● 맞춤 커서 사용 (Use Custom Cursor) 특성(517)은 개발자가 맞춤 마우스 커서를 사용하고 있고 현재 커서가 유지됨을 표시한다.
● 사용자 편집중 (User Is Editing) 특성(518)은 잉크 캔버스(501)가 현재 잉크를 수집함을 표시한다.
● 선택 그룹 (Selection Groups) 특성 (527)은 어느 스트로크들 혹은 잉크 객체들이 그룹 혹은 파서 인지 (parser-aware) 선택들 및 동작들을 위해 함께 그룹화 되는지를 표시한다.
위의 특성들에 추가해서, 잉크 캔버스 객체(501)는 하나 이상의 잉크 인식 특성들을 더 포함하거나 하지 않을 수 있다.
● 인식된 잉크 (Recognized Ink) 특성(519)은 잉크가 인식되었음을 표시한다. 인식은 현재 선택된 혹은 이전 선택된 스트로크 혹은 스트로크들과 연계될 수 있거나 될 수 없다.
● 감식된 단어 (Detected Word) 특성(520)은 어느 스트로크들의 세트 혹은 잉크 객체가 단어로 감식되었는지를 표시한다.
● 감식된 이미지 (Detected Image) 특성(521)은 어느 스트로크들의 세트 혹은 잉크 객체가 이미지로 감식되었는지를 표시한다.
● 감식된 선(Detected Line) 특성(522)은 어느 스트로크들의 세트 혹은 잉크 객체가 선으로 감식되었는지를 표시한다.
● 감식된 문단 (Detected Paragraph) 특성(523)은 어느 스트로크들의 세트 혹은 잉크 객체가 문단으로 감식되었는지를 표시한다.
● 감식된 모양 (Detected Shape) 특성(524)은 어느 스트로크들의 세트 혹은 잉크 객체가 모양으로 (그리고/또는 모양의 타입) 감식되었는지를 표시한다.
● 감식된 주석 (Detected Annotation) 특성(525)은 어느 스트로크들의 세트 혹은 잉크 객체 혹은 객체들이 주석으로 감식되었는지를 표시한다.
● 변환된 문자 (Converted Text) 특성(526)은 잉크로부터 인식된 문자를 포함한다. 다른 경우로서, 하나 이상의 잉크 스트로크들 혹은 객체들을 랜더링하기 위해서, 변환된 문자가 잉크의 가시적 형태 대신에 사용됨을 표시할 수 있다.
위의 특성들이 단지 설명을 목적으로 리스트 되었음이 이해된다. 기타 특성들이 잉크 캔버스 객체의 위의 특성들에 추가해서 혹은 대신해서 사용될 수 있다.
도6은 잉크 캔버스 객체(601)에 연계된 다양한 방법들을 도시한다.
● 디폴트 그리기 속성 오버라이드 읽기 (Get Default Drawing Attributes Overide) 방법(602)은 특정 스타일러스를 위한 디폴트 오버라이드 셋팅들을 읽는다. 예를 들어, 사용자는 편집을 위해 한 개의 스타일러스를 그리고 삭제를 위해 다른 스타일러스를 가질 수 있다. 이 방법은 특정 스타일러스에 대한 디폴트 동작을 컨트롤하도록 한다.
● 편집 모드, 인버티드 변화 (On Editing Mode, Inverted Change) 방법(603)은 인버티드 모드가 변화한 이벤트를 발효한다.
● 편집 모드, 인버티드 변화중 (On Editing Mode, Inverted Changing) 방법(604)은 인버티드 모드가 변화중인 이벤트를 발효한다.
● 스타일러스의 인버티드 변화 (On Stylus Is Inverted Change) 방법 (605)은 스타일러스가 인버티드 편집 모드를 변화하기 위해 사용될 때 이벤트를 발효한다.
● 맞춤 편집 동작 변화 (On Custom Edit Behavior Changed) 방법(606)은 맞춤 편집 동작이 변화함을 지시하는 이벤트를 발효한다.
● 맞춤 편집 동작 변화중 (On Custom Edit Behavior Changing) 방법(607)은 맞춤 편집 동작이 변화중임을 지시하는 이벤트를 발효한다.
● 편집 모드 변화 (On Editing Mode Changed) 방법(608)은 편집 모드가 변화함을 지시하는 이벤트를 발효한다.
● 편집 모드 변화중 (On Editing Mode Changing) 방법(609)은 편집 모드가 변화중임을 지시하는 이벤트를 발효한다.
● 잉크 캔버스 어도너 입장 (On Ink Canvas Adorner Entered) 방법(610)은 잉크를 위한 그래픽 어도너 (사용자가 잉크를 선택할 때 보여지든지 혹은 보여지지 않는 그래픽 플래이스홀더 (placeholder))가 입력될 때 이벤트를 발효한다.
● 잉크 캔버스 어도너 퇴장 (On Ink Canvas Adorner Exited) 방법(611)은 잉크를 위한 그래픽 어도너가 퇴장되었을 때 이벤트를 발효한다.
● 잉크 삭제 (On Ink Erased) 방법(612)은 잉크가 삭제되었을 때 이벤트를 발효한다.
● 잉크 삭제중 (On Ink Erasing) 방법(613)은 잉크가 삭제되는 중의 과정에 있을 때 이벤트를 발효한다.
● 스트로크 수집 (On Stroke Collected) 방법(614)은 스트로크들이 수집될 때 이벤트를 발효한다.
● 선택 회전중 (On Selection Rotating) 방법(615)은 선택이 회전 중의 과정에 있을 때 이벤트를 발효한다.
● 선택 회전 (On Selection Rotated) 방법(616)은 선택이 회전되었을 때 이벤트를 발효한다.
● 선택 크기 조절중 (On Selection Resizing) 방법(617)은 선택이 크기 조절중의 과정에 있을 때 이벤트를 발효한다.
● 선택 크기 조절 (On Selection Resized) 방법(618)은 선택이 크기 조절되었을 때 이벤트를 발효한다.
● 선택 이동중(On Selection moving) 방법(619)은 선택이 이동중의 과정에 있을 때 이벤트를 발효한다.
● 선택 이동 (On Selection Moved) 방법(620)은 선택이 이동되었을 때 이벤트를 발효한다.
● 선택 변화중 (On Selection Changing) 방법(621)은 선택이 변화중의 과정에 있을 때 이벤트를 발효한다.
● 선택 변화 (On Selection Changed) 방법(622)은 선택이 변화했을 때 이벤트를 발효한다.
● 디폴트 그리기 속성 오버라이드 쓰기 (Set Default Drawing Attributes Override) 방법(623)은 포착된 스트로크들과 연계된 디폴트 그리기 속성들을 오버라이드한다.
위의 방법들에 추가해서, 잉크 캔버스 객체(601)는 하나 이상의 잉크 인식 방법들을 더 포함할 수도 포함하지 않을 수도 있다.
● 잉크 인식 (On Ink Recognition) 방법(624)은 잉크가 인식될 때 하나 이상의 이벤트들을 발효한다.
위의 방법들은 단지 설명을 위한 목적으로 리스트되었음이 이해된다. 기타 방법들은 잉크 캔버스 객체의 위의 방법들에 추가해서 혹은 대신해서 사용될 수 있다.
도7은 잉크 캔버스 객체(701)와 연계될 수 있는 다양한 이벤트들을 도시한다.
● 맞춤 편집 동작 변화 (Custom Edit Behavior Changed) 이벤트(702)는 맞춤 편집 동작이 변화했을 때 발생한다.
● 맞춤 편집 동작 변화중 (Custom Edit Behavior Changing) 이벤트(703)는 맞춤 편집 동작이 변화하려고 할 때 발생한다.
● 편집 모드 변화 (Editing Mode Changed) 이벤트(704)는 편집 모드가 변화했을 때 발생한다.
● 편집 모드 변화중 (Editing Mode Changing) 이벤트(705)는 편집 모드가 변화하려고 할 때 발생한다.
● 잉크 캔버스 어도너 입장 (Ink Canvas Adorner Entered) 이벤트(706)는 잉크 어도너에 입장(enter)했을 때 발생한다.
● 잉크 캔버스 어도너 퇴장 (Ink Canvas Adorner Exited) 이벤트(707)는 잉크 어도너를 퇴장(exit)했을 때 발생한다.
● 잉크 삭제 (Ink Erased) 이벤트(708)는 잉크가 삭제되었을 때 발생한다.
● 잉크 삭제중 (Ink Erasing) 이벤트(709)는 잉크가 삭제되려고 할 때 발생한다.
● 편집 모드 인버티드 변화 (Editing Mode Inverted Changed) 이벤트(710)는 인버티드 펜과 관련된 편집 모드가 변화했을 때 발생한다.
● 편집 모드 인버티드 변화중 (Editing Mode Inverted Changing) 이벤트(711)는 인버티드 펜과 관련된 편집 모드가 변화하려고 할 때 발생한다.
● 스타일러스의 인버티드 변화중 (Stylus Is Inverted, Changing) 이벤트(712)는 사용자가 스타일러스를 인버팅하는 중일 때 발생한다.
● 스타일러스의 인버티드 변화 (Stylus Is Inverted, Changed) 이벤트(713)는 사용자가 스타일러스를 인버트했을 때 발생한다.
● 선택 변화 (Selection Changed) 이벤트(714)는 선택이 변화했을 때 발생한다.
● 선택 변화중 (Selection Changing) 이벤트(715)는 선택이 변화하려고 할 때 발생한다.
● 선택 이동 (Selection Moved) 이벤트(716)는 선택이 이동했을 때 발생한다.
● 선택 이동중 (Selection Moving) 이벤트(717)는 선택이 이동하려고 할 때 발생한다.
● 선택 크기 조절 (Selection Resized) 이벤트(718)는 선택이 크기 조절되었을 때 발생한다.
● 선택 크기 조절중 (Selection Resizing) 이벤트(719)는 선택이 크기 조절되려고 할 때 발생한다.
● 선택 회전 (Selection Rotated) 이벤트(720)는 선택이 회전했을 때 발생한다.
● 선택 회전중 (Selection Rotating) 이벤트(721)는 선택이 회전되려고 할 때 발생한다.
● 스트로크 수집 (Stroke Collected) 이벤트(722)는 스트로크가 수집되었을 때 발생한다.
위의 이벤트들에 추가해서, 잉크 캔버스 객체(701)는 잉크 인식 이벤트들을 더 포함할 수 있거나 포함할 수 없다.
● 잉크 인식 (Ink Recognized) 이벤트(723)는 잉크가 인식되었을 때 발생한다.
● 감식된 단어 (Detected Word) 이벤트(724)는 단어가 감식되었을 때 발생한다.
● 감식된 이미지 (Detected Image) 이벤트(725)는 잉크 이미지가 감식되었을 때 발생한다.
● 감식된 선 (Detected Line) 이벤트(726)는 잉크 선이 감식되었을 때 발생한다.
● 감식된 문단 (Detected Paragraph) 이벤트(727)는 잉크 문단이 감식되었을 때 발생한다.
● 감식된 모양 (Detected Shape) 이벤트(728)는 잉크 모양이 감식되었을 때 발생한다.
● 감식된 주석 (Detected Annotation) 이벤트(729)는 잉크 주석이 감식되었을 때 발생한다.
● 잉크에서 문자로 변환 (Converted Ink to Text) 이벤트(730)는 잉크가 문자로 변환될 때 발생한다.
위의 이벤트들이 단지 설명의 목적으로만 리스트됨이 이해된다. 기타 이벤트들이 잉크 캔버스 객체의 위의 이벤트들에 추가해서 혹은 대신해서 사용될 수 있다.
<관계들>
도8은 잉크 캔버스 객체, 잉크 편집기, 및 다양한 동작들 간에 다양한 설명적 관계들을 도시한다. 잉크 캔버스 객체(801)는 하나 이상의 서브 소자(803)을 포함한다. 잉크 캔버스 객체(801)는 잉크 편집기(802)로 첨부되고 입력 이벤트들을 (초점 변화, 키보드 입력들, 스타일러스 입력들, 및 기타) 핸들링한다. 다른 것들 중에서, 잉크 편집기(802)는 (잉크 동작들 및 비잉크 특정 동작들을, 하지만 여기에 국한되지 않고, 포함) 구성 요소화된 편집 동작(804)의 활성화를 지휘한다. 잉크 특정 동작들은 잉크 편집 동작(805)에서 수집된다. 잉크 편집 동작(805)은 기본적 활성화/비활성화 휴리스틱들 (heuristics)을 제공한다 (펜업 (pen up)일 때 비활성화시키고 편집 모드 특성이 잉크 캔버스 객체에서 변할 때 비활성화시킴 기타 등등). 잉크 편집 동작(805)은 잉크 수집 동작(806), 선택 동작(807) (라소 (lasso) 선택을 포함), 및 추가 동작들(808)을 포함한다. 비잉크 특정 동작들은 러버밴드 (rubberband) 동작(809), 이동 동작(810), 크기 조절 동작(811), 및 추가 동작들(812)을 포함한다.
잉크 편집기(802)는 잉크 편집기(802)로부터 동작들(806-812)의 각각으로의 화살표들에 의해 도시된 바와 같이 다양한 동작들(806-812)을 관리한다. 다양한 동작들(806-812)은 관련 있는 기능에 따라서 그룹화될 수 있다. 예를 들어, 서브 소자(803)의 내용의 서브 세트의 생성 혹은 선택은, 라소 선택 동작(807) 및 러버밴드 선택 동작(809)을 포함하는, 하지만 거기에 국한되지 않고, 다양한 선택 동작들에 의해 수행될 수 있다. 서브 소자(803)의 선택된 내용은, 예를 들어 (다른 것들 중에) 이동 동작(810) 및 크기 조절 동작(811)과 같은 다양한 동작들에 의해 또한 수정되고 그리고/또는 조작될 수 있다.
잉크 캔버스 객체(801)로 다시 참조해서, 그것은 사용자가 그릴 수 있는 영역을 갖기 위해 자식이 없게 사용될 수 있다. 또한, 잉크 캔버스 객체(801)는, 잉크 캔버스 객체(801)가 임의의 기타 타입의 소자를 포함할 수 있으므로, 임의의 기타 소자 혹은 객체 혹은 컨트롤에 사용될 수 있다. 이것은 개발자가 쉽게 주석을 달 수 있게 하고 혹은 잉크칠을 위해 임의의 배경을 갖도록 한다. 잉크는 본 발명의 양태들에 대응해서 다양한 수준들에서 (소자들의 위 혹은 아래에서, 소자들과 혼합됨) 랜더링될 수 있음이 이해된다.
잉크 캔버스 객체를 액세스하기 위한 코드의 예는 다음과 같을 수 있다:
InkCanvas가 임의의 기타 타입의 소자를 포함할 수 있으므로, 잉크칠하는 능력은 다른 모든 타입들의 패널 (panel)들을 위해 가동될 필요는 없다. 다음은 잉크 캔버스와 흐름 패널 (잉크가 디스플래이되는 곳)간의 연관 관계를 가능하게 하는 코드 스닙펫 (snippet)의 또 다른 예이다:
다음은 소자 자체와 연계된 잉크 객체를 보인다. 그것은 동적 특성 혹은 편리성을 위해 .NET 특성으로서 이용 가능하다.
다음은 잉크 캔버스 객체를 사용하는 잉크를 포함하는 XAML의 예이다.
잉크 캔버스 객체의 다양한 점들은 다음의 하나 이상을 포함할 수 있다:
● 임의의 소자는 XAML에서 잉크 캔버스의 자식일 수 있다. 자식들은 절대적으로 위치될 수 있다.
● 임의의 동적 이벤트는 XML 속성을 셋팅함으로써 첨부되는 코드를 가질 수 있다.
● 임의의 동적 특성은 XML 속성을 셋팅함으로써 초기화될 수 있다.
● 동적 특성일 수 있거나 아닐 수 있는 잉크는 "잉크"라고 불리워지는 XML 속성에서 base64 ISF (잉크를 저장하는 형식)로서 시리얼화 (serialized)될 수 있다.
● 태그 (tag)의 몸체(body)는 최상위 인식 결과 스트링이다.
<클립핑>
도9a, 9b, 및 9c는 잉크 캔버스 객체의 가시적 속성을 도시한다. 잉크 캔버스에 디스플래이된 잉크는 클립핑될 수도 있고 되지 않을 수도 있다. 한 예에서, 잉크 캔버스 객체는 임의의 내용 혹은 단지 잉크 내용만 클립핑하는 것을 방지하기 위해 자동으로 크기 조절될 수 있다. 다른 경우에서, 잉크 캔버스는 한 크기로 세트되어질 수 있고 내용 혹은 잉크 내용만이 클립 (clip)될 수 있다. 클립핑은 클립 특성 혹은 클립 특성들의 조합에 의해 지정될 수 있다 (예를 들어, 일반 내용 클립 및 잉크에 대한 특정 클립 특성). 도9a에서, 잉크(901)의 전체 내용은 영역(902)에 도시된다. 도9b에서, 전체 잉크가 도시된다. 잉크의 처음 부분(903)은 영역(904)에 도시된다. 잉크의 나머지 부분(905)은 영역(904)의 끝에 남겨진다. 여기서, 잉크 클립핑이 오프 (off) 된다. 도9c에서, 잉크(906)는 영역(907)으로 클립핑된다. 여기서, 클립핑이 온 (on)된다.
본 발명의 양태들은 그것의 설명적 실시예들의 형태로서 설명되어져 왔다. 첨부된 청구항들의 범위 및 취지 안에서 다수의 기타 실시예들, 수정본들, 및 이형들을 이 개시의 고찰로부터 이 기술의 보통 숙련자들이라면 도출할 수 있을 것이다.
Claims (41)
- 이하에서 잉크 캔버스 객체로 지칭되는 객체(501; 601; 701; 801)에 의해 내용(content)의 계층 순서를 컨트롤하기 위한 스타일러스-기반 입력 디바이스(201)를 갖는 스타일러스-기반 입력 시스템에서의 사용을 위한 컴퓨터-구현 프로세스로서, 상기 잉크 캔버스 객체는 전자 잉크를 수신하도록 구성되고, 상기 프로세스는,상기 잉크 캔버스 객체에 하나 이상의 객체들을 수용(housing)하는 단계 -상기 잉크 캔버스 객체는 전자 잉크 기능을 제공하며, 상기 전자 잉크 기능은 사용자가 상기 스타일러스-기반 입력 디바이스를 사용할 때 포착되는 전자 정보의 포착 및 디스플래이를 포함함-;상기 하나 이상의 객체들을 랜더링하는 단계; 및상기 하나 이상의 객체들 위에 전자 잉크를 랜더링하는 단계를 포함하고, 상기 전자 잉크는 상기 잉크 캔버스 객체에 의해 하나 이상의 객체들에 대해 랜더링되고, 상기 잉크 캔버스 객체는 다양한 응용 프로그램 프로그래밍 인터페이스들을 포함하는 컴퓨터-구현 프로세스.
- 삭제
- 제1항에 있어서,상기 잉크 캔버스 객체의 특성(property)을 변경하는 단계를 더 포함하는 컴퓨터-구현 프로세스.
- 제1항에 있어서,상기 잉크 캔버스 객체에 의해 이벤트를 발효하는(throwing) 단계를 더 포함하는 컴퓨터-구현 프로세스.
- 제1항에 있어서,상기 잉크 캔버스 객체와 관련된 방법(method)을 수행하는 단계를 더 포함하는 컴퓨터-구현 프로세스.
- 삭제
- 컴퓨터로 실행 가능한 프로그램을 저장하는 형태로 포함하는 컴퓨터 판독가능 매체로서, 상기 프로그램은 이하에서 잉크 캔버스 객체로 지칭되는 객체(501; 601; 701; 801)에 의해 내용의 계층 순서를 컨트롤하기 위한 스타일러스-기반 입력 디바이스(201)를 갖는 스타일러스-기반 입력 시스템에서의 사용을 위한 것이고, 상기 잉크 캔버스 객체는 전자 잉크를 수신하도록 구성되며, 상기 프로그램은 제1항, 제3항, 제4항 및 제5항 중의 어느 하나에 따른 상기 프로세스를 수행하도록 구성되는 컴퓨터 판독가능 매체.
- 이하에서 잉크 캔버스 객체로 지칭되는 객체(501; 601; 701; 801)에 의해 내용의 계층 순서를 컨트롤하기 위한 스타일러스-기반 입력 디바이스(201)를 갖는 스타일러스-기반 입력 시스템으로서, 상기 잉크 캔버스 객체는 전자 잉크를 수신하도록 구성되고, 상기 시스템은,상기 잉크 캔버스 객체에 하나 이상의 객체들을 수용하기 위한 수단 -상기 잉크 캔버스 객체는 전자 잉크 기능을 제공하며, 상기 전자 잉크 기능은 사용자가 상기 스타일러스-기반 입력 디바이스를 사용할 때 포착되는 전자 정보의 포착 및 디스플래이를 포함함-;상기 하나 이상의 객체들을 랜더링하기 위한 수단; 및상기 하나 이상의 객체들 위에 전자 잉크를 랜더링하기 위한 수단을 포함하고, 상기 전자 잉크는 상기 잉크 캔버스 객체에 의해 하나 이상의 객체들에 대해 랜더링되고, 상기 잉크 캔버스 객체는 다양한 응용 프로그램 프로그래밍 인터페이스들을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체의 특성을 변경하기 위한 수단을 더 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체에 의해 이벤트를 발효하기 위한 수단을 더 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체와 관련된 방법을 수행하기 위한 수단을 더 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 마컵 언어(markup language)로 기록되는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 잉크 인식 기능을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 확장할 수 있는(extensible) 편집 기능을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 상기 하나 이상의 객체들을 랜더링한 후, 최후에 랜더링된 객체 위에 상기 전자 잉크를 랜더링하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 하나 이상의 동작들을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 적어도 하나의 방법을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 적어도 하나의 특성을 포함하는 스타일러스-기반 입력 시스템.
- 제8항에 있어서,상기 잉크 캔버스 객체는 적어도 하나의 이벤트를 포함하는 스타일러스-기반 입력 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2003/026203 WO2005031594A1 (en) | 2003-08-21 | 2003-08-21 | Ink collection and rendering |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060045311A KR20060045311A (ko) | 2006-05-17 |
KR100952562B1 true KR100952562B1 (ko) | 2010-04-12 |
Family
ID=37149320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047009034A KR100952562B1 (ko) | 2003-08-21 | 2003-08-21 | 스타일러스-기반 입력 시스템 및 그를 위한 컴퓨터-구현 프로세스 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100952562B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272876A (ja) * | 1997-11-25 | 1999-10-08 | Fuji Xerox Co Ltd | 複数のグラフィック・オブジェクトの動的グループ化方法及びシステム |
US20010056442A1 (en) | 2000-06-21 | 2001-12-27 | Bodin Dresevic | Information storage using tables and scope indices |
US20020013795A1 (en) * | 2000-06-21 | 2002-01-31 | Bodin Dresevie | Serial storage of ink and its properties |
JP2002082937A (ja) * | 2000-06-21 | 2002-03-22 | Microsoft Corp | インクの分類、係留、および変換 |
-
2003
- 2003-08-21 KR KR1020047009034A patent/KR100952562B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272876A (ja) * | 1997-11-25 | 1999-10-08 | Fuji Xerox Co Ltd | 複数のグラフィック・オブジェクトの動的グループ化方法及びシステム |
US20010056442A1 (en) | 2000-06-21 | 2001-12-27 | Bodin Dresevic | Information storage using tables and scope indices |
US20020013795A1 (en) * | 2000-06-21 | 2002-01-31 | Bodin Dresevie | Serial storage of ink and its properties |
JP2002082937A (ja) * | 2000-06-21 | 2002-03-22 | Microsoft Corp | インクの分類、係留、および変換 |
Also Published As
Publication number | Publication date |
---|---|
KR20060045311A (ko) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2010219367B2 (en) | Ink collection and rendering | |
US7499047B2 (en) | Ink editing architecture | |
US8166388B2 (en) | Overlaying electronic ink | |
US7137077B2 (en) | Freeform encounter selection tool | |
US7259752B1 (en) | Method and system for editing electronic ink | |
US7458038B2 (en) | Selection indication fields | |
KR101015291B1 (ko) | 동적으로 확장하는 입력 패널로 사용자 입력을 추가하는방법 | |
JP4694606B2 (ja) | ジェスチャ判定方法 | |
TWI269195B (en) | Method for manipulating ink, and graphical user interface configured to interface a user with a control | |
US20040257346A1 (en) | Content selection and handling | |
US6965384B2 (en) | In-situ digital inking for applications | |
US20050015731A1 (en) | Handling data across different portions or regions of a desktop | |
US20030214553A1 (en) | Ink regions in an overlay control | |
JP2019507915A (ja) | ジェスチャを用いたノートテイキングのための装置および方法 | |
JP2006085703A (ja) | フリックジェスチャ | |
KR20040086544A (ko) | 제스처를 위한 동적 피드백 | |
EP1363185A2 (en) | Method and apparatus for hollow selection feedback | |
KR100952562B1 (ko) | 스타일러스-기반 입력 시스템 및 그를 위한 컴퓨터-구현 프로세스 | |
RU2365979C2 (ru) | Ввод и воспроизведение электронных чернил |
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 | ||
LAPS | Lapse due to unpaid annual fee |