KR101572307B1 - 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체 - Google Patents

정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체 Download PDF

Info

Publication number
KR101572307B1
KR101572307B1 KR1020130017848A KR20130017848A KR101572307B1 KR 101572307 B1 KR101572307 B1 KR 101572307B1 KR 1020130017848 A KR1020130017848 A KR 1020130017848A KR 20130017848 A KR20130017848 A KR 20130017848A KR 101572307 B1 KR101572307 B1 KR 101572307B1
Authority
KR
South Korea
Prior art keywords
touch
touch points
unit
points
position information
Prior art date
Application number
KR1020130017848A
Other languages
English (en)
Other versions
KR20130098907A (ko
Inventor
히카루 이토
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20130098907A publication Critical patent/KR20130098907A/ko
Application granted granted Critical
Publication of KR101572307B1 publication Critical patent/KR101572307B1/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
    • 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
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

터치 패널 상에서 미리 결정된 검출 주기에 따라 검출된 하나 이상의 터치점들의 위치 정보를 하나씩 취득하도록 구성된 정보 처리 장치를 위한 제어 방법으로서, 하나 이상의 터치점들의 각각의 위치 정보를 홀딩 유닛 내에 홀딩하는 단계, 위치 정보가 홀딩 유닛 내에서 홀딩되는 터치점들의 수를 취득하는 단계, 취득된 터치점들의 수가 둘 이상인 경우에, 위치 정보가 홀딩 유닛 내에서 홀딩되는 모든 터치점들의 최신 위치 정보를, 각각의 미리 결정된 검출 주기에, 결정하는 단계, 및 결정 이후에 정보 처리 장치에 대해 실시되는 멀티-터치 조작을 판정하는 단계를 포함한다.

Description

정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체{INFORMATION PROCESSING APPARATUS, CONTROL METHOD THEREOF, AND STORAGE MEDIUM}
본원 발명은 멀티-터치 조작이 가능한 장치에서의 오동작들을 개선하기 위한 기술에 관한 것이다.
최근에, 터치 입력 장치들이 널리 이용되고 있으며, 그러한 장치들은 손가락 또는 스타일러스에 의한 사용자의 스크린 터치에 응답하여, 터치된 위치의 X 좌표 값 및 Y 좌표 값을 입력 값들로서 수신하여 그러한 입력 값들을 기초로 하는 여러 가지 처리를 실시한다.
또한, 최근에, 스크린 상의 복수의 점을 터치함으로써 조작이 수행되는 멀티-터치 기술이 개발되었다. 일반적으로, 터치 패널에 대한 멀티-터치 조작으로서, 사용자가 터치하고 있는 두 점들을 근접하게 또는 멀리 이동시키는 조작을 "핀치(pinch)" 조작으로 지칭한다. 조작들 중에서, 2개의 점들을 근접하게 이동시키는 조작은 "핀치-인" 조작으로 지칭되고, 그리고 이러한 조작으로, 디스플레이되는 화상이 작아진다. 다른 한편으로, 2개의 점들을 멀리 이동시키는 조작은 "핀치-아웃" 조작으로 지칭되고, 이러한 조작으로, 디스플레이되는 화상이 확대된다.
일본 특허출원 제2011-059952 호에 개시된 기술에서, 스크린을 터치하고 있는 2개의 손가락들 중 적어도 하나가 이동할 때, 2개의 손가락들 사이의 거리의 변화에 따라 핀치 조작이 인식되고, 그리고 화상의 확대 비율이 변화되며, 그리고 동시에 디스플레이되는 화상이 손가락의 이동 방향에 따라 스크롤(scrolled)된다.
본원 발명은, 멀티-터치 조작이 가능하고, 정보 처리 장치 내에서 사용자의 의도에 반하여 실행되는 오동작들을 감소시킬 수 있는 정보 처리 장치에 관한 것이다.
본원 발명의 추가적인 특징들 및 양태들이 첨부 도면들을 참조한 예시적인 실시예들에 관한 이하의 상세한 설명으로부터 명확해질 수 있을 것이다.
본원 명세서에 포함되고 그리고 그 일부를 구성하는 첨부 도면들은 본원 발명의 예시적인 실시예들, 특징들, 및 양태들을 도시하고 그리고, 본원 명세서의 설명과 함께, 본원 발명의 원리들을 설명하는 역할을 한다.
도 1a는 정보 처리 장치의 예시적인 하드웨어 구성을 도시한 블록도이다. 도 1b는 정보 처리 장치의 예시적인 기능 구성을 도시한 블록도이다.
도 2는 멀티-터치 조작을 인식하기 위한 정보 처리 장치에 의해 실행되는 처리 흐름을 도시한 흐름도이다.
도 3a는 정보 처리 장치에 의해 실행되는 예시적인 터치 검출 처리를 도시한 흐름도이다. 도 3b는 정보 처리 장치에 의해 실행되는 출력 처리의 예를 도시한 흐름도이다.
도 4a는 사용자에 의해 실시되는 예시적인 멀티-드래그(drag) 조작을 도시한 도면이다. 도 4b는 사용자가 멀티-드래그 조작을 실시할 때 검출되는 터치점들(touched points)의 예시적인 분포를 도시한 도면이다.
도 5a 내지 5f는 검출된 터치점들에 대해서 홀딩되는 정보의 예들을 도시한 표들이다.
도 6은 정보 처리 장치에 의해 멀티-터치 조작을 인식하기 위한 흐름을 도시하는 흐름도이다.
도 7a는 사용자가 핀치 조작을 실행할 때 검출되는 터치점들의 예시적인 분포를 도시한 도면이다. 도 7b 내지 7e는 검출된 터치점들에 대해서 홀딩되는 정보의 예들을 도시한 표들이다.
도 8은 정보 처리 장치의 예시적인 기능 구성을 도시한 블록도이다.
도 9는 정보 처리 장치에 의한 멀티-터치 조작을 인식하기 위한 흐름을 도시한 흐름도이다.
도 10은 정보 처리 장치에 의해 실시되는 이동 벡터 발생 처리의 예시적인 흐름을 도시한 흐름도이다.
도 11a 내지 11f는 사용자가 터치 조작들을 실시할 때 검출된 터치점들의 예시적인 분포들을 도시한 도면들이다.
이하에서는, 첨부 도면들을 참조하여, 본원 발명의 여러 가지 예시적인 실시예들, 특징들, 및 양태들을 설명할 것이다.
이하에 기술된 예시적인 실시예들은 단지 예들이고 그러한 것들로 한정되는 것은 아니다.
제1의 예시적인 실시예에서, 멀티-터치 상태가 가정된다. 멀티-터치 상태에서, 사용자는 2개의 점들을 하나의 시점에 터치한다. 사용자의 의도에 부합하는 멀티-터치 조작을 인식하기 위해, 사용자에 의해 정보 처리 장치(100)에 대해 실시되는 조작 내용이 2개의 점들 모두의 위치 정보의 업데이트의 완료에 응답하여 결정되는 예를 설명한다.
예시적인 멀티-터치 조작으로서, 사용자가 2개의 터치점들을, 그들 사이의 거리를 유지하면서 동일한 방향으로 이동시키려는 경우(이하에서, "멀티-드래그" 조작으로서 지칭된다)를 설명한다.
지금까지는, 멀티-터치 조작을 인식하기 위해, 터치 패널에 의해 검출된 터치점의 정보가 하나씩 통지되었고, 그리고 처리는 각각의 점에 대해서 취득된 위치 정보를 기초로 실시되었다. 따라서, 멀티-드래그 조작을 실시하기 위해 사용자가 이동한 2개의 터치점들 중에서, 제1 점이 이동된 이후의 위치가 취득되는 시점에, 이동 전의 제2 터치점의 위치가 홀딩된다. 결과적으로, "두 점들 사이의 거리"가 사용자의 손가락의 이동량에 상응하는 거리만큼 증가되었다는 것이 결정된다.
이어서, 이동 이후의 제2 점의 위치가 취득되는 시점에, 2 점들 사이의 거리가 이동 전의 거리로 되돌아 간다. 결과적으로, "두 점들 사이의 거리"가 감소되었다는 것이 결정된다.
그에 따라, 사용자가 멀티-드래그 조작을 실시하고자 할 때, 핀치-아웃 및 핀치-인이 전술한 결정 결과들을 기초로 교대로 통지된다. 결과적으로, 디스플레이되는 화상이 교대로 확대되고 감소되는 부자연스러운 디스플레이가 사용자의 의도와는 달리 장치 상에서 실시된다.
반대로, 이러한 예시적인 실시예에서, 멀티-터치 조작을 구성하는 복수의 터치점의 위치 정보가 취득되고, 취득된 터치점들 모두의 위치 정보의 업데이트의 완료에 응답하여, 사용자에 의해 실시된 조작 내용이 결정된다.
도 1a는 이러한 예시적인 실시예에 따른 정보 처리 장치(100)의 예시적인 하드웨어 구성을 도시한 도면이다. 중앙 처리 유닛(CPU)(101)은 여러 가지 종류의 처리에 대해서 계산들 및 논리적 결정들을 실시하고 그리고 시스템 버스(110)에 연결된 각각의 부품을 제어한다.
정보 처리 장치(100)는 프로그램 메모리 및 데이터 메모리를 포함하는 메모리들을 구비한다. 리드 온리 메모리(ROM)(102)는 이하에서 설명되는 CPU(101)에 의한 여러 가지 종류의 처리 과정들을 제어하기 위한 프로그램들을 저장하기 위한 프로그램 메모리이다. 랜덤 액세스 메모리(RAM)(103)는 CPU(101)를 위한 전술한 프로그램들을 위한 작업 영역(work area), 오류 처리에 대한 데이터의 저장 영역, 및 전술한 제어 프로그램을 위한 로딩 영역을 포함한다. 프로그램 메모리는 외부 저장 디바이스(109)로부터의 프로그램들을 RAM(103)으로 로딩함으로서 실현될 수 있다.
하드 디스크(HD)(104)는 이러한 예시적인 실시예에 따라 데이터 및 프로그램들을 저장한다. 이러한 예시적인 실시예에서, HD(104)가 복수의 화상 데이터를 저장한다. 입력/출력 인터페이스(I/F)(107)를 통해서 연결된 외부 저장 디바이스(109)가 HD(104) 대신에 이용될 수 있을 것이다.
외부 저장 디바이스(109)는, 예를 들어, 매체(기록 매체) 및 이러한 매체에 액세스하기 위한 외부 저장 드라이브로 구성될 수 있다. 그러한 매체는, 예를 들어, 플렉서블 디스크(FD), 콤팩트 디스크 ROM, 디지털 다기능 디스크(DVD), 범용 시리얼 버스 메모리, 자기 광학 디스크, 및 플래시 메모리를 포함한다.
또한, 외부 저장 디바이스(109)는 네트워크를 통해서 연결된 서버 장치일 수 있을 것이다. 이러한 예시적인 실시예에서, 필수적인 정보가 RAM(103), HD(104), 및 외부 저장 디바이스(109)에 저장된다.
입력 인터페이스(I/F)(105)는 입력 디바이스로부터 신호 출력을 취득하기 위해서 포인팅 디바이스와 같은 입력 디바이스를 제어한다. 출력 I/F(106)는 이하에서 설명하는 여러 가지 종류의 처리의 결과의 액정 디스플레이 및 텔레비전 모니터와 같은 디스플레이 유닛을 포함하는 출력 장치로의 출력을 제어하기 위한 제어 신호를 출력한다.
이러한 예시적인 실시예에서, 정보 처리 장치(100) 내에 통합된 터치 패널 디스플레이(108)는 터치 패널(입력 디바이스) 및 디스플레이 디바이스(출력 디바이스)를 포함한다. 그러나, 정보 처리 장치(100)에 연결된 외부 디바이스가 이용될 수 있을 것이고 그리고 독립적인 디바이스들이 또한 이용될 수 있을 것이다.
이러한 예시적인 실시예에 따른 입력 디바이스로서의 터치 패널로부터, 사용자에 의해 터치된 또는 분리된 점의 검출을 나타내는 신호가 터치 이벤트로서 정보 처리 장치(100)에 통지된다. 이때, 입력 I/F(105)는 터치 검출 영역을 스캐닝함으로써 순차적으로 하나씩 검출되는 터치 이벤트를 취득한다.
이러한 예시적인 실시예에서, 커패시턴스 검출 타입 터치 패널이 이용되고, 점들의 좌표들은 터치 이벤트의 통지를 위해서 사용자와 패널 표면 사이의 접촉 영역에서 터치점으로서 지정된다. 그러나, 터치 패널 타입이 커패시턴스 검출 타입으로 제한되지 않는다.
도 1b는 이러한 예시적인 실시예에 따른 정보 처리 장치(100)의 기능 구성을 도시한 기능 블록도이다. 정보 처리 장치(100)는 검출 유닛(111), 제1 취득 유닛(112), 결정 유닛(114), 제2 취득 유닛(115), 판정 유닛(116), 및 디스플레이 제어 유닛(118)을 포함한다.
이러한 기능 유닛들은 ROM(102) 내에 저장된 프로그램을 RAM(103) 내로 로딩하고 실행하는 CPU(101)에 의해 구현된다. 또한, 이러한 예시적인 실시예에서, 홀딩 유닛(113)은 RAM(103)에 의해 구성되고, 저장 유닛(119)은 HD(104)의 기능 유닛이다. 이하에서, 각 부품을 설명할 것이다.
검출 유닛(111)은 터치 패널 디스플레이(108)로부터 통지된 터치 이벤트의 정보를 하나씩 순차적으로 검출하고 그리고 그 정보를 분석한다.
제1 취득 유닛(112)은 검출 유닛(111)에 의해 검출된 터치점에 대한 정보를 취득한다. 이어서, 터치가 검출된 시간(검출 시간) 및 터치점의 위치를 나타내는 정보가 터치점의 ID와 연관되고, 이어서 각각의 터치점에 대해서 홀딩 유닛(113) 내에 저장된다. ID를 이용하여, 동일한 터치점이 식별될 수 있다.
그에 따라, 제1 취득 유닛(112)은, 제1 취득 유닛(112)이 터치점의 정보를 취득할 때마다 홀딩 유닛(113)에 의해 홀딩되는 정보를 동일한 ID를 이용하여 업데이트한다. 터치점들의 검출 순서를 IDs과 연관시킴으로써, 복수의 터치점이 검출될 때 관리가 보다 더 용이해진다.
결정 유닛(114)은, 검출된 터치점들 모두의 위치 정보가 업데이트되었는지의 여부를 결정하기 위해서, 홀딩 유닛(113) 내에서 홀딩되는 정보를 참조한다.
제2 취득 유닛(115)은, 제1 취득 유닛(112)에 의해 취득된 정보를 기초로, 터치점들의 위치들이 업데이트되기 전과 후에 2개의 터치점들 사이의 거리를 계산하고 그 계산들 사이의 변경된 거리량을 계산하며, 그 변경된 거리량의 절대값을 계산한다.
구체적으로, 제2 취득 유닛(115)은 제1 취득 유닛(112)에 의해 취득된 2개의 터치점들의 좌표들을 기초로 가장 짧은 거리를 계산하고, 그리고 그 계산 결과를 홀딩한다. 이어서, 제2 취득 유닛(115)은 터치점들의 업데이트 이후에 새롭게 계산된 두 점들의 거리와 홀딩된 거리 사이의 비교 연산을 실시하여, 거리의 변화량 및 그 절대값을 취득한다.
판정 유닛(116)은 제2 취득 유닛(115)에 의해 취득된 두 점들 사이의 거리의 변화량의 절대값을 취득하여 그 값을 미리 결정된 임계값과 비교한다. 이러한 예시적인 실시예에서, 만약 취득된 변화량이 미리 결정된 임계값 이상이면, 판정 유닛(116)은 사용자에 의해 실시된 조작이 핀치 조작(제1 조작)이라고 판정한다. 다른 한편으로, 만약 취득된 변화량이 미리 결정된 임계값보다 작다면, 판정 유닛(116)은 사용자에 의해 실시된 조작이 멀티-드래그 조작(제2 조작)이라고 판정한다.
만약 핀치 조작이 입력된 것으로 판정 유닛(116)이 판정한다면, 핀치 제어 유닛(117)은, 제2 취득 유닛(115)에 의해 취득된 변화량을 기초로, 핀치-아웃 또는 핀치-인 조작이 시작되었는지의 여부를 결정한다.
디스플레이 제어 유닛(118)은 판정 유닛(116)에 의해 처리된 정보를 취득하고, 출력 디바이스 상에서 디스플레이하기 위한 디스플레이 화상을 생성하며, 이러한 예시적인 실시예에서, 상기 출력 디바이스는 터치 패널 디스플레이가 된다. 디스플레이 상에서, 사용자에 의해 멀티-터치 조작이 실시되기 전에, 저장 유닛(119) 내에 저장된 복수의 화상 데이터 중 적어도 하나가 디스플레이된다.
만약 입력 조작이 핀치 조작인 것으로 판정 유닛(116)이 판정한다면, 판정 유닛(116)은 핀치 제어 유닛(117)으로부터 매개변수를 취득하고, 디스플레이 화상을 생성하며, 상기 디스플레이 화상은 사용자가 조작을 실시하기 전에 디스플레이된 화상을 확대 또는 축소함으로써 생성된다. 다른 한편으로, 이러한 예시적인 실시예에서, 터치점들이 이동한 방향을 기초로, 입력 조작이 멀티-드래그 조작인 것으로 판정 유닛(116)이 판정한다면, 판정 유닛(116)은 저장 유닛(119) 내에 저장된 복수의 화상 데이터 중에서 지정 화상을 디스플레이하기 위한 디스플레이 화상을 생성한다.
도 2는 이러한 예시적인 실시예에 따른 정보 처리 장치(100)에 의해 멀티-터치 조작을 인식하기 위한 흐름을 도시한 흐름도이다.
이러한 예시적인 실시예에 따른 정보 처리 장치(100)는, 저장 유닛(119) 내에 저장된 화상 데이터 중 적어도 하나를 터치 패널 디스플레이(108) 상에 디스플레이하는 것에 응답하여 멀티-터치 조작을 인식하기 위한 처리를 시작한다.
첫 번째로, 단계(S201)에서, 터치점이 취득된다. 이러한 예시적인 실시예에서, 검출 유닛(111)은 터치 패널의 입력 영역(401)을 스캐닝함으로써 검출된 터치 이벤트를 하나씩 취득하고 그리고 그 취득된 이벤트를 분석한다.
이어서, 제1 취득 유닛(112)은 각각의 터치점에 대해서 입력 영역(401) 상에서 검출된 점에 관한 정보를, 홀딩 유닛(113) 내에 홀딩한다. 이러한 예시적인 실시예에서, 터치점의 ID, 좌표들로 표현된 위치 정보를 나타내는 정보, 그리고 취득 시간이 홀딩 유닛(113) 내에 홀딩된다. 단계(S201)에서 실시되는 처리에 관한 상세한 내용을 이하에서 설명할 것이다.
단계(S202)에서, 결정 유닛(114)은, 복수의 터치점이 입력 영역(401) 내에서 검출되었는지의 여부를 결정한다. 이러한 예시적인 실시예에서, 각각의 터치점이 ID에 의해 식별되기 때문에, 홀딩 유닛(113) 내에 저장된 정보들 중에서 IDs의 수를 참조함으로써, 터치점들의 수가 취득된다.
이러한 예시적인 실시예에서, 정보 처리 장치(100)는, 2개의 터치점들을 이용하여 취득된 멀티-터치 조작이 핀치 조작의 멀티-드래그인지의 여부를 결정한다. 그에 따라, 이하에서는, 입력 영역(401) 내에서, 2개 이하의 터치점들이 검출되는 것을 가정하여, 설명할 것이다.
만약 둘 이상의 터치점들이 검출된 것으로 결정된다면(단계(S202)의 '예'), 처리가 단계(S203)으로 진행된다. 다른 한편으로, 만약 둘 이상의 터치점들이 검출되지 않은 것으로 결정된다면(단계(S202)의 '아니오'), 처리가 종료된다.
단계(S203)에서, 결정 유닛(114)은, 홀딩 유닛(113) 내에서 관련 정보가 홀딩되는 모든 터치점들의 위치 정보가 업데이트되었는지의 여부를 결정한다. 이러한 예시적인 실시예에서, 단계(S201)에서, 터치점의 정보가 업데이트될 때 제1 취득 유닛(112)이 업데이트 플래그(flag)를 셋팅하고, 그리고 단계(S203)에서, 업데이트 플래그들의 수를 기초로 결정 유닛(114)이 결정을 실시한다.
단계(S203)에서의 제1 처리의 결과는 항상 "예"인 것으로 결정된다. 모든 터치점들의 위치 정보가 업데이트된 것으로 결정된다면(단계(S203)에서 '예'), 업데이트 플래그가 리셋되고 처리가 단계(S204)로 진행된다. 만약 모든 터치점들의 위치 정보가 업데이트되지 않은 것으로 결정된다면(단계(S203)에서 '아니오'), 처리가 종료된다.
또한, 터치점들이 업데이트되었는지의 여부를 결정하기 위한 방법은 그러한 것으로 제한되지 않으며, 그리고 다른 방법들이 이용될 수 있다. 예를 들어, 결정 유닛(114)은 홀딩 유닛(113) 내에 홀딩된 각각의 터치점의 검출 시간을 참조할 수 있을 것이고, 그리고 단계(S203)에서의 처리가 마지막으로 "예"인 것으로 결정되는 시간 이후에 검출되는 터치점들 모두의 정보가 업데이트되었는지의 여부를 기초로 결정을 실시한다.
전술한 바와 같이, 이러한 예시적인 실시예에서, 모든 터치점들의 최신 위치 정보는, 모든 홀딩된 터치점들의 위치 정보가 업데이트되었다는 사실에 의해 지정된다.
단계(S204)에서, 판정 유닛(116)은 적어도 하나의 터치점이 이동되었는지의 여부를 판정한다. 이러한 예시적인 실시예에서, 단계(S201)에서, 이미 검출된 ID와 동일한 ID를 갖는 터치점의 새로운 위치 정보가 취득될 때, 이동 플래그가 셋팅되고 홀딩 유닛(113) 내에 홀딩된다.
그에 따라, 단계(S204)에서, 판정 유닛(116)은 홀딩 유닛(113) 내의 이동 플래그를 체크하는 것에 의해 터치점이 이동하였는지의 여부를 판정할 수 있다. 만약 적어도 하나의 터치점이 이동된 것으로 결정된다면(단계(S204)의 '예'), 이동 플래그가 리셋되고 처리가 단계(S206)로 진행된다. 만약 터치점이 이동되지 않았다는 것이 결정된다면(단계(S204)의 '아니오'), 처리가 단계(S205)로 진행된다.
또한, 터치점이 이동되었는지의 여부를 판정하기 위한 방법이 그러한 것으로 제한되지 않는다. 예를 들어, 홀딩 유닛(113)의 정보가 업데이트될 때 업데이트 이전의 위치 정보가 홀딩되고, 그리고 판정 유닛(116)은, 이전의 위치 정보와 업데이트 이후의 위치 정보 사이의 거리가 미리 결정된 거리보다 큰지 여부를 기초로, 터치점이 이동되었는지의 여부를 판정할 수 있을 것이다.
단계(S205)에서, 제2 취득 유닛(115)은 터치된 두 점들 사이의 거리를 취득한다. 제2 취득 유닛(115)은 제1 취득 유닛(112)에 의해 취득된 정보를 기초로 2개의 터치점들 사이의 가장 짧은 거리를 계산하고, 그리고 그 계산치를 홀딩한다.
다른 한편으로, 단계(S206)에서, 제2 취득 유닛(115)은 입력 영역(401) 내에서 검출된 2개의 터치점들 사이의 거리의 변화량을 검출한다. 제2 취득 유닛(115)은 제1 취득 유닛(112)에 의해 취득된 정보를 기초로 2개의 터치점들 사이의 가장 짧은 거리를 계산하고, 그리고 그 계산치를 홀딩한다.
이어서, 업데이트 이후의 2개의 점들 사이의 새롭게 계산된 거리, 그리고 단계(S205)에서 또는 단계(S206)에서 최신의 2개의 점들 사이의 계산되고 홀딩된 거리에 대한 비교 계산을 거쳐, 거리의 변화량 및 절대값을 취득한다.
이어서, 단계(S207)에서, 판정 유닛(116)은, 제2 취득 유닛(115)에 의해 취득된 2개의 점들 사이의 거리의 변화량의 절대값이 임계값("a")보다 작은지 여부를 판정한다.
여기에서, "a"는 정보 처리 장치(100) 내에서 미리 등록된(registered) 거리에 대한 임계값이다. 임계값("a")은, 정보 처리 장치(100)에 의해, 사용자에 의해 터치된 2개의 점들의 거리가 핀치 조작의 경우에 넓어지거나 좁아지는 것으로 인식될 필요가 있는 2개의 점들 사이의 거리의 변화량을 기초로, 셋팅된다.
만약 변화량(절대값)이 임계값("a")보다 작은 것으로 결정된다면(단계(S207)에서 '예'), 판정 유닛(116)은 사용자에 의한 조작 입력이 멀티-드래그 조작이라고 판정하고, 그리고 처리가 단계(S208)로 진행한다. 변화된 양(절대값)이 임계값("a") 이상으로 결정된다면(단계(S207)에서 '아니오'), 판정 유닛(116)은 사용자에 의한 조작 입력이 핀치 조작이라고 판정하고, 그리고 처리가 단계(S210)로 진행한다.
단계(S208)에서, 판정 유닛(116)은 멀티-드래그 조작이 입력되었다는 것을 디스플레이 제어 유닛(118)에 통지한다. 단계(S209)에서, 멀티-드래그 조작에 상응하는 처리가 실시된다. 이러한 예시적인 실시예에서, 저장 유닛(119) 내에 저장된 복수의 데이터 중의 지정 화상 데이터를 터치 패널 디스플레이 상에 디스플레이하기 위한 처리가 실시된다. 이에 대한 구체적인 내용은 이하에서 설명한다.
다른 한편으로, 단계(S210)에서, 핀치 제어 유닛(117)은 핀치-아웃 또는 핀치-인 조작이 시작되었는지 여부를 결정한다. 이러한 예시적인 실시예에서, 핀치 제어 유닛(117)은, 제2 취득 유닛(115)에 의해 취득된 2개의 점들 사이의 변화량을 기초로, 터치된 2개의 점들 사이의 거리가 넓어졌는지 또는 좁아졌는지의 여부를 결정한다.
이어서, 넓어지거나 좁아진 2개의 점들 사이의 거리의 수를 카운트한다. 단계(S210)에서, 터치된 2개의 점들 사이의 거리가 넓어졌다는 것에 대해서 연속적으로 카운팅되는 횟수들의 수가 2차례 이상이라면, 핀치-아웃 조작이 시작되었다는 것이 결정된다.
터치된 2개의 점들 사이의 거리가 좁아졌다는 것에 대해서 연속적으로 카운팅되는 횟수들의 수가 2회 이상이라면, 핀치-인 조작이 시작되었다는 것이 결정된다. 다른 한편으로, 터치된 2개의 점들 사이의 거리가 넓어지거나 좁아졌다는 것에 대해서 연속적으로 카운팅되는 횟수들의 수가 1회이면, 그것이 핀치-아웃 또는 핀치-인 조작인지의 여부가 결정되지 않는다. 이러한 경우에, 핀치 조작이 시작되지 않았다고 결정된다.
단계(S207)에서, 터치 패널과 사용자의 손가락들의 상태들에 의해 유발된 2개의 점들의 거리의 변화량(절대값)이 임계값("a")이거나 그보다 크다고 잘못 결정된 오류가 발생하였을 때에도, 오동작들을 방지하기 위해 이러한 처리가 실시된다. 그에 따라, 핀치 조작을 실시하기 위한 사용자의 의도가 확실하게 반영된다.
만약 핀치-아웃 또는 핀치-인 조작이 시작되었다는 것이 결정된다면(단계(S210)에서 '예'), 처리는 단계(S211)로 진행된다. 다른 한편으로, 핀치-아웃 조작 및 핀치-인 조작 중 어느 것도 실시되지 않았다는 것이 결정된다면(단계(S210)에서 '아니오'), 처리가 종료된다.
단계(S211)에서, 핀치 제어 유닛(117)은 핀치-아웃 또는 핀치-인 조작이 입력되었다는 것을 디스플레이 제어 유닛(118)에 통지한다. 단계(S212)에서, 디스플레이 제어 유닛(118)은 핀치-아웃 또는 핀치-인 조작의 입력에 의해 유발되는 결과를 출력한다.
이러한 예시적인 실시예에서, 핀치-아웃 조작이 입력될 때, 사용자가 터치점들을 이동시킨 거리에 따라 디스플레이 상에서 확대된 디스플레이 화상을 디스플레이하기 위한 처리가 실시된다. 또한, 핀치-인 조작이 입력될 때, 사용자가 터치점들을 이동시킨 거리에 따라 디스플레이 상에 축소된 디스플레이 화상을 디스플레이하기 위한 처리가 실시된다.
전술한 바와 같이, 정보 처리 장치(100)에 의한 멀티-터치 조작을 인식하기 위한 처리가 실시된다. 일련의 처리가 완료된 후에, 처리가 단계(S201)로 복귀되고, 그리고 새로운 터치 이벤트가 통지될 때마다, 전술한 처리가 실시된다.
도 3a는 단계(S201)에서 실시된 터치점 검출 처리의 흐름을 도시한 흐름도이다.
단계(S301)에서, 검출 유닛(111)은 터치 패널로부터 통지된 터치 이벤트가 "TOUCH"라는 것을 결정한다.
이러한 예시적인 실시예에서 사용된 터치 패널로부터, 입력 영역이 터치되었다는 것을 검출하기 위해서 입력 영역(401)이 스캔될 때 "TOUCH"가 터치 이벤트로서 출력된다. 검출된 터치가 해제될 때, "RELEASE"가 터치 이벤트로서 통지된다.
만약 통지된 터치 이벤트가 "TOUCH"인 것으로 결정된다면(단계(S301)에서 '예'), 처리가 단계(S303)로 진행된다. 만약 통지된 터치 이벤트가 "TOUCH"가 아니라면(즉, "RELEASE"이라면)(단계(S301)에서 '아니오'), 처리가 단계(S302)로 진행된다.
단계(S302)에서, 홀딩 유닛(113) 내에 홀딩된 정보 중에서 "RELEASE"가 검출된 터치점에 상응하는 ID와 연관된 정보를, 그 ID와 함께, 제1 취득 유닛(112)이 삭제한다.
다른 한편으로, 단계(S303)에서, 검출 유닛(111)은 "TOUCH"가 검출된 터치점과 동일한 ID를 갖는 터치점이 이미 검출되었는지의 여부를 결정한다. 검출 유닛(111)은 홀딩 유닛(113) 내에 홀딩된 정보를 참조하고 그리고 상응하는 ID가 포함되는지의 여부를 결정한다.
만약 동일한 ID를 갖는 터치점이 이미 검출되었다는 것이 결정되면(단계(S303)에서 '예'), 처리가 단계(S305)로 진행한다. 다른 한편으로, 만약 동일한 ID를 갖는 터치점이 검출되지 않았다는 것이 결정되면(단계(S303)에서 '아니오'), 처리가 단계(S304)로 진행한다.
단계(S304)에서, 제1 취득 유닛(112)은 "TOUCH"가 검출된 터치점의 ID, 좌표들, 및 시간 등의 정보를 홀딩 유닛(113) 내에서 홀딩되는 정보에 새롭게 추가한다. 이때, 홀딩 유닛(113)은 터치점이 업데이트되었다는 것을 나타내는 정보를 홀딩한다. 예를 들어, 업데이트 플래그가 셋팅된다.
단계(S305)에서, "TOUCH"가 검출된 터치점과 동일한 ID를 갖는 좌표들, 및 홀딩 유닛(113) 내에서 홀딩되는 정보로부터의 검출 시간 등의 정보가 업데이트된다. 이때, 홀딩 유닛(113)은 터치점이 업데이트되었다는 것을 나타내는 정보를 홀딩한다. 예를 들어, 업데이트 플래그가 셋팅된다.
또한, 취득된 위치 정보가 업데이트 이전에 동일한 ID를 갖는 터치점의 위치로부터 미리 결정된 거리 이상 만큼 이동되었을 때, 터치점이 이동하였다는 것을 나타내는 정보가 홀딩된다. 예를 들어, 이동 플래그가 셋팅된다.
이어서, 처리가 메인 처리(도 2)으로 되돌아가고, 그러한 메인 처리에서 멀티-터치 조작이 인식된다. 이러한 예시적인 실시예에서, 사용자에 의한 터치 조작의 실시를 위해서 터치점이 이동할 필요가 있는 가장 짧은 거리를 기초로 미리 결정된 거리가 미리 셋팅된다.
복수의 조작들을 구별하기 위해, 복수의 단계식 임계값들이 셋팅될 수 있을 것이다. 이러한 예시적인 실시예에서, 미리 결정된 거리 내의 이동이 검출될 때, 터치점은 이동하지 않은 것으로 즉, 정지된 것으로 처리된다.
이러한 예시적인 실시예에서, 터치 패널은 입력 영역(401)이 스캐닝되고 터치가 검출될 때 터치 이벤트로서 "TOUCH"를 통지하고, 그리고 검출된 터치점이 해제될 때 터치 이벤트로서 "RELEASE"를 통지한다. 그러나, 이러한 것으로 제한되는 것은 아니다.
예를 들어, "TOUCH_DOWN", "MOVE", 및 "TOUCH_UP" 은 입력 영역(401)이 새롭게 터치될 때, 이미 검출된 ID를 갖는 터치점의 이동이 검출될 때, 그리고 터치점이 해제될 때의 터치 이벤트들로서 각각 통지된다.
이러한 경우에, "TOUCH_DOWN"이 통지될 때, 홀딩 유닛(113) 내에 홀딩되는 정보가 새롭게 부가되고 그리고 업데이트 플래그가 셋팅된다. "MOVE"가 통지될 때, 동일한 ID를 갖는 정보가 업데이트되고 이동 플래그가 셋팅된다. 또한, "TOUCH_UP"이 통지될 때, 동일한 ID를 갖는 정보가 삭제될 수 있다.
이러한 방식으로, 정보 처리 장치(100)는 IDs를 이용하는 입력 디바이스인 터치 패널에 의해 검출되는 둘 이상의 터치점들을 식별하고 정보를 관리한다. 결과적으로, 복수의 터치점의 각각의 이동이 검출될 수 있다. 그에 따라, 그러한 터치점들에서 구성되는 멀티-터치 조작이 인식될 수 있다.
도 3b는 단계(S209)에서 실시되는 멀티-드래그 조작의 결과적인 출력 처리의 흐름을 도시한 흐름도이다. 멀티-드래그 조작에 의해 요구되는 예시적인 조작, 즉 이러한 예시적인 실시예에서, 저장 유닛(119) 내에 저장된 복수의 화상 데이터로부터 터치 패널 디스플레이 상에 지정 화상 데이터를 디스플레이하기 위한 처리가 실시된다. 저장 유닛(119) 내에 저장된 복수의 화상 데이터가 미리 결정된 순서로 저장되어 있다.
이러한 예시적인 실시예에서, 만약 멀티-드래그 방향이 좌측이라면, 사용자의 조작 전에 디스플레이된 화상 데이터보다 10개 시트 후의 화상을 디스플레이한다. 만약 멀티-드래그 방향이 우측이라면, 사용자의 조작 전에 디스플레이된 화상 데이터보다 10개 시트 전의 화상을 디스플레이한다.
단계(S311)에서, 디스플레이 제어 유닛(118)은 사용자에 의해 실시된 멀티-드래그 방향을 취득한다. 이러한 예시적인 실시예에서, 디스플레이 제어 유닛(118)은, 사용자가 사용자의 손가락을 업데이트 전과 후의 위치 정보의 X-좌표로부터 이동시키는 방향이 X-축의 마이너스 방향 또는 플러스 방향인지의 여부를, 제1 취득 유닛(112)에 의해 취득된 터치점들 중 적어도 하나에 대해서 취득한다.
단계(S312)에서, 디스플레이 제어 유닛(118)은 단계(S311)에서 취득된 방향을 나타내는 정보를 기초로 디스플레이 상에 디스플레이하고자 하는 화상 데이터를 지정한다. 이러한 예시적인 실시예에서, 만약 취득된 방향이 X-축 방향의 마이너스 방향이라면, 저장 유닛(119) 내에 저장된 복수의 화상 데이터로부터, 사용자의 조작 이전에 디스플레이된 화상 데이터보다 10개 시트 후의 화상 데이터에 상응하는 화상 데이터가 지정된다.
유사하게, 만약 취득된 방향이 X-축 방향의 플러스 방향이라면, 저장 유닛(119) 내에 저장된 복수의 화상 데이터로부터, 사용자의 조작 이전에 디스플레이된 화상 데이터보다 10개 시트 전의 화상 데이터에 상응하는 화상 데이터가 지정된다.
단계(S313)에서, 디스플레이 제어 유닛(118)은 지정된 화상 데이터를 디스플레이하기 위한 디스플레이 화상을 생성한다. 이어서, 단계(S314)에서, 디스플레이 제어 유닛(118)은 생성된 디스플레이 화상을 터치 패널 디스플레이(108)(출력 디바이스)로 출력한다. 이어서, 처리가 종료되어 멀티-터치 조작 인식을 위한 메인 처리(즉, 도 2의 흐름도)으로 되돌아 간다.
또한, 단계(S314)에서 디스플레이 화상의 출력이 실시될 때, 사용자에 의해 터치점의 해제에 응답하여 처리가 실시될 수 있을 것이다. 그러한 경우에, 단계(S313) 이후에, 도 3a의 터치점 검출 처리가 실시되고, 그리고 모든 터치점들에 대해서 홀딩 유닛(113)으로부터 단계(S302)에서 터치점들의 정보를 삭제하는 처리의 완료를 기초로, 단계(S314)로 처리가 진행한다.
이러한 방식으로, 사용자는 터치 패널로부터 멀티-드래그를 입력하는 데 이용된 손가락들을 해제하는 조작에 의해 정보 처리 장치(100)로 지정 화상을 디스플레이하기 위한 타이밍을 특정할 수 있다.
멀티-드래그 조작에 의해 요청되는 조작은 예시적으로 전술된 것으로 제한되지 않는다. 예를 들어, 디스플레이하고자 하는 화상 데이터를 특정하기 위한 방법은 10 시트들 이후 또는 10 시트들 이전으로 제한되지 않고, 임의로 셋팅할 수 있다. 또한, Y-축 방향을 따른 멀티-드래그 조작과 관련하여, 정보 처리 장치(100)의 어떤 동작이 할당될 수 있다.
그러나, 일반적으로, 화상 이전과 이후에 저장된 다른 화상들을 디스플레이하기 위해서, 드래그에 의해 X 방향을 따라 디스플레이된 화상을 이동시키기 위한 조작에 상응하는 많은 경우들에서 화상 전진(advancing)이 실시된다. 그에 따라, 복수의 핑거들을 이용한 멀티-드래그를 이용하여 X-축 방향으로 디스플레이된 화상들을 이동시킴으로써 한번에 보다 많은 화상들을 전진시킴으로써 지정 화상을 디스플레이하기 위한 조작이 사용자들에 의해 직관적으로 그리고 편리하게 이해될 수 있다.
사용자에 의한 제1의 예시적인 실시예에 따른 정보 처리 장치(100)의 조작예 1이 구체적으로 설명된다.
도 4a는 이러한 예시적인 실시예에 따른 정보 처리 장치(100)의 예시적인 조작을 도시한 도면이다. 도 4a는 정보 처리 장치(100)의 입력 영역(401) 내에서 사용자가 조작을 입력하는 상태를 도시한다. 입력 영역(401)은 디스플레이 상의 터치 패널을 포함하는 터치 패널 디스플레이로 구성된다. 입력 영역(401)은 터치 패널 상의 사용자의 터치를 검출할 수 있다.
이러한 예시적인 실시예에서, 전체 입력 영역(401)은 하부 좌측 위치에서 원점을 갖는 좌표 평면으로서 이용되고, 그리고 터치 패널은 사용자에 의해 터치되는 위치의 좌표를 검출한다. 이러한 예시적인 실시예에서, 지정 조작의 예로서, 멀티-드래그 조작은 입력 영역(401)에 대해서 손가락들(402 및 403)을 접촉시킴으로써 그리고 손가락들(402 및 403)을 수평 방향으로 이동시킴으로써 입력된다.
도 4b는, 도 4a에 도시된 바와 같이 사용자가 멀티-드래그 조작을 실시할 때 정보 처리 장치(100)에 의해 취득되는 터치점들의 위치들의 예시적인 시프트(shift)를 도시한 도면이다. 터치점들(A 내지 F)은 입력 영역(401) 내에서 사용자의 손가락에 의해 터치된 위치들의 좌표들을 나타낸다. 수평 방향이 X-축으로 셋팅되고 그리고 수직 방향이 Y-축으로 셋팅된다.
첫 번째로, 사용자의 손가락들(402 및 403)이 입력 영역(401) 내의 점들(A 및 B)에 상응하는 점들을 터치한다. 좌측 손가락(402)은 터치점(A)에 상응하는 위치를 터치하고, 우측 손가락(403)은 터치점(B)에 상응하는 위치를 터치한다.
이어서, 사용자는 2개의 손가락들을 수평으로 이동시킨다. 2개의 손가락들을 이동시킨 후의 터치된 위치들은 터치점(C) 및 터치점(D)에 상응한다. 좌측 손가락(402)은 터치점(C)에 상응하는 위치를 터치하고, 우측 손가락(403)은 터치점(D)에 상응하는 위치를 터치한다.
또한, 사용자는 2개의 손가락들을 수평으로 이동시킨다. 2개의 손가락들을 이동시킨 후에 터치된 위치들이 터치점들(E 및 F)이 된다. 좌측 손가락(402)은 터치점(E)에 상응하는 위치를 터치하고, 우측 손가락(403)은 터치점(F)에 상응하는 위치를 터치한다. 이하에서, 일련의 조작들에 따라서, 이러한 예시적인 실시예에 따른 정보 처리 장치(100)의 동작을 설명할 것이다.
조작예 1에서, 터치 패널의 입력 영역(401)이 20 ms마다 스캐닝되고, 순차적으로 검출된 터치 이벤트들이 검출 유닛(111)에 통지된다. 또한, 임계값("a")이 10 도트로 되도록 미리 셋팅된다.
첫 번째로, 사용자가 입력 영역(401)을 터치한 상태에서 입력 영역(401)의 스캐닝이 시작되고, 그리고 터치점(A)의 터치 이벤트가 터치 패널로부터 통지된다. 단계(S201)에서, 정보 처리 장치(100)의 검출 유닛(111)은 터치점(A)이 새롭게 터치되었다는 것을 검출한다. 이어서, 제1 취득 유닛(112)은 ID가 1이고, 위치 좌표가 (100, 50)이며, 그리고 검출 시간이 0 ms라는 정보를 취득하여, 그 정보를 홀딩 유닛(113) 내에 홀딩한다.
도 5a는 홀딩 유닛(113) 내에서 홀딩되는 정보의 예를 도시한 표이다. 단계(S202)에서, IDs의 수를 기초로 입력 영역(401)에서 둘 이상의 터치점들이 검출되었는지의 여부를 결정하기 위해서, 결정 유닛(114)은 홀딩 유닛(113) 내에서 홀딩되는 정보를 참조한다. 이러한 시점에서, 도 5a에 도시된 바와 같이, 둘 이상의 터치점들이 아니라, ID 1을 갖는 터치점만이 검출되고(단계(S202)에서 '아니오'), 그에 따라 처리가 종료된다.
다음에, 터치 패널로부터, 터치점(B)의 터치 이벤트가 통지된다. 정보 처리 장치(100)에서, 단계(S201)에서, 유사하게, 제1 취득 유닛(112)은 ID가 2이고, 위치 좌표가 (110, 40)이며, 그리고 검출 시간이 5 ms라는 정보를 취득한다. 이때, 도 5b에 도시된 바와 같이, 홀딩 유닛(113) 내에서 홀딩되는 표가 업데이트된다.
단계(S202)에서, 결정 유닛(114)은 터치점들의 수가 둘 이상이라고 결정한다(단계(S202)에서 '예'). 단계(S203)에서, 모든 검출된 터치점들의 정보가 업데이트되었다는 것을 결정 유닛(114)이 결정하는데(단계(S203)에서 '예'), 이는 처리가 최초로 실행되기 때문이다. 단계(S204)에서, 판정 유닛(116)은 적어도 하나의 터치점이 이동하지 않은 것으로 판정한다(단계(S204)에서 '아니오'). 이어서, 단계(S205)에서, 도 4b의 거리(B)는 2개의 터치점들 각각의 위치 좌표들을 기초로 계산된다. 거리(B)는 개별적인 2개의 점들 사이의 다른 거리들 중에서 가장 짧은 거리이다.
이러한 예시적인 실시예에서, 터치점(A)의 좌표(100, 50) 및 터치점(B)의 좌표(110, 40)를 기초로, 2개의 점들 사이의 거리가 14 도트로 된다. 제2 취득 유닛(115)은 14개의 도트들을 검출 시작 시간에서의 2개의 점들 사이의 거리로서 RAM(103)에 홀딩한다. 이어서, 처리가 종료된다.
다음에, 입력 영역(401)이 20 ms마다 스캐닝되고, 터치점(C)의 터치 이벤트가 터치 패널로부터 통지된다. 단계(S201)에서, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 1이고, 위치 좌표가 (200, 50)이며, 그리고 검출 시간이 20 ms라는 정보를 취득하고, 그리고 홀딩 유닛(113) 내에 홀딩된 정보가 도 5c에 도시된 바와 같이 업데이트된다. 이때, 터치점(C)의 ID가 1이 되고, 즉 터치점(A)의 ID와 동일하고, 그에 따라 ID 1의 정보에 연관된 정보가 업데이트된다.
또한, 위치 좌표들은 마지막으로 검출된 위치 좌표들과 상이하고, 이동 플래그가 셋팅된다. 단계(S202)에서, 터치점들의 수가 2 이상이 되는 것으로 결정된다. 단계(S203)에서, ID 1을 갖는 터치점의 정보가 업데이트되나 ID 2를 갖는 터치점이 업데이트되지 않기 때문에, 결정 유닛(114)은 모든 터치점들의 정보가 업데이트되지 않았다는 것을 결정하고(단계(S203)에서 '아니오'), 처리가 종료된다.
다음에, 터치점(D)의 터치 이벤트가 터치 패널로부터 통지된다. 단계(S201)에서, 유사하게, 정보 처리 장치(100)는 ID가 2이고, 위치 좌표가 (210, 40)이며, 그리고 검출 시간이 25 ms라는 정보를 취득하고, 그리고 도 5d에 도시된 바와 같이 홀딩 유닛(113) 내에 홀딩된 정보가 업데이트된다. 이때, 터치점(D)의 ID가 터치점(B)의 것과 동일하게 2가 되고, ID 2에 연관된 정보가 업데이트된다.
또한, 위치 좌표들이 마지막 검출 시간에서의 위치 좌표들과 상이하기 때문에, 이동 플래그가 셋팅된다. 단계(S202)에서, 터치점들의 수가 2가 되는 것으로 즉, 2 이상이 되는 것으로 결정된다(단계(S202)에서 '예'). 그에 따라, 단계(S203)에서, ID 1 및 ID 2를 갖는 터치점들이 업데이트되기 때문에, 모든 터치점들의 위치 정보가 업데이트된 것으로 결정된다(단계(S203)에서 '예'). 단계(S204)에서, 이동 플래그를 기초로, 적어도 하나의 터치점이 이동되었다는 것이 결정된다(단계(S204)에서 '예').
단계(S206)에서, 제2 취득 유닛(115)은 터치된 2개의 점들과 그 절대값 사이의 거리의 변화량을 취득한다. 첫 번째로, 터치점(C)의 좌표들(200, 50) 및 터치점(D)의 좌표(210, 40)를 기초로, 2개의 점들 사이의 거리(도 4a의 거리(B))가 14 도트로서 계산된다.
이어서, 제2 취득 유닛(115)에 의해 마지막으로 취득되고 RAM(103)에서 홀딩되는 2개의 점들 사이의 거리로부터의 변화량(절대값)이 0(= 14-14) 도트가 되도록 계산된다.
이제, 임계값("a")이 10 도트이기 때문에, 단계(S207)에서, 판정 유닛(116)은 2개의 점들 사이의 거리의 변화량이 임계값("a") 보다 작다는 것을 결정한다(단계(S207)에서 '예'). 그에 따라, 단계(S208)에서, 멀티-드래그 조작이 통지되고, 그리고 단계(S209)에서, 출력이 실시된다.
조작예 1에 따라서, 멀티-드래그 조작이 X-축의 플러스 방향을 따라 실시되고, 저장 유닛(119) 내에 저장된 복수의 화상 데이터로부터, 사용자의 조작 이전에 디스플레이된 화상보다 10개 시트 전의 화상에 상응하는 화상 데이터가 디스플레이된다.
또한, 입력 영역(401)이 20 ms 마다 스캐닝되기 때문에, 터치점(E)의 터치 이벤트가 터치 패널로부터 통지된다.
단계(S201)에서, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 1이고, 위치 좌표가 (300, 50)이며, 그리고 검출 시간이 40 ms라는 정보를 취득하고, 그리고 도 5e에 도시된 바와 같이 홀딩 유닛(113) 내에 홀딩된 정보가 업데이트된다. 이때, 터치점(E)의 ID가 터치점(C)의 것과 동일하게 1이 되고, 그에 따라 ID 1의 정보에 연관된 정보가 업데이트된다.
또한, 위치가 이동된다. 단계(S202)에서, 터치점들의 수가 2 이상이 된다는 것이 결정된다. 단계(S203)에서, ID 1을 갖는 터치점의 정보가 업데이트되나 ID 2를 갖는 터치점이 업데이트되지 않기 때문에, 결정 유닛(114)은 모든 터치점들의 정보가 업데이트되지 않았다는 것을 결정하고(단계(S203)에서 '아니오'), 처리가 종료된다.
다음에, 터치점(F)의 터치 이벤트가 터치 패널로부터 통지된다. 단계(S201)에서, 유사하게, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 2이고, 위치 좌표가 (310, 40)이며, 그리고 검출 시간이 45 ms라는 정보를 취득하고, 그리고 도 5f에 도시된 바와 같이 홀딩 유닛(113) 내에 홀딩된 정보가 업데이트된다. 이때, 터치점(F)의 ID가 터치점(D)의 것과 동일하게 2가 되고, 그에 따라 ID 2의 것과 연관된 정보가 업데이트된다.
또한, 위치 좌표들이 마지막 시간에 검출된 위치 좌표들과 상이하고, 이동 플래그가 셋팅된다. 단계(S202)에서, 터치점들의 수가 2가 되는 것으로 즉, 2 이상이 되는 것으로 결정된다(단계(S202)에서 '예'). 그에 따라, 단계(S203)에서, ID 1 및 ID 2를 갖는 터치점들이 업데이트되기 때문에, 모든 터치점들의 위치 정보가 업데이트된 것으로 결정된다(단계(S203)에서 '예'). 단계(S204)에서, 적어도 하나의 터치점이 이동되었다는 것이 결정된다(단계(S204)에서 '예').
단계(S206)에서, 제2 취득 유닛(115)은 터치된 2개의 점들과 그 절대값 사이의 거리의 변화량을 취득한다. 첫 번째로, 터치점(E)의 좌표(300, 50) 및 터치점(F)의 좌표(310, 40)를 기초로, 2개의 점들 사이의 거리(도 4b의 거리(F))가 14 도트로서 계산된다. 이어서, 제2 취득 유닛(115)에 의해 마지막으로 취득되고 RAM(103)에서 홀딩되는 2개의 점들 사이의 거리로부터의 변화량(절대값)이 0(= 14-14 도트가 되도록 계산된다).
이제, 임계값("a")이 10 도트들이기 때문에, 단계(S207)에서, 판정 유닛(116)은 2개의 점들 사이의 거리의 변화량이 임계값("a")보다 작다는 것을 결정한다(단계(S207)에서 '예'). 그에 따라, 단계(S208)에서, 멀티-드래그 조작이 통지되고, 그리고 단계(S209)에서, 출력이 실시된다.
조작예 1에 따라서, 멀티-드래그 조작이 X-축의 플러스 방향을 따라 실시되고, 저장 유닛(119) 내에 저장된 복수의 화상 데이터 중에서, 단계(S209)에서 디스플레이되는 화상보다 10개 시트 전의 화상에 상응하는 화상 데이터가 디스플레이된다.
터치점의 해제에 응답하여 지정된 화상 데이터가 디스플레이될 때, 멀티-드래그 조작이 한 차례 초과로 통지되는 경우에도, 첫 번째에 대해서 지정된 화상 데이터를 디스플레이하기 위한 디스플레이 화상이 유지된다.
그에 따라, 사용자에 의해 터치점들의 모든 터치들의 해제에 응답하여, 사용자의 조작 이전에 디스플레이된 화상보다 10개 시트 전의 화상에 상응하는 화상 데이터가 디스플레이된다. 이러한 방식으로, 멀티-드래그 조작의 거리와 관계없이, 사용자는 디스플레이되는 화상보다 10개 시트 이전의 또는 이후의 화상에 상응하는 화상 데이터를 확실하게 디스플레이할 수 있다.
전술한 바와 같이, 이러한 예시적인 실시예에서, 사용자에 의해 터치된 2개의 터치점들의 위치 정보가 취득되고, 그리고 2개의 터치점들 모두의 위치 정보의 업데이트의 완료에 응답하여, 정보 처리 장치(100)에 대한 사용자의 멀티-터치 조작 입력을 결정하기 위한 처리가 실시된다.
이때, 2개의 점들과 임계값 사이의 거리의 변화량을 비교함으로써, 입력 조작이 멀티-드래그 조작인지 또는 핀치 조작인지의 여부가 결정된다. 이러한 방식으로, 사용자가 터치된 2개 점들 사이의 거리를 유지하면서 2개의 터치점들을 동일한 방향으로 이동시킬 때, 핀치 조작은 잘못 통지되지 않는다. 결과적으로, 디스플레이 화상의 크기가 사용자의 의도와는 다르게 변경되는 오동작이 방지된다.
유사하게, 스크롤 또는 화상의 회전과 같이 복수의 손가락들을 이용한 다른 멀티-터치 조작을 사용자가 입력할 때, 이러한 예시적인 실시예를 적용함으로써, 핀치 조작이 잘못 인식되는 것이 방지될 수 있다.
이러한 경우에, 멀티-터치 조작을 구성하는 모든 터치점들의 위치 정보가 업데이트된 후에 사용자에 의한 멀티-터치 조작 입력을 결정하는 것에 의해, 사용자의 의도에 반하여 오동작이 실시되는 것을 감소시킬 수 있다.
이러한 예시적인 실시예에서, 사용자에 의한 조작 입력이 핀치 조작이라고 판정 유닛(116)이 판정한 후에, 단계(S210)에서, 핀치 제어 유닛(117)은 핀치-아웃 또는 핀치-인 조작이 시작되었는지의 여부를 결정한다. 단계(S210)에서 실시되는 처리가 생략될 수 있을 것이다.
그러한 경우에, 단계(S211)에서, 판정 유닛(116)은 핀치 조작이 입력되었다는 것을 디스플레이 제어 유닛(118)에 통지한다. 이어서, 단계(S212)에서, 디스플레이 제어 유닛(118)은 제2 취득 유닛(115)에 의해 취득된 2개의 점들 사이의 변화량을 기초로 사용자가 이동시킨 터치점의 거리에 따라 디스플레이되는 화상의 크기를 변화시키기 위한 처리를 실시한다.
그러나, 단계(S210)에서, 2개의 점들 사이의 거리의 변경된 방향들의 수 및 변경된 방향들을 기초로, 조작이 시작되었는지의 여부를 결정함으로써, 사용자가 의도한 조작을 보다 정확하게 결정한 후에 디스플레이 화상이 변경될 수 있다.
예를 들어, 사용자의 손가락들 또는 터치 패널의 상태에 의해 유발되는 것으로서 2개의 점들 사이의 거리의 변화량(절대값)이 임계값("a") 또는 그 보다 큰 것으로 결정하는 데 오류가 발생된다면, 핀치 조작이 입력되었다는 통지가 실시되지 않는다. 따라서, 디스플레이되는 화상의 디스플레이 확대도가 사용자의 의도에 반하여 변경되는 오동작이 방지되는 효과가 얻어질 수 있다.
이러한 예시적인 실시예에서, 2개의 터치점들의 처리가 설명되었으나, 만약 2개 점들보다 많은 터치점들이 검출된다면, 유사한 처리가 실시될 수 있다.
이러한 경우에, 예를 들어, 제1 터치점으로부터 시작하여 검출된 순서에 따라 2개의 터치점들만이 선택되고, 그리고 전술한 것과 동일한 처리가 실시된다. 그 대신에, 만약 터치점의 N개의 터치점들(2개 초과의 점들)이 검출된다면, N개의 터치점들 모두의 정보가 취득되고, 그리고 단계(S203)에서, N개의 터치점들 모두의 정보의 업데이트 완료에 응답하여 후속 처리 단계들이 실시된다.
제1의 예시적인 실시예에서, 입력 디바이스로서의 터치 패널은, 터치 패널이 사용자에 의한 터치점 또는 해제된 터치점을 검출할 때마다, 터치 이벤트를 정보 처리 장치(100)에 통지한다. 비교하면, 변경예 1에서, 터치 패널은, 그 터치 패널이 사용자에 의한 새로운 위치에서의 터치점을 검출할 때마다 그리고 사용자에 의해 해제된 터치점을 검출할 때마다 터치를 정보 처리 장치(100)에 통지한다. 그러한 경우에 대해서는 이하에서 설명할 것이다.
제1 예시적 실시예의 변경예 1에서 이용된 터치 패널은 터치점이 정지되어 있을 때 터치 이벤트를 통지하지 않는다. 그에 따라, 정보 처리 장치(100)에 의해 홀딩되는 터치점의 정보가 오버라이트(overwrite)되지 않는다.
따라서, 제1 예시적 실시예에 따른 멀티-터치 조작을 인식하기 위한 처리가 실시될 때, 그리고 예를 들어, 사용자가 2개의 터치점들 중 하나의 터치점을 고정시키고 그리고 다른 터치점을 이동시켜 핀치 조작을 실시할 때, 터치점들의 정보가 그대로 홀딩된다.
그에 따라, 제1 예시적 실시예에서와 같이 정보 처리 장치(100)에 의해 홀딩되는 모든 정보의 업데이트 완료를 기초로 결정이 실시된다면, 멀티-터치 조작이 실시되지 않을 것이다. 따라서, 제1 예시적 실시예의 변경예 1에서, 홀딩 유닛(113) 내에서 홀딩되는 최고(earliest) 검출 시간으로부터 미리 결정된 시간의 경과를 기초로 모든 터치점들의 정보가 지정된 것이 결정된다.
변경예 1에 따른 정보 처리 장치(100)의 하드웨어 구성 및 기능 구성은 제1 예시적 실시예에서와 동일하다. 그러나, 제1 예시적 실시예의 변경예 1의 결정 유닛(114)은 홀딩 유닛(113)에서 홀딩되는 정보 및 정보 처리 장치(100) 내에 포함된 클록을 참조하고, 최고 업데이트가 실시되었기 때문에 미리 결정된 시간의 경과에 따라 모든 터치점들의 위치 정보가 업데이트되었다는 것을 결정한다.
도 6은, 멀티-터치 조작을 인식하기 위해서, 제1 예시적 실시예의 변경예 1 에서 정보 처리 장치(100)에 의해 실시되는 처리 흐름을 도시한 흐름도이다. 도 2에서와 같은 번호들을 갖는 단계들에서, 동일한 처리가 실시된다. 그에 따라, 그에 대한 상세한 내용은 설명하지 않았고 그리고 제1 예시적 실시예와 상이한 부분들에 대해서 설명할 것이다.
제1 예시적 실시예의 변경예 1에서, 단계(S202)에서, 둘 이상의 터치점들이 있는 것이 결정되면(단계(S202)에서 '예'), 이어서, 단계(S601)에서, 결정 유닛(114)은 홀딩 유닛(113) 내에 홀딩되어 있는 모든 터치점들의 위치 정보가 업데이트되었는지의 여부를 결정한다. 첫 번째 처리에서, 항상 "예"가 되는 것으로 결정된다.
이어서, 홀딩 유닛(113)에 의해 홀딩된 모든 위치 정보가 업데이트된 것으로 결정되면(단계(S601)에서 '예'), 처리가 단계(S204)로 진행된다. 다른 한편으로, 홀딩 유닛(113)에 의해 홀딩된 모든 위치 정보가 업데이트되지 않은 것으로 결정된다면(단계(S601)에서 '아니오'), 처리가 단계(S602)로 진행된다.
단계(S602)에서, 결정 유닛(114)은, 현재 검출된 터치점들 중에서 최고 터치점의 업데이트의 완료 이후에 미리 결정된 시간이 경과하였는지의 여부를 결정한다. 여기에서, 터치 패널에 의해 전체 입력 영역(401)의 스캔닝을 완료하기에 충분한 시간이 되도록 미리 결정된 시간이 사전에 셋팅된다.
예를 들어, 터치 패널의 스캐닝 기간만큼 긴 시간이 셋팅된다. 만약 검출된 터치점들이 둘 이상이라면, 그리고 현재 검출된 위치 정보들 중에서 최고 위치 정보 이후에 전체 터치 패널의 스캐닝의 업데이트를 완료하기에 충분한 시간이 경과되었다면, 터치 이벤트가 통지되지 않은 터치점의 이동이 검출되지 않았다는 것이 알려진다. 그에 따라, 그 시점에서 홀딩 유닛(113) 내에서 홀딩되는 모든 터치점들의 위치 정보가 유지되는 것으로 간주된다.
터치점들의 위치 정보의 최고 업데이트가 실시되었던 이후로 미리 결정된 시간이 경과되었다는 것을 결정 유닛(114)이 결정하면(단계(S602)에서 '예'), 처리가 단계(S204)로 진행된다. 다른 한편으로, 터치점들의 위치 정보의 최고 업데이트가 실시되었던 이후로 미리 결정된 시간이 경과되지 않았다는 것을 결정 유닛(114)이 결정하면(단계(S602)에서 '아니오'), 처리가 종료된다.
도 2에 도시된 정보 처리 장치(100)에 의해 멀티-터치 조작을 인식하기 위한 처리과 유사하게, 전술한 것 이외의 처리가 실시된다.
사용자에 의해 조작된 제1 예시적 실시예의 변경예 1에 따른 정보 처리 장치(100)의 조작예 2가 도 7a 내지 7e를 참조하여 구체적으로 설명된다.
도 7a는 사용자가 핀치 조작을 실시할 때 정보 처리 장치(100)에 의해 취득된 터치점들의 위치 시프트들의 예를 도시한 도면이다. 도 7a는 제1 예시적 실시예의 도 4b에 상응한다. 그러나, 사용자는 도 4a의 좌측 손가락(402)에 의해 터치점(A)을 홀딩하고 그리고 우측 손가락(403) 만을 이동시켜 우측 방향(X-축의 플러스 방향)을 따라 핀치 조작을 실시한다. 결과적으로, 터치점(B), 터치점(D), 및 터치점(F)이 순차적으로 검출된다.
도 7b 내지 7e는 각각의 터치점의 검출에 응답하여 홀딩되는 홀딩 유닛(113) 내에서 홀딩되는 정보를 나타낸 표의 예이다. 도 7b 내지 7e는 제1 예시적 실시예의 도 5a 내지 5f에 상응한다.
또한, 조작예 2에서, 터치 패널의 입력 영역(401)이 20 ms 마다 스캐닝되고, 그리고 검출된 터치 이벤트가 검출 유닛(111)에 통지된다. 모든 터치점들의 위치 정보가 업데이트되었는지의 여부를 결정하기 위해서 이용되는 미리 결정된 시간이 20 ms로 셋팅되고, 그리고 임계값("a")이 10 도트로 되도록 셋팅된다. 이들은 미리 셋팅되어 있다.
첫 번째로, 사용자가 입력 영역(401)을 터치한 상태에서 입력 영역(401)의 스캐닝이 시작되고, 그리고 터치점(A)의 터치 이벤트가 터치 패널로부터 통지된다. 단계(S201)에서, 정보 처리 장치(100)의 검출 유닛(111)은 터치점(A)이 새롭게 터치되었다는 것을 검출한다. 이어서, 도 7b에 도시된 바와 같이, 제1 취득 유닛(112)은 ID가 1이고, 위치 좌표가 (100, 50)이며, 그리고 검출 시간이 0 ms라는 정보를 취득하고, 그 정보를 홀딩 유닛(113) 내에 홀딩한다.
단계(S202)에서, IDs의 수로부터 입력 영역(401)에서 검출된 터치점들의 수가 둘 이상인지의 여부를 결정하기 위해 결정 유닛(114)이 홀딩된 정보를 참조한다. 이러한 시점에서, 도 7b에 도시된 바와 같이, ID 1을 갖는 터치점만(즉, 둘 이상의 터치점들이 아님)이 검출되기 때문에(단계(S202)에서 '아니오'), 그에 따라 처리가 종료된다.
다음에, 터치 패널로부터, 터치점(B)의 터치 이벤트가 통지된다. 단계(S201)에서, 유사하게, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 2이고, 위치 좌표가 (110, 40)이며, 그리고 검출 시간이 5 ms라는 정보를 취득한다. 그러한 시간에, 도 7c에 도시된 바와 같이, 홀딩 유닛(113) 내에서 홀딩되는 표가 업데이트된다.
단계(S202)에서, 결정 유닛(114)은 터치점들의 수가 둘 이상이라고 결정한다. 단계(S601)에서, 결정 유닛(114)은 모든 검출된 터치점들의 정보가 업데이트되었다는 것을 결정하는데(단계(S601)에서 '예'), 이는 그것이 최초의 처리이기 때문이다.
단계(S204)에서, 판정 유닛(116)은 적어도 하나의 터치점이 이동하지 않은 것으로 판정한다(단계(S204)에서 '아니오'). 이어서, 단계(S205)에서, 터치점들의 위치 좌표들로부터, 2개의 점들 사이의 가장 짧은 거리(도 7a에 도시된 거리)가 계산된다.
여기에서, 터치점(A)의 좌표(100, 50) 및 터치점(B)의 좌표(110, 40)를 기초로, 2개의 점들 사이의 거리가 14 도트로서 계산된다. 제2 취득 유닛(115)은 14개의 도트들을 검출 시작 시간에서의 2개의 점들 사이의 거리로서 RAM(103)에 저장하고, 처리가 종료된다.
다음에, 입력 영역(401)이 각각의 20 ms에서 스캐닝되고, 터치점(D)의 터치 이벤트가 터치 패널로부터 통지된다. 이는, 변경예 1의 터치 패널 내에서, 정지된 터치점(A)의 새로운 터치 이벤트가 통지되지 않기 때문이다.
그에 따라, 단계(S201)에서, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 2이고, 위치 좌표가 (210, 40)이며, 그리고 검출 시간이 25 ms라는 정보를 취득한다. 이어서, 도 7d에 도시된 바와 같이 홀딩 유닛(113) 내에 홀딩된 정보가 업데이트된다.
이때, 터치점(D)의 ID가 2가 된다. 이는 터치점(B)의 ID와 같기 때문에, ID 2와 연관된 정보만이 업데이트된다. 또한, 위치 좌표들이 이전의 검출 시간에서의 위치 좌표들과 상이하기 때문에, 이동 플래그가 셋팅된다. 단계(S202)에서, 터치점들의 수가 2가 되기 때문에, 2 이상의 터치점들이 검출된 것으로 결정된다(단계(S202)에서 '예').
이어서, 그에 따라, 단계(S601)에서, ID 2를 갖는 터치점이 업데이트되나, ID 1을 갖는 터치점이 업데이트되지 않기 때문에, 모든 터치점들의 위치 정보가 업데이트되지 않는 것으로 결정된다(단계(S601)에서 '아니오').
이어서, 단계(S602)에서, 홀딩된 터치점들의 정보들 중에서 최고 업데이트가 실시된 이후에 20 ms가 경과하였는의 여부가 결정된다. 이제, 최고 업데이트가 실시된 후의(즉, 터치점(A)이 검출된 시간 이후의) 경과된 시간이 25 ms가 되고, 경과된 시간이 미리 결정된 시간을 초과한다(단계(S602)에서 '예'). 그에 따라, 모든 터치점들의 위치 정보가 업데이트되었다는 것이 결정될 수 있을 것이다.
단계(S204)에서, 이동 플래그를 기초로, 적어도 하나의 터치점이 이동하였다는 것이 결정된다(단계(S204)에서 '예'). 단계(S206)에서, 제2 취득 유닛(115)은 2개의 터치점들 사이의 거리의 변화량 및 그 절대값을 취득한다.
여기에서, 터치점(A)의 좌표(100, 50) 및 터치점(D)의 좌표(210, 40)를 기초로, 2개의 점들 사이의 거리(도 7a의 거리(D))가 110 도트로서 계산된다. 제2 취득 유닛(115)에 의해 이전에 취득되고 RAM(103)에 홀딩된 2개의 점들 사이의 거리로부터의 거리의 변화량(절대값)이 96 도트(=110-14)로서 계산된다.
이러한 예시적인 실시예에서, 임계값("a")이 10 도트이기 때문에, 단계(S207)에서, 판정 유닛(116)은 2개의 점들 사이의 거리의 변화량이 임계값("a") 이상임을 판정한다(단계(S207)에서 '아니오'). 그에 따라, 단계(S210)에서, 핀치-아웃 또는 핀치-인 조작이 시작되었는지의 여부가 결정된다.
이제, 제2 취득 유닛(115)에 의해 취득된 2개의 점들 사이의 거리로부터 변화량이 96 도트로 된다. 그에 따라, 2개의 점들 사이의 거리가 넓어진 횟수의 수가 1로서 카운팅된다. 그러나, 카운팅된 수가 2 보다 작으며, 핀치-아웃 조작이 시작된 것으로 결정되지 않으며(단계(S210)에서 '아니오'), 그리고 처리가 종료된다.
다음에, 입력 영역(401)이 20 ms 마다 스캐닝되고, 터치점(F)의 터치 이벤트가 터치 패널로부터 통지된다. 이는, 변경예 1의 터치 패널 내에서, 고정된 터치점(A)의 새로운 터치 이벤트가 통지되지 않기 때문이다. 그에 따라, 단계(S201)에서, 정보 처리 장치(100)의 제1 취득 유닛(112)은 ID가 2이고, 위치 좌표가 (310, 40)이며, 그리고 검출 시간이 45 ms라는 정보를 취득한다. 이어서, 도 7e에 도시된 바와 같이 홀딩 유닛(113) 내에 홀딩된 정보가 업데이트된다. 이때, 터치점(C)의 ID가 터치점(B)의 것과 동일하게 2가 되고, 그에 따라 ID 2의 정보에 연관된 정보가 업데이트된다. 또한, 위치 좌표들이 이전의 검출 시간의 위치 좌표들과 상이하기 때문에, 이동 플래그가 셋팅된다.
단계(S202)에서, 터치점들의 수가 2가 되는 것으로 즉, 2 이상이 되는 것으로 결정된다(단계(S202)에서 '예'). 이어서, 단계(S601)에서, ID 2를 갖는 터치점이 업데이트되나, ID 1을 갖는 터치점은 업데이트되지 않기 때문에, 모든 터치점들의 위치 정보가 업데이트되지 않은 것으로 결정된다(단계(S601)에서 '아니오').
이어서, 단계(S602)에서, 홀딩된 터치점들의 정보들 중에서 최고 업데이트가 실시된 이후에 20 ms가 경과하였는의 여부가 결정된다. 이제, 최고 업데이트가 실시된 후의(즉, 터치점(A)이 검출된 시간 이후의) 경과된 시간이 45 ms가 되고, 경과된 시간이 미리 결정된 시간을 초과한다(단계(S602)에서 '예'). 그에 따라, 모든 터치점들의 위치 정보가 업데이트되었다는 것이 결정될 수 있을 것이다.
단계(S204)에서, 이동 플래그를 기초로, 적어도 하나의 터치점이 이동하였다는 것이 결정된다(단계(S204)에서 '예'). 단계(S206)에서, 제2 취득 유닛(115)은 2개의 터치점들 사이의 거리의 변화량 및 그 절대값을 취득한다.
여기에서, 터치점(A)의 좌표(100, 50) 및 터치점(D)의 좌표(310, 40)를 기초로, 2개의 점들 사이의 거리(도 7a의 거리(F))가 210 도트로서 계산된다. 이어서, 제2 취득 유닛(115)에 의해 마지막으로 취득되고 RAM(103)에 홀딩된 2개의 점들 사이의 거리로부터의 거리의 변화량(절대값)이 100 도트(=210-110)로서 계산된다.
이러한 예시적인 실시예에서, 임계값("a")이 10 도트이기 때문에, 단계(S207)에서, 판정 유닛(116)은 2개의 점들 사이의 거리의 변화량이 임계값("a") 이상임을 판정한다(단계(S207)에서 '아니오'). 그에 따라, 단계(S210)에서, 핀치 제어 유닛(117)은 핀치-아웃 또는 핀치-인 조작이 시작되었는지의 여부를 결정한다.
이제, 제2 취득 유닛(115)에 의해 취득된 2개의 점들 사이의 거리로부터 변화량이 100 도트로 된다. 그에 따라, 2개의 점들 사이의 거리가 넓어진 횟수의 수가 2로서 카운팅된다. 단계(S210)에서, 터치된 2개의 점들 사이의 거리가 넓혀진 횟수들의 수가 2 이상이기 때문에, 핀치 제어 유닛(117)은 핀치-아웃 조작이 시작된 것으로 결정된다(단계(S210)에서 '예').
단계(S211)에서, 핀치 제어 유닛(117)은 핀치-아웃 조작이 입력되었다는 것을 디스플레이 제어 유닛(118)에 통지한다. 이어서, 단계(S212)에서, 핀치 조작의 결과가 출력된다. 디스플레이 제어 유닛(118)은, 2개의 점들 사이의 거리가 거리의 14 도트로부터 거리(F)의 210 도트로 넓어진 결과를 기초로, 확대된 디스플레이 화상을 디스플레이하기 위한 처리를 실시한다.
전술한 바와 같이, 제1 예시적 실시예의 변경예 1에 따라서, 사용자가 2개의 점들을 터치할 때, 사용자에 의해 정보 처리 장치(100)로 입력되는 멀티-터치 조작은, 최고 위치 정보가 업데이트된 이후로 미리 결정된 시간이 경과한 것에 응답하여, 결정된다.
따라서, 검출된 터치점이 정지 상태일 때 새로운 터치 이벤트를 통지하지 않는 터치 패널이 사용되는 경우에도, 검출된 터치점들 모두의 위치 정보가 업데이트된 것으로 결정될 수 있다.
그에 따라, 사용자가 2개의 터치점들 중 다른 하나를 정지 상태로 유지하면서 2개의 터치점들 중 하나의 터치점을 이동시킴으로써 핀치 조작이 실시되는 경우에도, 사용자의 의도에 부합시키기 위해서 사용자가 디스플레이 화상의 크기를 변화시킬 수 있다.
제2 예시적 실시예에서, 사용자에 의한 예시적인 멀티-드래그 조작 입력이 사용자에 의한 멀티-터치 조작의 예로서 설명된다. 제1 예시적 실시예에서, 검출된 2개의 점들의 위치 정보의 업데이트의 결과로서, 적어도 하나의 터치점의 이동에 의해 변경된 2개의 점들 사이의 거리의 변화량이 미리 결정된 임계값 보다 작은지의 여부를 기초로 멀티-드래그 조작 또는 핀치 조작이 입력되었는지의 여부가 결정된다.
다른 한편으로, 제2 예시적 실시예에서, 검출된 2개의 점들의 위치 정보의 업데이트의 결과로서, 적어도 하나의 터치점의 이동에 의해 변경된 이동 방향들의 각도 차가 미리 결정된 임계값 보다 작은지의 여부를 기초로 멀티-드래그 조작 또는 핀치 조작이 입력되었는지의 여부가 결정된다.
이때, 각도 차가 작고 2개의 손가락들의 터치점들이 거의 동일한 방향으로 이동하였다는 것으로 추정될 때, 멀티-드래그 조작이 입력된 것으로 결정된다. 다른 한편으로, 각도 차가 클 때, 핀치 조작이 입력된 것으로 결정된다.
도 8은 변경예 1에 따른 정보 처리 장치(100)의 기능 구성을 도시한 기능 블록도이다. 도 8은 생성 유닛(801)과 제3 취득 유닛(802)이 추가되었다는 점에서 도 1b와 상이하다.
생성 유닛(801)은 제1 취득 유닛(112)에 의해 취득된 터치점들의 정보 중에서 벡터 생성에 필요한 정보를 홀딩한다. 생성 유닛(801)은, 터치점의 위치 정보의 시프트를 기초로, 각각의 터치점에 대한 이동량과 이동 방향을 나타내는 이동 벡터를 생성한다.
제3 취득 유닛(802)은 생성 유닛(801)에 의해 생성된 각각의 터치점에 대한 이동 벡터들의 각각의 방향 성분들을 비교하여 각도 차를 취득한다. 이어서, 이러한 예시적인 실시예에 따른 판정 유닛(116)은 제3 취득 유닛(802)에 의해 취득된 이동 벡터의 각도 차가 미리 결정된 임계값 이상이면, 사용자에 의해 실시된 조작을 핀치 조작(제1 조작)으로 판정한다.
다른 한편으로, 취득된 각도 차가 미리 결정된 임계값 보다 작으면, 사용자에 의해 실시된 작업이 멀티-드래그 조작(제2 조작)으로 결정된다.
그림 9는 멀티-터치 조작을 인식하기 위한, 제2 예시적 실시예에서의 정보 처리 장치(100)에 의해 실시되는 흐름을 보여주는 흐름도이다. 그림 2와 같은 번호를 갖는 단계들에서, 동일한 처리가 실시된다. 그에 따라, 상세한 설명을 설명하지 않고 제1 예시적 실시예와 다른 부분을 설명할 것이다.
제2 실시예에서, 단계(S204)에서, 적어도 하나의 터치점이 이동되었다고 판정 유닛(116)이 판정하였다면(단계(S204)에서 '예'), 처리가 단계(S901로 진행된다. 단계(S901)에서, 제3 취득 유닛(802)이 이동 벡터의 각도 차를 취득한다. 단계(S901)에서 실시되는 프로세스에 대한 상세한 내용을 이하에서 설명할 것이다.
이어서, 단계(S902)에서, 생성 유닛(801)에 의해 생성된 2개의 이동 벡터들의 각도 차가 임계값("b") 보다 작은지의 여부를 판정 유닛(116)이 판정한다. 이러한 예시적인 실시예에서, 임계값("b")은 정보 처리 장치(100)에 미리 등록된 각도에 대한 임계값이다. 그것은, 2개의 터치점들이 다른 방향들로 이동되었다는 것으로 판정하기 위해서 필요한 최소 값이 되도록 셋팅된다.
각도 차가 임계값("b") 이상인 것으로 판정된다면(단계(S902)에서 '아니오'), 판정 유닛(116)은 사용자에 의해 입력된 조작이 핀치 조작이라고 판정하고, 처리가 단계(S210)로 진행한다.
만약 각도 차가 임계값("b")보다 작으면(단계(S902)에서 '예'), 판정 유닛(116)은 사용자에 의해 입력된 조작이 멀티-드래그인 것으로 판정하고, 처리가 단계(S208)로 진행된다.
제2 예시적 실시예의 단계(S902)에서, 사용자가 핀치 조작을 입력한 것으로 결정되면, 단계(S210)에서, 제2 취득 유닛(115)이 터치된 두 점 사이의 거리를 취득하고 그것을 홀딩된 거리와 비교한다. 이어서, 두 점들 사이의 거리가 넓어지거나 좁아졌는지의 여부를 기초로, 제1 예시적 실시예와 같은 처리를 실시한다.
도 10은 단계(S901)에서 실행되는 터치점들의 이동 벡터들의 각도 차를 취득하기 위한 예시적인 처리 흐름을 보여주는 흐름도이다. 첫 번째로, 단계(S1001)에서, 생성 유닛(801)은 검출된 복수의 터치점 중 하나의 터치점을 지정하기 위해서 터치점의 ID를 선택한다.
단계(S1002)에서, 생성 유닛(801)은 위치 벡터의 시작 점이 되는 좌표를 결정한다. 이러한 예시적인 실시예에서, 생성 유닛(801)은, 홀딩된 터치점의 위치 정보를 기초로, 첫 번째로 검출된 선택된 ID를 갖는 터치점의 위치 또는 마지막으로 검출된 위치를 위치 벡터의 시작 점의 좌표로서 결정한다.
단계(S1003)에서, 생성 유닛(801)은 이동 벡터의 종료 점의 좌표를 결정한다. 이러한 예시적인 실시예에서, 생성 유닛(801)은, 제1 취득 유닛(112)에 의해 취득된 제공을 기초로, 선택된 ID를 갖는 터치점의 최신 위치 정보를 이동 벡터의 종료 점의 좌표로서 결정한다.
이어서, 단계(S1004)에서, 생성 유닛(801)은 결정된 시작 점으로부터 결정된 종료 점까지 이동 벡터를 지향시키는 방향을 나타내는 정보를 취득한다. 그러한 시간에, 생성 유닛(801)은 결정된 시작 점과 종료 점을 연결함으로써 이동 벡터를 생성한다. 그러나 시작 점과 종료 점이 동일한 좌표를 가질 때, 이동 벡터가 0 벡터로서 규정된다.
이어서, 입력 영역(401)의 Y-축을 기준으로 이용하여 생성된 이동 벡터의 방향을 나타내는 시계 방향을 따른 각도를 생성 유닛(801)이 계산한다. 각도 계산은, 예를 들어, 탄젠트 등의 삼각 함수를 이용함으로써 실시될 수 있다. 생성 유닛(801)은 터치점의 ID와 연관시킴으로써 취득된 각도의 정보를 홀딩한다.
단계(S1005)에서 제3 취득 유닛(802)은 모든 터치점들의 이동 벡터가 생성되었는지 여부를 결정한다. 제3 취득 유닛(802)은 생성 유닛(801) 내에서 홀딩되는 ID의 수를 기초로 하는 결정을 실시한다.
만약 모든 터치점들의 벡터가 생성된 것으로 제3 취득 유닛(802)이 결정하면(단계(S1005)에서 '예'), 프로세스가 단계(S1006)로 진행된다. 다른 한편으로, 모든 터치점들의 벡터들이 생성되지 않았다고 제3 취득 유닛(802)이 결정하면(단계(S1005)에서 '아니오'), 처리가 단계(S1001)로 복귀된다. 단계(S1001)에서, 다음에 처리할 터치점의 ID가 선택된다.
단계(S1006)에서, 제3 취득 유닛(802)이 각 터치점에 대한 이동 벡터들의 각도 차를 취득한다. 제3 취득 유닛(802)은 벡터들의 각도들의 차이를 계산한다. 생성 유닛(801)에서 홀딩되는 각도들은 벡터들의 방향들을 나타낸다. 취득된 각도 차는 절대값이다. 이어서, 이동 벡터들의 각도 차를 계산하는 처리가 종료되고, 그리고 처리가 단계(S902)로 진행된다. 후속 처리가 제1 예시적 실시예와 유사하게 실시된다.
도 11a 내지 11f는 단계(S901)에서 실시되는 터치점의 이동 벡터들의 예시적인 생성 방법을 도시한 도면들이다. 도 11a를 참조하여, 이러한 예시적인 실시예에서 생성된 이동 벡터들의 구체적인 예를 설명한다.
도 11a 내지 11f에서, p1 내지 p8은, 입력 영역(401)과 사용자의 손가락이 터치되는 위치들의 좌표들을 일정한 시간 간격으로 샘플링하기 위한 입력 영역(401)과 사용자의 손가락의 터치점들이다. p1은 첫 번째로 검출되는 위치에 상응한다.
이러한 예시적인 실시예에서, 터치 패널은 20 ms 마다 입력 영역(401)을 스캔한다. 그에 따라 약 20 ms 간격으로 터치점이 얻어질 수 있다. 생성 유닛(801)은 p2가 검출될 때 이동 벡터(V1a)를 생성한다. 유사하게, p3가 검출될 때 이동 벡터(V2a)가 생성되고, 그리고 p4가 검출될 때 이동 벡터(V3a)가 생성된다.
이동 벡터들의 생성 방법은 이러한 예시적인 실시예에서 사용된 방법으로 제한되지 않는다. 도 11b 내지 11d를 참조하면, 다른 예시적인 생성 방법들이 설명된다.
도 11b를 참조하면, 생성된 이동 벡터의 길이가 기준 거리(L)를 초과했을 때, 그 이동 벡터의 종료 점인 터치점의 검출된 위치는 다음 처리으로 생성하고자 하는 이동 벡터의 시작 점이 되도록 셋팅된다.
여기에서, p1 내지 p4는 일정한 시간 간격들로 샘플링된 터치점들이고, 그리고 p1은 터치점이 최초로 검출된 위치에 상응한다. 생성 유닛(801)은, p1 및 p2가 검출된 때 최초로 검출된 p1의 좌표를 이동 벡터의 시작점으로서 결정한다. p2가 검출될 때, 생성 유닛(801)은 시작 점으로서의 p1으로부터 종료 점으로서의 p2까지 지향되는 이동 벡터를 생성하고, 생성된 이동 벡터의 크기(p1에서 p2까지의 이동 길이)가 기준 거리(L)를 초과하였는지 여부를 결정한다.
생성된 이동 벡터의 길이가 기준 거리(L)를 초과할 때, 다음에 이동 벡터가 생성될 때 터치점의 최신 검출 위치가 시작 점의 좌표로 되도록 결정된다. 생성된 이동 벡터의 길이(p1에서 p2까지의 이동 길이)가 기준 거리(L)를 초과하지 않기 때문에, p3가 검출될 때, 이동 벡터(V1b)가 생성된다. 이어서, p3이 검출될 때, 생성 유닛(801)은 이동 벡터(V1b)의 길이가 기준 거리(L)를 초과하였는지의 여부를 결정한다.
이동 벡터(V1b)의 길이가 기준 거리(L)를 초과하기 때문에, 생성 유닛(801)은 이동 벡터가 다음에 생성될 때 p3를 이동 벡터의 시작 점으로서 결정한다.
이어서, p4가 검출될 때, 생성 유닛(801)은 시작 점으로서의 p3로부터 종료 점으로서의 p4까지 지향되는 이동 벡터(V2b)를 생성한다. 이러한 방식에서, 생성 유닛(801)은 각각의 터치점에 대해서 이동 벡터를 생성하고, 제3 취득 유닛(802)은 각각의 터치점에 대해서 생성된 최신 이동 벡터를 이용하여 각도 차를 취득한다. 생성 유닛(801)은 벡터들을 생성하는 데 필요하지 않은 터치점들의 정보 및 최신이 아닌 이동 벡터들의 정보를 폐기할 수 있다.
도 11c는, 이동 벡터들을 생성하기 위해서, 생성 유닛(801)이 터치점의 이동 속도가 국소적인 최소값(local minimum)이 되는 점을 시작 점들의 좌표로서 결정하는 예를 도시한다.
여기에서, p1 내지 p8은 일정한 시간 간격으로 샘플링된 터치점들이다. 샘플링 시간 간격들이 일정하기 때문에, 도 11c의 터치점들 사이의 거리가 터치점의 이동 속도에 비례한다. 그에 따라, p1로부터 p8까지의 터치점들의 시프트로부터 p6에서 이동 속도가 국소적인 최소치가 된다는 것을 확인할 수 있다.
따라서, 생성 유닛(801)은 p1 내지 p6가 검출될 때 처리에서 이동 벡터의 시작 점으로서 p1을 결정하고, 그리고 예를 들어, p6가 검출될 때, 생성 유닛(801)은 이동 벡터(V1c)를 생성한다. 이어서, p7에 후속하는 점들이 검출될 때 실행되는 처리에서, 생성 유닛(801)은 시작 점으로서 p6를 결정하고, 그리고 예를 들어, p8이 검출될 때, 생성 유닛(801)은 이동 벡터(V2c)를 생성한다.
그러나, 터치 패널 센서로부터 취득되는 터치점들의 위치 좌표들은 변동들을 포함할 수 있다. 예를 들어, 조작 중에 사용자의 손가락과 터치 패널 사이의 접촉 면적이 변화될 수 있을 것이고, 그리고 터치점으로서 지정된 하나의 점의 좌표들의 상대적인 위치가 변화될 수 있을 것이다. 그러한 변동들을 고려하지 않고 이동 벡터를 생성하였을 때, 이동 벡터의 방향이 검출들의 변동에 따라 달라질 수 있을 것이고, 그리고 각도 차 및 임계값("b")에 비교하여 처리의 정확도가 저하될 수 있을 것이다.
이러한 문제를 해결하기 위해, 도 11d를 참조하여, 결정된 좌표들 사이의 터치점들의 모든 시프트의 좌표들을 시작 점들로서 그리고 최신 검출 위치를 종료 점으로 간주하여 이동 벡터가 생성되는 예를 설명한다.
이러한 예시적인 실시예에서, 최초로 검출된 p1의 좌표들이 시작 점으로서 결정된다. 종료 점이 되는 좌표로서, 터치점의 최신 검출된 점의 X-좌표가 되도록 X 좌표가 결정되고, 그리고 이제까지 검출된 동일한 ID를 갖는 터치점들의 위치들의 Y-축 좌표들의 평균 값이 되도록 Y-좌표가 결정된다.
이러한 방식에서, 이동 벡터들의 각도 차와 임계값("b")의 비교 처리의 정확도는, 검출된 터치점의 좌표들의 평균 값을 이용하여 이동 벡터들을 생성함으로써 개선될 수 있다. 그에 따라, 멀티-터치 조작을 정확하게 인식할 수 있다.
전술한 이동 벡터를 생성하는 방법은 단지 예이다. 예를 들어, 생성된 이동 벡터들의 방향들의 각도 차가 미리 결정된 임계값 이상이 되는 것, 또는 터치점이 미리 결정된 시간 이상 동안 이동하지 않은 것을 기초로, 다음에 생성되는 이동 벡터의 시작 점의 좌표들을 결정할 수도 있다. 그에 따라, 여러 가지 방법들 중에서, 정보 처리 장치(100)의 연산 능력 등에 따라 적절한 방법을 선택할 수 있고, 그리고 이러한 예시적인 실시예에 대해서 이용할 수 있다.
제2 예시적 실시예에 따라 정보 처리 장치(100)를 사용자가 조작하는 조작예 3이 설명된다.
조작예 3에서, 조작예 1과 유사하게, 도 4a에 도시된 바와 같이, 사용자가 두 개의 손가락들(402 및 403)을 이용하여 입력 영역(401)을 터치하고 그리고 그 손가락들을 함께 우측 방향으로 이동시킨다(멀티-드래그 조작). 이어서, 도 4b에 도시된 바와 같이 각각의 손가락의 터치점을 시프트시킨다.
이때, 제1 취득 유닛(112)에 의해 취득된 각 터치점의 정보는, 도 5a 내지 5f에 도시된 표와 같이, 홀딩 유닛(113) 내에서 홀딩된다. 조작예 3에서, 각도의 임계값("b")이 45도로 셋팅된다.
조작예 3이 조작예 1과 다른 점은, 터치 패널로부터 수신된 터치점(D)의 터치 이벤트의 통지에 응답하여 적어도 하나의 터치점이 이동된 것이 단계(S204)에서 결정된(단계(S204)에서 '예') 이후의 처리에 있다. 단계(S901)에서, 생성 유닛(801)은, ID가 1인 터치점에 대해서, 터치점(A)의 위치를 시작 점의 좌표들로서 그리고 터치점(C)의 위치를 종료 점의 좌표들로 갖는 이동 벡터(A)를 생성한다.
각도가 기준으로서의 Y-축으로부터 시계 방향을 따라 계산될 때, 이동 벡터(A)의 방향이 90도가 된다. 유사하게, 생성 유닛(801)은, ID가 2인 터치점에 대해서, 터치점(B)의 위치를 시작 점의 좌표로서 그리고 터치점(D)의 위치를 종료 점의 좌표로서 갖는 이동 벡터(B)를 생성한다.
또한, 이동 벡터(B)의 방향은, 기준으로서의 Y-축으로부터 시계 방향을 따라서, 90도가 된다. 그에 따라, 제3 취득 유닛(802)은 이동 벡터(A)와 이동 벡터(B) 사이의 각도 차로서 0도를 나타내는 정보를 취득한다.
이러한 예시적인 실시예에서, 임계값("b")이 45도가 된다. 그에 따라, 단계(S902)에서, 제3 취득 유닛(802)에 의해 취득된 각도 차 0도가 임계값("b")보다 작다는 것을 판정 유닛(116)이 판정한다(단계(S902)에서 '예'). 다시 말해서, 2개의 터치점들이 동일한 방향으로 이동되기 때문에, 사용자가 멀티-드래그 조작을 입력하였다는 것이 결정된다. 그에 따라, 단계(S208) 및 단계(S209)에서, 멀티-드래그 조작에 상응하는 처리가 실시된다.
유사하게, 터치 패널로부터 터치점(F)의 터치 이벤트가 통지된 때에 실시되는 처리에서, 생성 유닛(801)은 ID가 1인 터치점에 대해서 도 4b에 도시된 이동 벡터(C)를, 그리고 ID가 2인 터치점에 대해서 도 4b에 도시된 이동 벡터(D)를 생성한다. 각각의 벡터의 방향은 90도이고, 그리고 각도 차는 0도이다. 그에 따라, 판정 유닛(116)은 멀티-드래그 조작이 입력되었다는 것을 판정한다.
이러한 예시적인 실시예의 단계(S1006)에서 실시된 각도 차를 취득하기 위한 처리에서, 바람직하게 계산된 결과가 절대값이 될 수 있을 것이다. 절대값을 이용함으로써, 각도 차의 정도만이 고려되고 각도 차의 방향은 고려되지 않는다.
또한, 예각의 각도 차를 계산하기 위해서, 계산 결과가 180도 초과라면, 각도 차를 얻기 위해 360도에서 계산 결과를 차감하는 것이 바람직하다. 예각의 각도 차들을 통합함으로써, 임계값과의 비교 처리의 일관성을 유지할 수 있고, 그리고 사용자가 시각적으로 이해하기가 용이한 조작이 얻어질 수 있다.
또한, 이동 벡터의 각도 차와 각도의 임계값 사이의 비교에서, 복수의 임계값들이 셋팅될 수 있을 것이다. 예를 들어, 시작 점과 종료 점 사이의 거리에 따라서, 거리가 짧다면, 큰 각도의 임계값이 이용된다. 이러한 방식에서, 전술한 바와 같은 터치점의 검출된 위치의 변동이 발생하는 경우에도, 이동 벡터의 방향으로서 취득되는 각도의 오차가 커짐으로 인해 야기되는 결정 정확도의 저하를 방지할 수 있다.
도 11e는 이동 벡터들(V1e 및 V1e') 사이의 방향 차이를 도시한다. p1이 검출된 후에 p2가 검출될 때 이동 벡터(V1e)가 생성된다. 벡터(V1e')는, 검출 위치의 변동으로 인해서 p2'가 검출될 때 생성된다. 다시 말해서, 도 11f는 이동 벡터(V2e 및 V2e') 사이의 방향 차이를 도시한다. p1이 검출된 이후에, p2와 분리된 p3가 검출될 때 이동 벡터(V2e)가 생성된다. 벡터(V2e')는, p3'가 검출될 때 생성된다.
p3와 p3' 사이의 검출 위치의 변동은 p2와 p2' 사이의 변동과 동일하다. V1e과 V1e' 사이의 방향들의 차이는 V2e과 V2e' 사이의 방향들의 차이보다 크다.
그에 따라, 시작 점으로부터 종료 점까지의 거리가 짧아짐에 따라, 검출된 위치의 변동이 이동 벡터의 방향에 크게 영향을 미친다. 따라서, 시작 점으로부터 종료 점까지의 거리에 따라 복수의 임계값들을 셋팅함으로써, 입력 멀티-터치 조작을 정확하게 결정할 수 있다.
전술한 바와 같이, 이러한 예시적인 실시예에서, 사용자가 2개의 점들을 터치할 때, 사용자에 의한 정보 처리 장치(100)로의 멀티-터치 조작 입력은, 모든 2개의 터치점들의 위치 정보의 업데이트의 완료에 응답하여, 결정된다. 이때, 검출된 2개의 점들의 위치 정보의 업데이트의 결과로서, 적어도 하나의 터치점의 이동에 의해 변화되는 이동 방향들의 각도 차가 미리 결정된 임계값 보다 더 작은지의 여부를 기초로, 멀티-드래그 조작 또는 핀치 조작이 입력되었는지의 여부가 결정된다.
이러한 방식에서, 사용자가 2개의 터치점들을 거의 동일한 방향으로 이동시킬 때, 핀치 조작이 잘못 통지되지 않는다. 결과적으로, 디스플레이되는 화상의 크기가 사용자의 의도에 반하여 변화되는 오동작이 방지된다. 또한, 제1 예시적 실시예 및 변경 예들, 그리고 제2 예시적 실시예가 조합되어 구현될 수 있을 것이다.
본원 발명의 양태들은 또한, 전술한 실시예(들)의 기능들을 실행하기 위해서 메모리 디바이스 상에 기록된 프로그램을 판독하고 실행하는 시스템 또는 장치의 컴퓨터(또는 CPU 또는 MPU와 같은 디바이스들)에 의해 구현될 수 있고, 그리고, 예를 들어, 전술한 실시예(들)의 기능들을 실행하기 위해서 메모리 디바이스 상에 기록된 프로그램을 판독하고 실행하는 시스템 또는 장치의 컴퓨터에 의해 실행되는 단계들을 포함하는 방법에 의해 구현될 수 있을 것이다. 이를 위해, 프로그램은 예를 들어 메모리 디바이스들(예를 들어, 컴퓨터 판독가능 매체)로서의 역할을 하는 여러 가지 타입들의 기록 매체로부터 또는 네트워크를 통해서 컴퓨터로 제공된다. 이러한 경우, 시스템 또는 장치는, 및 프로그램이 저장된 기록 매체는 본 발명의 범위 내에 포함된다.
예시적인 실시예들을 참조하여 본원 발명을 설명하였지만, 본원 발명은 개시된 예시적인 실시예들로 제한되지 않는다는 것을 이해하여야 할 것이다. 모든 변형 실시예들 및 균등한 구조물들 및 기능들을 포함하도록, 이하의 청구항들의 범위는 가장 넓은 해석을 따를 것이다.

Claims (13)

  1. 터치 패널 상에서 미리 결정된 검출 주기에 따라 검출된 하나 이상의 터치점들의 위치 정보를 하나씩 취득하도록 구성된 정보 처리 장치이며,
    상기 하나 이상의 터치점들의 각각에 대한 위치 정보를 홀딩하도록 구성된 홀딩 유닛과;
    위치 정보가 상기 홀딩 유닛 내에서 홀딩되는 터치점들의 수를 취득하도록 구성된 취득 유닛과;
    상기 취득 유닛에 의해 취득된 터치점들의 수가 둘 이상인 경우에, 각각의 미리 결정된 검출 주기에서 상기 홀딩 유닛 내에서 위치 정보가 홀딩되어 있는 모든 터치점들의 최신 위치 정보가 지정되었음을 결정하도록 구성된 결정 유닛과;
    상기 결정 유닛에 의해 실시된 결정 이후에 상기 정보 처리 장치에 대해 실시되는 멀티-터치 조작을 판정하도록 구성된 판정 유닛을 포함하는, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 결정 유닛은, 상기 홀딩 유닛 내에서 홀딩되는 모든 터치점들의 위치 정보의 업데이트의 완료에 응답하여 상기 모든 터치점들의 최신 위치 정보가 지정되는 것을 결정하고,
    상기 판정 유닛은, 복수의 상기 터치점의 위치 정보가 모두 지정되었다는 결정의 완료에 응답하여 상기 정보 처리 장치에 대해 실시된 멀티-터치 조작을 판정하는, 정보 처리 장치.
  3. 제1항에 있어서,
    상기 결정 유닛은, 상기 홀딩 유닛 내에 홀딩된 위치 정보 중에서 최고(earliest) 위치 정보가 업데이트된 후에 미리 결정된 시간의 경과를 기초로 복수의 상기 터치점이 모두 지정되었음을 결정하고,
    상기 판정 유닛은, 상기 복수의 터치점의 위치 정보가 모두 지정되었음이 결정된 후에 상기 정보 처리 장치에 대해 실시된 멀티-터치 조작을 판정하는, 정보 처리 장치.
  4. 제1항에 있어서,
    상기 홀딩 유닛 내에서 홀딩되는 위치 정보를 기초로 복수의 상기 터치점 사이의 거리의 변화량을 취득하도록 구성된 거리 취득 유닛을 더 포함하고,
    상기 판정 유닛은, 상기 거리 취득 유닛에 의해 취득된 거리의 변화량이 제1 임계값을 초과하는 경우에 상기 정보 처리 장치에 대해 실시되는 조작이 제1 조작이라고 판정하고, 상기 거리 취득 유닛에 의해 취득된 거리의 변화량이 상기 제1 임계값을 초과하지 않는 경우에 상기 정보 처리 장치에 대해 실시되는 조작이 제2 조작이라고 판정하는, 정보 처리 장치.
  5. 제4항에 있어서,
    상기 제1 조작의 수신에 응답하여 디스플레이 유닛 상에 확대된 또는 축소된 화상을 디스플레이하도록 구성된 디스플레이 제어 유닛을 더 포함하는, 정보 처리 장치.
  6. 제4항에 있어서,
    상기 제2 조작의 수신에 응답하여 디스플레이 유닛 상에 디스플레이되는 화상과는 다른 화상을 지정하고 디스플레이하도록 구성된 디스플레이 제어 유닛을 더 포함하는, 정보 처리 장치.
  7. 제1항에 있어서,
    상기 홀딩 유닛 내에서 홀딩되는 위치 정보를 기초로 복수의 상기 터치점의 이동 방향의 각도 차를 취득하도록 구성된 각도 취득 유닛을 더 포함하고,
    상기 판정 유닛은, 상기 각도 취득 유닛에 의해 취득된 이동 방향들의 각도 차가 제2 임계값 이상인 경우에 상기 정보 처리 장치에 대해 실시되는 조작이 제1 조작이라고 판정하고, 상기 각도 취득 유닛에 의해 취득된 이동 방향들의 각도 차가 상기 제2 임계값보다 작은 경우에 상기 정보 처리 장치에 대해 실시되는 조작이 제2 조작이라고 판정하는, 정보 처리 장치.
  8. 제7항에 있어서,
    상기 홀딩 유닛 내에서 홀딩되는 상기 복수의 터치점의 각각의 위치 정보의 시프트를 기초로 상기 복수의 터치점의 각각에 대한 이동 벡터를 생성하도록 구성된 생성 유닛을 더 포함하고,
    상기 각도 취득 유닛은, 상기 생성 유닛에 의해 생성된 상기 복수의 터치점의 각각의 이동 벡터의 방향을 기초로 상기 복수의 터치점의 이동 방향들의 각도 차를 취득하는, 정보 처리 장치.
  9. 제7항에 있어서,
    상기 제1 조작의 수신에 응답하여 디스플레이 유닛 상에 확대된 또는 축소된 화상을 디스플레이하도록 구성된 디스플레이 제어 유닛을 더 포함하는, 정보 처리 장치.
  10. 제7항에 있어서,
    상기 제2 조작의 수신에 응답하여 디스플레이 유닛 상에 디스플레이되는 화상과는 다른 화상을 지정하고 디스플레이하도록 구성된 디스플레이 제어 유닛을 더 포함하는, 정보 처리 장치.
  11. 삭제
  12. 터치 패널 상에서 미리 결정된 검출 주기에 따라 검출된 하나 이상의 터치점들의 위치 정보를 하나씩 취득하도록 구성된 정보 처리 장치를 위한 제어 방법이며,
    상기 하나 이상의 터치점들의 각각의 위치 정보를 홀딩 유닛 내에 홀딩하는 단계와;
    위치 정보가 상기 홀딩 유닛 내에서 홀딩되는 상기 터치점들의 수를 취득하는 단계와;
    취득된 상기 터치점들의 수가 둘 이상인 경우에, 각각의 미리 결정된 검출 주기에서 상기 홀딩 유닛 내에서 위치 정보가 홀딩되어 있는 모든 터치점들의 최신 위치 정보가 지정되었음을 결정하는 단계와;
    상기 결정 이후에 상기 정보 처리 장치에 대해 실시되는 멀티-터치 조작을 판정하는 단계를 포함하는, 정보 처리 장치의 제어 방법.
  13. 컴퓨터에 의해 판독되고 실행될 때, 상기 컴퓨터가 제12항에 따른 정보 처리 장치의 제어 방법을 실행하게 하는 컴퓨터-실행가능 프로그램을 저장하는, 컴퓨터-판독가능한 저장 매체.
KR1020130017848A 2012-02-28 2013-02-20 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체 KR101572307B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012041603A JP5990011B2 (ja) 2012-02-28 2012-02-28 情報処理装置及びその制御方法
JPJP-P-2012-041603 2012-02-28

Publications (2)

Publication Number Publication Date
KR20130098907A KR20130098907A (ko) 2013-09-05
KR101572307B1 true KR101572307B1 (ko) 2015-11-26

Family

ID=47747487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130017848A KR101572307B1 (ko) 2012-02-28 2013-02-20 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체

Country Status (8)

Country Link
US (1) US9880673B2 (ko)
EP (1) EP2634681A3 (ko)
JP (1) JP5990011B2 (ko)
KR (1) KR101572307B1 (ko)
CN (1) CN103294227B (ko)
BR (1) BR102013004710B1 (ko)
IN (1) IN2013CH00808A (ko)
RU (1) RU2568775C2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792017B1 (en) 2011-07-12 2017-10-17 Domo, Inc. Automatic creation of drill paths
US10001898B1 (en) 2011-07-12 2018-06-19 Domo, Inc. Automated provisioning of relational information for a summary data visualization
US9202297B1 (en) 2011-07-12 2015-12-01 Domo, Inc. Dynamic expansion of data visualizations
JP5852514B2 (ja) * 2012-06-13 2016-02-03 株式会社東海理化電機製作所 タッチセンサ
KR102157332B1 (ko) * 2013-03-15 2020-09-17 삼성전자주식회사 전자 장치에서 줌 기능을 제어하기 위한 방법 및 장치
KR102143760B1 (ko) * 2013-12-02 2020-08-13 엘지디스플레이 주식회사 터치추적방법
JP6071866B2 (ja) * 2013-12-18 2017-02-01 キヤノン株式会社 表示制御装置、表示装置、撮像システム、表示制御方法、及びプログラム
KR102242891B1 (ko) * 2013-12-30 2021-04-21 엘지디스플레이 주식회사 가우시안 합성 모델을 이용한 터치 좌표 산출 방법
TWI610211B (zh) * 2014-02-07 2018-01-01 財團法人工業技術研究院 觸控裝置、處理器及其觸控訊號讀取方法
CN103914224B (zh) * 2014-03-24 2018-03-23 联想(北京)有限公司 信息处理方法和装置
US9645731B2 (en) 2014-03-31 2017-05-09 Xiaomi Inc. Unlocking method and device using same
CN103971046B (zh) * 2014-03-31 2018-10-19 小米科技有限责任公司 一种解密的方法和装置
CN104156167B (zh) * 2014-07-29 2018-01-02 Tcl通讯(宁波)有限公司 一种移动终端及其儿童模式的进入与退出方法
CN104679429A (zh) * 2015-02-12 2015-06-03 深圳市中兴移动通信有限公司 防误触方法及装置
JP2016206749A (ja) * 2015-04-16 2016-12-08 シャープ株式会社 タッチ入力装置、前記タッチ入力装置を備えた画像形成装置およびタッチ入力方法
JP2016212738A (ja) 2015-05-12 2016-12-15 コニカミノルタ株式会社 情報処理装置、情報処理プログラム、及び情報処理方法
CN113138701A (zh) 2015-11-05 2021-07-20 小米科技有限责任公司 图标位置互换方法及装置
JP6391893B1 (ja) * 2017-10-11 2018-09-19 三菱電機株式会社 操作入力装置、情報処理システムおよび操作判定方法
CN109254707A (zh) * 2018-09-14 2019-01-22 Oppo广东移动通信有限公司 一种窗口调节的方法、移动终端及计算机可读存储介质
US10761709B2 (en) * 2018-11-29 2020-09-01 General Electric Company Computer system and method for changing display of components shown on a display device
CN112181265B (zh) 2019-07-04 2022-04-15 北京小米移动软件有限公司 一种触控信号处理方法、装置及介质
CN112287108B (zh) * 2020-10-29 2022-08-16 四川长虹电器股份有限公司 一种物联领域的意图识别优化方法
CN112445378B (zh) * 2020-11-23 2023-08-29 深圳市中视典数字科技有限公司 触摸点位置更新方法、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011059952A (ja) 2009-09-09 2011-03-24 Aisin Aw Co Ltd 入出力表示装置
JP2011258227A (ja) 2000-01-31 2011-12-22 Canon Inc 操作装置の動作方法及び操作装置及びそのプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5952998A (en) * 1997-01-15 1999-09-14 Compaq Computer Corporation Transparent touchpad with flat panel display for personal computers
JP4803883B2 (ja) * 2000-01-31 2011-10-26 キヤノン株式会社 位置情報処理装置及びその方法及びそのプログラム。
US8643605B2 (en) 2005-11-21 2014-02-04 Core Wireless Licensing S.A.R.L Gesture based document editor
US7956847B2 (en) 2007-01-05 2011-06-07 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US7884805B2 (en) 2007-04-17 2011-02-08 Sony Ericsson Mobile Communications Ab Using touches to transfer information between devices
KR20090038540A (ko) 2007-10-16 2009-04-21 주식회사 현대오토넷 화면 상의 영상위치 변경 장치 및 방법, 그리고 그를이용한 네비게이션 시스템
EP2291729B1 (en) * 2008-04-30 2013-06-05 N-Trig Ltd. Multi-touch detection
CN101667089B (zh) 2008-09-04 2011-08-17 比亚迪股份有限公司 一种触摸手势的识别方法和装置
TW201011618A (en) * 2008-09-05 2010-03-16 Kye Systems Corp Optical multi-point touch-to-control method of windows-based interface
JP2010086230A (ja) * 2008-09-30 2010-04-15 Sony Corp 情報処理装置、情報処理方法およびプログラム
US8217909B2 (en) 2008-12-19 2012-07-10 Cypress Semiconductor Corporation Multi-finger sub-gesture reporting for a user interface device
KR101844366B1 (ko) * 2009-03-27 2018-04-02 삼성전자 주식회사 터치 제스처 인식 장치 및 방법
US20110032192A1 (en) 2009-08-04 2011-02-10 General Electric Company Touch screen control system and method
JP5340868B2 (ja) * 2009-09-24 2013-11-13 パイオニア株式会社 接触操作装置
US9417787B2 (en) * 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US20110205169A1 (en) * 2010-02-24 2011-08-25 Primax Electronics Ltd. Multi-touch input apparatus and its interface method using hybrid resolution based touch data
US20110225524A1 (en) * 2010-03-10 2011-09-15 Cifra Christopher G Multi-Touch Editing in a Graphical Programming Language
JP5473708B2 (ja) * 2010-03-26 2014-04-16 京セラ株式会社 携帯端末及び表示制御プログラム
EP2378403A1 (en) * 2010-04-19 2011-10-19 Tyco Electronics Services GmbH Method and device for determining a user's touch gesture
US8749499B2 (en) * 2010-06-08 2014-06-10 Sap Ag Touch screen for bridging multi and/or single touch points to applications
US8743064B2 (en) 2010-09-17 2014-06-03 A.I. Solutions, Inc. Gesture orbit design
US9542092B2 (en) 2011-02-12 2017-01-10 Microsoft Technology Licensing, Llc Prediction-based touch contact tracking
JP2012185647A (ja) 2011-03-04 2012-09-27 Sony Corp 表示制御装置、表示制御方法、およびプログラム
CN102736769B (zh) 2011-03-31 2017-04-05 比亚迪股份有限公司 多点缩放动作的识别方法和装置
US8368723B1 (en) 2011-07-14 2013-02-05 Google Inc. User input combination of touch and user position
US20130021261A1 (en) * 2011-07-18 2013-01-24 Research In Motion Limited Electronic device and method of controlling same
US10296205B2 (en) 2011-12-12 2019-05-21 Sony Corporation User interface for controlling a display scale of an image
US9436300B2 (en) * 2012-07-10 2016-09-06 Nokia Technologies Oy Method and apparatus for providing a multimodal user interface track

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258227A (ja) 2000-01-31 2011-12-22 Canon Inc 操作装置の動作方法及び操作装置及びそのプログラム
JP2011059952A (ja) 2009-09-09 2011-03-24 Aisin Aw Co Ltd 入出力表示装置

Also Published As

Publication number Publication date
CN103294227A (zh) 2013-09-11
BR102013004710B1 (pt) 2021-06-29
EP2634681A2 (en) 2013-09-04
RU2568775C2 (ru) 2015-11-20
US20130222340A1 (en) 2013-08-29
BR102013004710A2 (pt) 2015-10-06
RU2013108886A (ru) 2014-09-10
KR20130098907A (ko) 2013-09-05
JP2013178636A (ja) 2013-09-09
EP2634681A3 (en) 2017-04-05
US9880673B2 (en) 2018-01-30
CN103294227B (zh) 2016-11-30
JP5990011B2 (ja) 2016-09-07
IN2013CH00808A (ko) 2015-08-14

Similar Documents

Publication Publication Date Title
KR101572307B1 (ko) 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 저장 매체
US9529527B2 (en) Information processing apparatus and control method, and recording medium
JP6188288B2 (ja) 情報処理装置及びその制御方法
JP6004716B2 (ja) 情報処理装置およびその制御方法、コンピュータプログラム
US9880684B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium
US9430089B2 (en) Information processing apparatus and method for controlling the same
JP2016018459A (ja) 画像処理装置、その制御方法、プログラム、及び記憶媒体
US9389781B2 (en) Information processing apparatus, method for controlling same, and recording medium
US20160196032A1 (en) Information processing apparatus, information processing method and a non-transitory storage medium
US9377849B2 (en) Information processing apparatus and control method for recognizing a touch operation
US10296130B2 (en) Display control apparatus, display control method, and storage medium storing related program
JP6176907B2 (ja) 情報処理装置およびその制御方法、プログラム
JP2016110518A (ja) 情報処理装置、その制御方法、プログラム、及び記憶媒体
US10126856B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium
JP2015230693A (ja) 情報処理装置、入力方法、コンピュータプログラム、及び記録媒体
US10318047B2 (en) User interface for electronic device, input processing method, and electronic device
EP3128405B1 (en) Information processing apparatus, input control method, method of controlling information processing apparatus
JP2017215842A (ja) 電子機器
WO2019024507A1 (zh) 一种触摸控制方法、装置及终端
CN110262747B (zh) 控制终端的方法、装置、终端及存储介质
JP2014130449A (ja) 情報処理装置およびその制御方法
JP6305147B2 (ja) 入力装置、操作判定方法、コンピュータプログラム、及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant