KR20140116401A - 패닝 애니메이션 - Google Patents

패닝 애니메이션 Download PDF

Info

Publication number
KR20140116401A
KR20140116401A KR1020147018667A KR20147018667A KR20140116401A KR 20140116401 A KR20140116401 A KR 20140116401A KR 1020147018667 A KR1020147018667 A KR 1020147018667A KR 20147018667 A KR20147018667 A KR 20147018667A KR 20140116401 A KR20140116401 A KR 20140116401A
Authority
KR
South Korea
Prior art keywords
distance
panning
animation
computing device
user interface
Prior art date
Application number
KR1020147018667A
Other languages
English (en)
Other versions
KR102150733B1 (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 KR20140116401A publication Critical patent/KR20140116401A/ko
Application granted granted Critical
Publication of KR102150733B1 publication Critical patent/KR102150733B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • 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/0485Scrolling or panning
    • 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
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0267Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by controlling user interface components
    • H04W52/027Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by controlling user interface components by controlling a display operation or backlight unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)

Abstract

패닝 애니메이션 기술이 설명된다. 하나 이상의 실시예에서, 컴퓨팅 장치에 의해 패닝 애니메이션에 대응하는 입력이 인식된다. 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 패닝 애니메이션에 의해 이동하게 될 거리가 계산되는데, 이 거리는 사전정의된 최대 거리에 의해 제한된다. 패닝 애니메이션은 계산된 거리를 이동하도록 컴퓨팅 장치에 의해 출력된다.

Description

패닝 애니메이션{PANNING ANIMATIONS}
사용자는 사용자 인터페이스를 네비게이팅하는 다양한 방법을 가지고 있다. 그러나, 이러한 네비게이션에 해당하는 이동을 디스플레이하기 위해 이용된 종래의 기술은 예측불가능하고 불완전한 사용자 경험을 초래할 수 있다.
예를 들어, 사용자 인터페이스에서의 이동을 디스플레이하기 위한 애니메이션을 포함하는 종래 기술은 예측불가능할 수 있다. 예를 들어, 사용자는 애니메이션에 관련된 이동이 사용자 인터페이스에서 "끝나는" "지점"을 규칙적으로 판정할 수 없다. 이러한 예측 불가능성은 컴퓨팅 장치의 자원이 비효율적으로 사용되게 할 수 있다. 예를 들어, 사용자는 사용자 인터페이스가 원하는 위치를 지나 네비게이팅하도록 하는 입력을 제공할 수 있다. 따라서, 사용자는 원하는 위치로 다시 네비게팅하기 위해 추가의 입력을 제공할 수 있는데, 이는 시간 집중적이고 비효율적일 수 있으며, 사용자의 불만을 초래할 수 있다.
패닝 애니메이션 기술이 설명된다. 하나 이상의 실시예에서, 컴퓨팅 장치에 의해 패닝 애니메이션에 대응하는 입력이 인식된다. 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 패닝 애니메이션에 의해 이동하게 될 거리가 계산되는데, 이 거리는 사전정의된 최대 거리로 제한된다. 패닝 애니메이션은 계산된 거리를 이동하도록 컴퓨팅 장치에 의해 출력된다.
하나 이상의 실시예에서, 제1 패닝 애니메이션에 대응하는 제1 입력의 인식에 응답하여, 제1 패닝 애니메이션은 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 제1 거리를 이동하도록 출력된다. 제1 거리는 제1 사전정의된 최대 거리로 제한되어 컴퓨팅 장치에 의해 계산된다. 제1 패닝 애니메이션의 출력 동안 수신된 제2 패닝 애니메이션에 대응하는 제2 입력의 인식에 응답하여, 제2 패닝 애니메이션은 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 제2 거리를 이동하도록 출력된다. 제2 거리는 제1 사전정의된 최대 거리보다 큰 제2 사전정의된 최대 거리로 제한되어 컴퓨팅 장치에 의해 계산된다.
하나 이상의 실시예에서, 시스템은, 적어도 부분적으로 컴퓨팅 장치의 하드웨어로 구현되고 컴퓨팅 장치에 의해 검출된 하나 이상의 입력의 인식에 응답하여 패닝 애니메이션을 출력하도록 구성된 패닝 애니메이션 모듈을 포함한다. 이 패닝 애니메이션 모듈은 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 패닝 애니메이션에 의해 이동하게 될 거리를 계산하도록 구성된 패닝 거리 모듈을 포함하는데, 거리는 사전정의된 최대 거리로 제한된다. 패닝 애니메이션 모듈은 또한 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에 패닝 애니메이션을 출력하는데 사용되는 시간의 양을 계산하도록 구성된 패닝 시간 모듈을 포함하고, 이 시간의 양은 사전정의된 최대 시간으로 제한된다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 개념들 중 선택된 것들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 정하는데 있어서 보조 수단으로 사용되기 위한 것도 아니다.
상세한 설명은 첨부된 도면을 참조하여 설명한다. 도면에서, 참조 번호의 가장 왼쪽의 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다. 상세한 설명 및 도면의 서로 다른 예시에서의 동일한 참조 부호의 사용은 유사하거나 동일한 항목을 나타낼 수 있다. 도면들에서 표현된 엔티티들은 하나 이상의 엔티티를 나타낼 수 있고 따라서 상세한 설명에서 단일 또는 복수의 형태의 엔티티에 대한 참조는 상호교환가능하다.
도 1은 패닝 애니메이션 기법을 채용하도록 동작 가능한 예시적인 구현에서의 환경을 나타낸다.
도 2는 도 1의 사용자 인터페이스가 패닝 애니메이션 모듈과 함께 보다 상세히 도시되어 있는 예시적인 실시예를 나타낸다.
도 3은 패닝 애니메이션에 대해 계산된 거리가 사전정의된 최대 거리로 제한되는 예시적인 실시예에서의 절차를 나타내는 흐름도이다.
도 4는 연속적인 입력이 애니메이션을 네비게이팅하는 데 사용되는 예시적인 실시예에서의 절차를 나타내는 흐름도이다.
도 5는 본 명세서에서 설명된 기법들에 대한 실시예를 구현하기 위해 도 1 및 도 2를 참조하여 설명한 임의의 유형의 컴퓨팅 장치로서 구현될 수 있는 예시적인 장치의 다양한 컴포넌트들을 포함하는 예시적인 시스템을 도시한다.
개요
사용자 인터페이스에서의 이동을 보여주기 위한 애니메이션(예를 들어, 터치 제스처에 응답한 패닝)을 채용한 종래 기술은 종종 예측불가능하였다. 따라서, 이러한 종래의 기술과의 사용자 상호작용은 종종 비효율적이고 사용자의 불만을 야기할 수 있다.
패닝 애니메이션 기술이 설명된다. 하나 이상의 실시예에서, 패닝 애니메이션 기술은 이 기술을 채용하는 사용자 인터페이스와 상호작용할 때 사용자에게 어느 정도의 예측 가능성을 제공할 수 있도록, 사용자의 입력에 대해 비례적으로 응답하도록 구성된다. 이러한 기술은 다양하고 상이한 기능을 지원하도록 구성될 수 있다. 예를 들어, 이 기술은 애니메이션을 출력하는데 사용될 최대 거리 및/또는 최대 시간을 지원하도록 구성될 수 있다. 예를 들어, 거리는 이동을 디스플레이하는 사용자 인터페이스와 연관된 디스플레이 영역의 양에 기초할 수 있다.
또한, 본 기술은 애니메이션의 출력을 위해 사용되는 시간으로부터 거리의 계산을 분리시키는데 사용될 수 있다. 예를 들어, 이동은 입력과 연관된 속도에 기초하여 계산될 수 있고 애니메이션을 "느리게" 하기 위해 감속(deceleration rate)을 사용할 수 있다. 애니메이션을 출력하기 위한 시간의 양도 계산될 수 있다. 이후 애니메이션을 수행하기 위해 애니메이션 커브에 거리 및 시간이 적용될 수 있다.
또한, 본 기술은 연속된 입력을 지원하도록 구성될 수 있다. 예를 들어, 패닝 애니메이션은 "플릭(flick)" 제스처와 같은 터치 입력에 응답하여 출력될 수 있다. 이 출력 동안, 사용자는 사용자 인터페이스에서 이동을 계속하고, 보다 빠르게 및/또는 보다 멀리 이동하기 위한 또 다른 입력(예를 들어, 또 다른 플릭 제스처)을 제공할 수 있다. 따라서, 초기 애니메이션에 적용된 최대 거리는 사용자의 입력을 처리하도록, 후속 입력에 응답하여 확장될 수 있다. 이들 및 다른 기술의 추가적인 논의는 다음 섹션에 관련하여 발견될 수 있다.
이하의 설명에서는, 본 명세서에서 설명된 기술들을 채용할 수 있는 예시적인 환경이 먼저 설명된다. 그런 다음, 예시적인 환경에 및 다른 환경에서 수행될 수 있는 예시적인 절차가 설명된다. 따라서, 예시적인 절차의 수행은 예시적인 환경에 한정되지 않고, 예시적인 환경은 예시적인 절차의 수행에 국한되지 않는다.
예시적인 환경
도 1은 본원에 기재된 이동 종점 노출 기술(movement endpoint exposure techniques)을 채용하도록 동작 가능한 예시적인 실시예에서의 환경(100)을 나타낸다. 예시된 환경(100)은 다양한 방식으로 구성될 수 있는 컴퓨팅 장치(102)를 포함한다. 예를 들어, 컴퓨팅 장치(102)는 데스크톱 컴퓨터, 이동국, 오락 기기, 디스플레이 장치에 통신가능하게 결합된 셋탑 박스, 무선 전화, 슬레이트(예, 태블릿), 게임 콘솔 등으로서 구성될 수 있다. 따라서, 컴퓨팅 장치(102)는 많은 메모리 및 프로세서 자원을 구비한 풀 자원 장치(예를 들어, 개인용 컴퓨터, 게임 콘솔)에서부터 제한된 메모리 및/또는 프로세싱 자원을 갖는 로우-자원 장치(예를 들면, 기존의 셋톱 박스, 핸들 헬드 게임 콘솔)에 이르는 범위를 가질 수 있다. 또한, 하나의 컴퓨팅 장치(102)가 도시되어 있지만, 컴퓨팅 장치(102)는 예컨대 원격 제어 및 셋톱 박스 조합, 이미지 캡처 장치 및 제스처를 포착하도록 구성된 게임 콘솔 등과 같은 복수의 상이한 장치를 나타낼 수 있다.
컴퓨팅 장치(102)는 처리 시스템(104) 및 메모리(106)를 포함하는 것으로 예시되어 있다. 처리 시스템 (104)은 이하의 모듈에 대한 설명에서 더 기술되는 바와 같이, 예컨대 명령어의 실행을 통한 하나 이상의 동작, 예컨대 애플리케이션 특정 집적 회로와 같이 "실리콘으로(in silicon)" 구현되는 하나 이상의 기능 블록으로서의 구성 등을 수행하는 컴퓨팅 장치(102)의 기능을 나타낸다.
컴퓨팅 장치(102)는 운영 체제(108)를 포함하는 것으로 더 도시되어 있다. 운영 체제(108)는 컴퓨팅 장치(102) 상에서 실행가능한 애플리케이션(110)에 대한 컴퓨팅 장치(102)의 기본 기능을 추상화하도록 구성된다. 예를 들어, 운영 체제(108)는 애플리케이션(110)이 이러한 기본 기능이 "어떻게" 구현되는지를 알지 못해도 작성될 수 있도록 컴퓨팅 장치(102)의 처리 시스템(104), 메모리(106), 네트워크 및/또는 디스플레이 기능(예를 들어, 디스플레이 장치(112))을 추상화할 수 있다. 예를 들어, 애플리케이션(110)은 렌더링이 어떻게 수행될 것인지를 이해하지 못해도 디스플레이 장치(112)에 의해 렌더링 및 디스플레이될 데이터를 운영 체제(108)에 제공할 수 있다. 운영 체제(108)는 컴퓨팅 장치(102)의 사용자에 의해 네비게이팅가능한 사용자 인터페이스 및 파일 시스템의 관리와 같은 다양한 다른 기능을 나타낼 수 있다.
운영 체제(108)는 또한 네비게이션 모듈(114)을 포함하는 것으로 예시되어 있다. 네비게이션 모듈(114)은 디스플레이 장치(112) 상의 디스플레이를 위해 출력된 사용자 인터페이스(116)를 네비게이팅하는 기능을 나타낸다. 예를 들어, 예시되어 있는 사용자 인터페이스(116)는 한번에 디스플레이 장치에 디스플레이될 수 있는 것보다 많은 양의 검색 결과를 포함하도록 구성될 수 있다. 따라서, 네비게이션 모듈(114)은 관심 있는 부분을 보기 위해 사용자 인터페이스(116)를 네비게이팅하는데 사용될 수 있는 기법들을 지원할 수 있다.
이 네비게이션은 다양한 방식으로 수행될 수 있다. 예를 들어, 컴퓨팅 장치(102)는 예컨대 사용자의 손(118)에 의해 행해진 제스처의 검출을 통해 사용자로부터 하나 이상의 입력을 수신할 수 있다. 이 제스처는 예컨대 카메라를 사용하여 검출된 (예를 들어, 디스플레이 장치(112) 및/또는 트랙 패드의) 터치 기능을 사용하는 등 다양한 방식으로 검출될 수 있다. 키보드, 커서 제어 장치(예를 들어, 마우스) 및 다른 하드웨어 장치 등을 이용한 다양한 다른 입력이 또한 고려된다.
사용되는 입력 기법과는 무관하게, 네비게이션 모듈(114)은 입력의 식별에 응답하여 사용자 인터페이스(116)에 이동을 디스플레이할 애니메이션을 개시할 수 있다. 이동을 디스플레이하도록 구성된 기능의 일 예는 패닝 애니메이션 모듈(120)의 사용을 통해 설명된다. 패닝 애니메이션 모듈(120)은 디스플레이 장치(112) 상에 디스플레이하기 위해 컴퓨팅 장치(102)에 의한 패닝 애니메이션을 구성 및 출력하는 기능을 나타낸다.
패닝 애니메이션 모듈(120)은 패닝 거리 모듈(122) 및 패닝 시간 모듈(124)을 포함하는 것으로 도시된다. 따라서, 이 예에서, 패닝 애니메이션 모듈(120)은 시간으로부터 거리의 계산을 분리하도록 구성되어 패닝 애니메이션의 구성에 보다 큰 융통성을 제공할 수 있다. 그러나, 거리와 시간을 함께 계산하는 것과 같은 다양한 다른 예가 또한 고려됨을 쉽게 이해할 수 있을 것이다.
패닝 거리 모듈(122)은 패닝 애니메이션에 의해 사용자 인터페이스(116)에서 이동하게 될 거리를 계산하는 패닝 애니메이션 모듈(120)의 기능을 나타낸다. 마찬가지로, 패닝 시간 모듈(124)은 패닝 애니메이션을 출력하는데 사용되는 시간을 양을 계산하는 패닝 애니메니션 모듈(120)의 기능을 나타낸다. 패닝 애니메이션 모듈(120) 및 그의 대응하는 패닝 거리 모듈(122) 및 패닝 시간 모듈(124)에 대한 추가적인 논의는 이하의 도면에 관한 초기 설명에서 발견될 수 있다.
도 2는 도 1의 사용자 인터페이스(116)가 패닝 애니메이션 모듈(120)과 함께 보다 자세히 도시되어 있는 예시적인 실시예(200)를 나타낸다. 이 예에서 사용자 인터페이스(116)는 제1 섹션(202), 제2 섹션(204), 및 제3 섹션(206)을 구비한 것으로 도시되어 있다. 이들 섹션 각각은 예를 들어 현재의 윈도우 내에 및/또는 디스플레이 장치(112)에 의해 임의의 하나의 시점에서 주어진 배율로 디스플레이가능한 사용자 인터페이스(116)의 크기를 나타낸다.
제1 섹션(202)은 디스플레이 장치(112)에 의해 현재 디스플레이되고 있는 박스 내에 도시되어 있는 한편, 제2 섹션(204) 및 제3 섹션(206)은 환영(phantom)으로 도시되어 있다. 이 예에서, 입력은 제1 섹션(202)의 디스플레이 동안 수신된다. 앞서 설명한 바와 같이, 이것은 디스플레이 장치(112)의 터치 기능을 사용하여 검출되는 제스처를 사용하는 것과 같이 다양한 방식으로 수행될 수 있다. 예를 들어, 입력 장치(예를 들어, 커서 제어 장치의 스크롤 휠), 키보드 등을 사용하는 것과 같이 다양한 다른 예가 또한 고려된다.
예를 들어, 제스처는 사용자의 손(118)의 손가락을 디스플레이 장치(112)에 대는 것과 이어서 소정의 방향으로 이동시키는 것을 포함하는데, 예시된 예는 화살표를 사용하여 도시되어 있는 바와 같이 위쪽으로의 수직 이동을 포함한다. 패닝 애니메이션 모듈(120)은 이러한 이동을 패닝 애니메이션에 대응하는 것으로 인식하도록 구성될 수 있다.
예를 들어, 패닝 애니메이션 모듈(120)은 패닝 애니메이션의 출력을 통해 사용자의 손(118)의 손가락의 이동을 따라가도록 사용자 인터페이스(116)의 이동을 개시할 수 있다. 패닝 애니메이션 모듈(120)은 또한 정지 입력 이후 패닝 애니메이션의 출력이 계속되도록 하여 사용자 인터페이스(116)의 이동이 물리적인 특성을 가지는 것처럼 보이도록 하는 관성을 채용하도록 구성될 수 있다.
패닝 애니메이션 모듈(120)은 패닝 애니메이션을 다양한 방식으로 구성할 수 있다. 예를 들어, 사용자의 손(118)의 손가락이 디스플레이 장치(112)로부터 들어올려졌을 때에 대응하는 속도가 검출될 수 있다. 이 속도는 사용자 인터페이스(116)에서 이동되게 될 거리를 계산하기 위해 패닝 거리 모듈(122)에 의해 사용될 수 있다.
하나 이상의 실시예에서, 패닝 거리 모듈(122)은 패닝 거리 모듈(122)에 의해 수행되는 계산의 일부로서 사전정의된 최대 거리를 이용하도록 구성된다. 예를 들어, 패닝 거리 모듈(122)은 사용자 인터페이스(116)가 입력에 응답하여 이동하게 될 거리를 계산하기 위해 전술한 바와 같은 입력의 속도를 이용할 수 있다. 허용되는 사용자 인터페이스(116)에서의 이동량을 제한하기 위해 패닝 거리 모듈(122)에 의해 최대 거리가 또한 이용될 수 있다. 예를 들어, 패닝 거리 모듈(122)에 의한 입력에 대응하는 거리의 초기 계산이 최대 거리를 초과하는 경우, 이 최대 거리가 사용자 인터페이스(116)에서 이동하게 될 거리로서 이용된다. 따라서, 최대 거리는 사용자 인터페이스(116)에서의 이동에 대한 예측가능성을 제공하는데 사용될 수 있다.
최대 거리는 다양한 방식으로 정의될 수 있다. 예를 들어, 최대 거리는 사용자 인터페이스(116)와 연관된 디스플레이 영역의 크기에 기초할 수 있다. 예를 들어, 패닝 거리 모듈(122)은 최대 거리를 디스플레이 영역의 양의 배수(예를 들어, 디스플레이 영역의 세 배)에 기초하게 할 수 있다.
최대 거리에 대한 기초로서 역할을 하는 디스플레이 영역은 다양한 방식으로 정의될 수 있다. 이것은 제1 섹션(202)에서 도시되어 있는 바와 같이 사용자 인터페이스를 디스플레이하는데 사용되는 사용자 인터페이스의 윈도우의 크기를 포함한다. 이 크기는 윈도우에 의해 현재 소비되는 디스플레이 환경의 크기, 예를 들어, 디스플레이 장치(112)에 의해 디스플레이가능한 윈도우의 크기에 기초할 수 있다. 따라서, 이 예에서, 현재 디스플레이되지 않는 (예를 들어, "오프 스크린"인) 윈도우의 일부분은 계산을 위한 기초로서 사용되지 않는다. 윈도우 전체가 온스크린인지 여부와 무관하게 윈도우의 사전정의된 영역과 같은 다른 예시가 고려된다. 이 거리를 디스플레이 장치(112)의 가용 디스플레이 영역, 복수의 디스플레이 장치(예를 들어, 다중 모니터 환경)를 이용하는 디스플레이 환경의 가용 디스플레이 영역 등에 기초하는 것과 같은 다양한 다른 예가 고려된다.
앞서 설명한 바와 같이, 패닝 시간 모듈(124)은 패닝 애니메이션을 출력할 시간의 양을 계산하도록 구성된 기능을 나타낸다. 패닝 시간 모듈(124)은 또한 사용자 인터페이스(116)와의 상호작용에 대한 예측가능성을 더 추가하는데 사용될 수 있는 계산의 일부로서의 사전정의된 최대 시간을 이용하도록 구성될 수 있다.
예를 들어, 패닝 거리 모듈(122)은 패닝 애니메이션의 일부로서의 이동을 디스플레이하는데 사용되는 시간을 양을 결정하기 위해 전술한 바와 같이 입력의 속도를 이용할 수 있다. 패닝 애니메이션의 이동을 디스플레이하는데 허용되는 사용자 인터페이스(116)에서의 시간의 양을 제한하기 위해 시간의 최대 양이 패닝 시간 모듈(124)에 의해 이용될 수 있다. 예를 들어, 패닝 시간 모듈(124)에 의한 입력에 대응하는 시간의 양에 대한 초기 계산이 시간의 최대 양을 초과하는 경우, 이 시간의 최대 양은 사용자 인터페이스(116)에 이동을 출력하는데 사용되는 시간의 양으로서 사용된다. 따라서, 시간의 최대 양은 사용자 인터페이스(116)에서의 이동에 대한 예측가능성을 제공하는데 사용될 수 있다. 하나 이상의 실시예에서, 시간의 양의 계산은 또한 패닝 거리 모듈(122)로부터의 거리의 계산에 기초할 수 있다.
패닝 애니메이션 모듈(120)은 패닝 거리 모듈(122)에 의해 계산된 거리 및 패닝 시간 모듈(124)에 의해 계산된 시간을 수신하여 패닝 애니메이션을 구성하도록 구성될 수 있다. 예를 들어, 패닝 애니메이션 모듈(120)은 이들 값을 애니메이션 커브에 적용하여 패닝 애니메이션을 수행할 수 있다. 그런 다음, 패닝 애니메이션은 디스플레이 장치(112)에 의한 디스플레이를 위해 사용자 인터페이스(116)에서의 이동을 디스플레이하도록 출력될 수 있다.
따라서, 패닝 애니메이션 모듈(120)은 패닝 거리 모듈(122)을 사용하여 입력의 속도 및 감속 값에 기초하여 거리를 최대 거리까지 계산할 수 있다. 패닝 시간 모듈(124)은 (거리에 대한 감속 값과 동일하거나 또는 다른 상수일 수 있는) 감속 값 및 속도에 기초하여 시간을 시간의 일정한 최대 양까지 계산할 수 있다.
패닝 애니메이션의 구성의 일부로서 패닝 애니메이션 모듈(120)에 의해 다양한 다른 애니메이션 커브가 이용될 수 있다. 예를 들어, 계산된 시간의 양 동안 계산된 거리에 걸쳐 이동하기 위해 패닝 애니메이션 모듈(120)에 의해 큐빅 베지어 애니메이션 커브(cubic Bezier animation curve)가 이용될 수 있다. 따라서, 큐빅 베지어 애니메이션 커브는 어떤 거리 및 시간이 계산되더라도 그에 맞도록 "확장" 또는 "수축"될 수 있다. 예를 들어, 예컨대 제스처의 종료시에 입력의 속도를 근사화하기 위해 동적으로 수정되는 제어 포인트를 포함하는 사전정의된 큐빅 베지어 커브가 사용될 수 있다. 이것은 패닝 애니메이션이 입력의 속도와 비슷하게 시작하여, 사용자의 움직임을 매끄럽게 지속할 수 있도록 보장한다.
또한, 감속 값을 사용하여, 큐빅 베지어 애니메이션 커브는 시작시 비교적 신속하게 수행되고 종료시 서서히 "랜딩(land)"하도록 감속하기 위해 패닝 애니메이션에 관련된 관성을 구성할 수 있다. 이것은 사용자 인터페이스(116)와의 사용자 상호작용을 돕기 위한 다양한 기능을 지원하는데 사용될 수 있다. 예를 들어, 패닝 애니메이션은 사용자 인터페이스(116)에서 애니메이션의 목적지로 거리의 많은 부분을 신속하게 이동시키도록 구성될 수 있다. 이에 의해 패닝 애니메이션은 비교적 빠르게 수행되고 예측가능한 것으로 보일 수 있고, 따라서 사용자는 애니메이션이 목적지를 나타내기를 오래 기다릴 필요가 없다.
또 다른 예에서, 느린 랜딩(slow landing)은 사용자가 사용자 인터페이스(116)의 목적지에 위치한 콘텐츠를 비교적 신속하게 보고 식별할 수 있도록 해준다. 이러한 식으로, 사용자는 추가의 패닝이 요구되지는 여부를 알기 전에 애니메이션이 완전히 정지하기를 기다릴 필요가 없다. 이러한 감속은 물리적인 느낌을 사용자 인터페이스(116)에 제공할 수 있고 따라서 사용자 인터페이스(116)가 실제 세계에서의 것과 유사한 방식으로 터치 및 조작될 수 있는 엔티티가 되는 사용자 경험을 보강할 수 있다.
또한, 전술한 바와 같이, 패닝 애니메이션은 사용자 인터페이스(116)와 연관된 디스플레이 영역의 크기에 기초하여 최대 거리를 이용할 수 있다. 이것은 사용자 인터페이스(116)가 예를 들어 플릭 제스처에 응답하여 사용자에 의해 뜻하지 않게 멀리 패닝되지 않도록 보장하는데 사용될 수 있다.
또한, 거리의 예측가능성은 컴퓨팅 장치(102)의 자원들의 효율적인 사용을 촉진할 수 있다. 예를 들어, 이러한 거리 제한은 애플리케이션 및 시스템 제어가 팬에 의해 달성되는 거리를 계획할 수 있고 그에 따라 반응할 수 있도록 해준다. 예를 들어, 거리 제한이 3개의 페이지라면, 애플리케이션(110)은 컴퓨팅 장치(102)에 의한 불완전한 렌더링으로 인해 패닝 동안 사용자가 빈 스크린에 노출되는 확률을 줄이기 위해 3개의 페이지의 콘텐츠를 캐싱할 수 있다.
패닝 애니메니션 모듈(120)은 또한 연속적인 입력을 다루도록 구성될 수 있다. 예를 들어, 사용자가 여러 번 연속적으로 패닝하는 경우(예를 들어, 하나의 팬이 동일한 방향의 이전 팬의 관성 애니메이션을 방해하는 경우), 패닝 거리 모듈(122)에 의한 패닝에 대한 거리를 제한하는데 사용되는 최대 거리는 증가될 수 있다. 이러한 식으로, 사용자는 사용자 인터페이스(116)에서 보다 먼 거리를 효율적으로 커버할 수 있다.
예를 들어, 사용자 인터페이스로 하여금 사용자 인터페이스의 제1 섹션(202)으로부터 제2 섹션(204)으로 패닝하게 하는 제1 입력이 패닝 애니메이션 모듈에 의해 수신될 수 있다. 이에 응답하여, 패닝 애니메이션 모듈(120)은 사용자 인터페이스(116)의 이동을 시작할 수 있다. 이것은, 예를 들어 제1 섹션(202)의 부분들이 "오프 스크린"으로 이동함에 따라 제2 섹션(204)의 부분들이 디스플레이 장치(112) 상의 디스플레이를 위해 "온스크린"으로 이동되는 스크롤링 애니메이션을 디스플레이하는 것과 같은 다양한 방식으로 수행될 수 있다. 따라서, 이 예에서, 제2 섹션(204)의 부분들은 애니메이션 동안 제1 섹션(202)의 부분들을 대체하는데 사용된다.
제2 섹션(204)을 디스플레이하기 위한 애니메이션이 디스플레이 장치(112) 상의 디스플레이를 위해 출력되는 경우, 사용자 인터페이스(116)에서 이동을 계속하기 위한 제2 입력이 사용자로부터 수신될 수 있다. 제2 입력은 제2 섹션(204)을 출력하기 위해 수신되었던 제1 입력과 동일하거나 또는 다를 수 있다. 이 예에서, 제2 입력은 또한 사용자 인터페이스(116)가 사용자 인터페이스(116)에서 아래쪽으로의 동일한 방향으로 패닝할 수 있도록 구성된다.
제2 섹션(204)의 디스플레이를 포함하는 애니메이션의 출력에서 입력이 수신된 지점을 나타내는 사용자 인터페이스(116)에 관련된 화살표(208)를 사용하여 입력이 예시되어 있다. 예를 들어, 언급된 화살표는 "Action Sports"를 포함하는 제2 섹션(204)의 일부가 디스플레이 장치(112)에 의한 디스플레이를 위해 출력되었다는 것을 나타낸다. 그러나, 화살표 "아래에" 있는 제2 섹션의 다른 부분들은 앞으로 출력되어야 한다.
그에 응답하여, 패닝 애니메이션 모듈(120)은 제1 애니메이션에 포함된 관성 부분의 출력, 예를 들어 입력을 실시간으로 따르지 않는 부분의 출력을 중단하도록 구성될 수 있다. 그 보다, 사용자 인터페이스(116)는 예를 들어 사용자 인터페이스(116)가 제2 입력, 예컨대 사용자 손(118)의 손가락의 이동에 부합하도록 이동되게끔 제2 입력을 실시간으로 따르도록 구성될 수 있다.
이러한 이동이 중단되면(예를 들어, 사용자의 손(118)의 손가락이 디스플레이 장치로부터 들어 올려지는 경우), 패닝 애니메이션 모듈(120)은 앞서와 같이 패닝 거리 모듈(122) 및 패닝 시간 모듈(124)을 이용할 수 있다. 그러나, 이 경우, 애니메이션을 위해 패닝 거리 모듈(122)에 의해 사전정의된 최대 거리는 제1 애니메이션을 위해 사용된 최대 거리에 관련하여 증가되는데, 예를 들어, 3개의 스크린으로부터 5개의 스크린으로 증가된다. 따라서, 이 예에서, 입력이 개별적으로 처리되는 경우보다는 패닝 애니메이션 모듈(120)에 의해 사용자 인터페이스(116)를 더 네비게이팅하는데 연속적인 입력이 이용될 수 있다. 이들 및 다른 기법에 대한 추가적인 설명은 이하의 절차와 관련하여 발견될 수 있다.
예시적인 절차
이하의 설명은 앞서 설명한 시스템 및 장치를 사용하여 구현될 수 있는 패닝 애니메이션 기법을 설명한다. 각 절차의 양상들은 하드웨어, 펌웨어 또는 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 절차들은 하나 이상의 장치에 의해 구현되는 동작을 지정하는 블록들의 세트로서 도시되어 있지만 각 블록에 의해 동작을 수행하는 것으로 도시되어 있는 순서에 반드시 국한될 필요는 없다. 이하의 설명에서, 도 1의 환경(100) 및 도 2의 예시적인 실시예(200)를 참조할 것이다.
도 3은 패닝 애니메이션을 위해 계산된 거리가 사전정의된 최대 거리로 제한되는 예시적인 실시예에서의 절차(300)를 나타낸다. 컴퓨팅 장치에 의해 패닝 애니메이션에 대응하는 입력이 인식된다(블록 302). 예를 들어, 이 입력은 터치 기능 또는 카메라를 사용하여, 또는 마우스의 스크롤 휠과 같은 커서 제어 장치를 사용하여 검출된 제스처일 수 있다.
컴퓨팅 장치에 의해 출력되는 사용자 인터페이스에서 패닝 애니메이션에 의해 이동될 거리가 계산되는데, 이 거리는 사전정의된 최대 거리로 제한된다(블록 304). 예를 들어, 패닝 거리 모듈(122)은 입력의 속도에 기초하여 거리를 계산할 수 있다. 또한, 이 거리는 앞서 설명한 바와 같이 최대 거리로 제한될 수 있다.
패닝 애니메이션은 계산된 거리를 이동하도록 컴퓨팅 장치에 의해 출력된다(블록 306). 예를 들어, 패닝 애니메이션은 이동이 입력 정지 이후에도 계속되도록, 예를 들어 "플릭" 제스처 이후에도 계속되도록 관성의 디스플레이를 포함하도록 구성될 수 있다. 다양한 다른 예가 또한 고려된다.
도 4는 애니메이션을 네비게이팅하기 위해 연속적인 입력이 사용되는 예시적인 실시예에서의 절차(400)를 나타낸다. 제1 패닝 애니메이션에 대응하는 제1 입력의 인식에 응답하여, 제1 패닝 애니메이션은 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 제1 거리를 이동하도록 출력된다. 제1 거리는 제1 사전정의된 최대 거리로 의해 제한되어 컴퓨팅 장치에 의해 계산된다(블록 402). 앞서와 같이, 제1 거리는 예를 들어 입력의 속도 또는 입력의 다른 특성, 예를 들어 입력의 길이, 입력을 제공하는데 소요되는 시간의 양 등에 기초하여 다양한 방식으로 패닝 거리 모듈(122)에 의해 계산될 수 있다.
제1 패닝 애니메이션의 출력 동안 수신된, 제2 패닝 애니메이션에 대응하는 제2 입력의 인식에 응답하여, 제2 패닝 애니메이션은 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 제2 거리를 이동하도록 출력된다. 제2 거리는 제1 사전정의된 최대 거리보다 큰 제2 사전정의된 최대 거리로 제한되어 컴퓨팅 장치에 의해 계산된다(블록 404). 이 경우, 제2 입력은 제1 애니메이션의 출력 동안 수신된다. 따라서, 패닝 거리 모듈(122)은 제1 패닝 애니메이션을 위해 사용된 최대 거리보다 큰 최대 거리를 제2 패닝 애니메이션을 위해 사용할 수 있다. 따라서, 이 예에서, 애니메이션의 출력 동안 제공된 입력은 개별적으로 제공된 경우보다, 즉 이전 애니메이션의 출력 동안에 출력되지 않은 경우보다 사용자 인터페이스(116)에서 더 이동하는데 사용될 수 있다.
예시적인 시스템 및 장치
도 5는 본 명세서에서 설명된 다양한 기술들을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 장치를 나타내는 예시적인 컴퓨팅 장치(502)를 포함하는 예시적인 시스템을 일반적으로 참조번호(500)로 나타낸다. 컴퓨팅 장치(502)는, 예를 들어, 서비스 제공자의 서버, 클라이언트와 연관된 장치(예를 들어, 클라이언트 장치), 온칩 시스템 및/또는 임의의 다른 적합한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
예시된 바와 같은 컴퓨팅 장치(502)는 처리 시스템(504), 하나 이상의 컴퓨터 판독 가능 매체(506), 및 서로 통신 가능하게 결합되는 하나 이상의 I/O 인터페이스(508)를 포함한다. 도시되지는 않았지만, 컴퓨팅 장치(502)는 다양한 컴포넌트들을 서로 연결하는 시스템 버스, 또는 다른 데이터 및 명령 전송 시스템을 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 제어기, 주변 버스, 범용 직렬 버스, 및/또는 임의의 다양한 버스 아키텍처를 이용하는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조의 하나 이상의 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은 다양한 다른 예도 고려된다.
처리 시스템(504)은 하드웨어를 사용하여 하나 이상의 동작을 수행하는 기능을 나타낸다. 따라서, 처리 시스템(504)은 프로세서, 기능 블록 등으로 구성될 수 있는 하드웨어 요소(510)를 포함하는 것으로 예시된다. 이것은 애플리케이션 특정 집적 회로 또는 하나 이상의 반도체를 사용하여 형성된 다른 논리 장치와 같은 하드웨어 구현을 포함할 수 있다. 하드웨어 요소(510)는 이들을 형성하는 재료 또는 그에 채택된 처리 메커니즘에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체(들) 및/또는 트랜지스터(예를 들어, 집적 회로(IC))로 구성될 수 있다. 그러한 문맥에서, 프로세서 실행 가능 명령어는 전자식으로 실행 가능한 명령어일 수 있다.
컴퓨터 판독 매체(506)는 메모리/저장소(512)를 포함하는 것으로 예시된다. 메모리/저장소(512)는 하나 이상의 컴퓨터 판독가능 매체와 연관된 메모리/저장 용량을 나타낸다. 메모리/저장소(512)는 (랜덤 액세스 메모리 (RAM)와 같은) 휘발성 매체 및/또는 (판독 전용 메모리 (ROM), 플래시 메모리, 광 디스크, 자기 디스크 등과 같은) 비휘발성 매체를 포함할 수 있다. 메모리/저장소(512)는 고정된 매체(예를 들어, RAM, ROM, 고정 하드 드라이브 등) 및 이동식 매체(예를 들어, 플래시 메모리, 이동식 하드 드라이브, 광디스크 등)를 포함할 수 있다. 컴퓨터 판독가능 매체(506)는 이하에서 설명하는 바와 같이 다른 다양한 방법으로 구성될 수 있다.
입/출력 인터페이스(들)(508)는 사용자가 명령 및 정보를 컴퓨팅 장치(502)에 입력할 수 있게 하고, 또한 정보가 다양한 입/출력 장치를 사용하여 사용자 및/또는 다른 컴포넌트 또는 장치에 표시될 수 있도록 하는 기능을 나타낸다. 입력 장치의 예는 키보드, 커서 제어 장치(예를 들어, 마우스), 마이크로폰, 스캐너, 터치 기능(예를 들면, 물리적 접촉을 검출하도록 구성된 용량성 또는 다른 센서), (예를 들어, 터치를 포함하지 않는 제스처와 같은 움직임을 검출하기 위해 적외선 주파수와 같은 가시적 또는 비가시적 파장을 채용할 수 있는) 카메라 등을 포함한다. 출력 장치의 예는 디스플레이 장치(예를 들어, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각 반응 장치 등을 포함한다. 따라서, 컴퓨팅 장치 (502)는 사용자 상호작용을 지원하기 위해 아래에서 설명하는 바와 같이 여러 가지 방법으로 구성될 수 있다.
본 명세서에서 소프트웨어, 하드웨어 요소, 또는 프로그램 모듈의 일반적인 문맥에서 다양한 기술들이 기술될 수 있다. 일반적으로, 이러한 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 구성 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본원에서 사용되는 용어 "모듈", "기능" 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 본원에 설명된 기술의 특징들은 플랫폼 독립적이며, 이는 기술들이 다양한 프로세서를 갖는 다양한 상업적 컴퓨팅 다양한 플랫폼상에서 구현될 수 있다는 것을 의미한다.
기술된 모듈 및 기술들의 구현은 컴퓨터 판독가능 매체의 일부 형태에 저장되거나 또는 그를 통해 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 장치(502)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 저장 매체" 및 "컴퓨터 판독가능 신호 매체"를 포함할 수 있다.
"컴퓨터 판독가능 저장 매체"는 단순한 신호 전송, 반송파, 또는 신호 그 자체인 것과 대조적으로 정보의 영구적 및/또는 비 일시적인 저장을 가능하게 하는 매체 및/또는 장치를 지칭할 수 있다. 따라서, 컴퓨터 판독가능 저장 매체는 비 신호 베어링 매체를 의미한다. 컴퓨터 판독가능 저장 매체는 휘발성 및 비휘발성, 이동식 및 비이동식 매체 및/또는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 로직 요소/회로 또는 다른 데이터와 같은 정보의 저장을 위한 방법 또는 기술로 구현된 저장 장치와 같은 하드웨어를 포함한다. 컴퓨터 판독가능 저장 매체의 예는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 저장 장치, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 다른 저장 장치, 유형 매체, 또는 원하는 정보를 저장하고 컴퓨터에 의해 액세스될 수 있는 제조 물품을 포함하나 여기에 국한되지는 않는다.
"컴퓨터 판독가능 신호 매체"는 예를 들어 네트워크를 통해 컴퓨팅 장치(502)의 하드웨어에 명령어를 송신하도록 구성되는 신호 베어링 매체를 지칭할 수 있다. 신호 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터를 반송파, 데이터 신호 또는 다른 전송 메카니즘과 같은 변조 데이터 신호 내에 구현할 수 있다. 신호 매체는 또한 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 자신의 하나 이상의 특성을 설정 또는 변경한 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다.
전술한 바와 같이, 하드웨어 요소(510) 및 컴퓨터 판독가능 매체(506)는 본 명세서에서 기술한 기술들 중 적어도 일부 측면을 구현하기 위해 몇몇 실시예에서 채용될 수 있는 하드웨어 형태로 구현된 명령어, 모듈, 프로그램가능 장치 로직 및/또는 고정된 장치 로직을 나타낸다. 하드웨어는 집적 회로 또는 온 칩 시스템의 컴포넌트, 애플리케이션 특정 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 복합 프로그램가능 논리 소자(CPLD) 및 실리콘 또는 기타 하드웨어 장치에서의 다른 구현을 포함할 수 있다. 이러한 상황에서, 하드웨어는 이 하드웨어뿐만 아니라 앞서 설명한 컴퓨터 판독가능 저장 매체와 같은 실행을 위한 명령어를 저장하는데 이용되는 하드웨어에 의해 구현되는 명령어, 모듈 및/또는 로직에 의해 정의된 프로그램 작업을 수행하는 처리 장치로서 동작할 수 있다.
본원에 기재된 다양한 기술 및 모듈을 구현하기 위해 전술한 것들의 조합이 사용될 수 있다. 따라서, 소프트웨어, 하드웨어 또는 실행가능 모듈은 소정의 형태의 컴퓨터 판독가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 요소(510)에 의해 구현되는 하나 이상의 명령어 및/또는 로직으로 구현될 수 있다. 컴퓨팅 장치(502)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 따라서, 컴퓨팅 장치(502)에 의해 소프트웨어로서 실행가능한 모듈의 구현은 예를 들어 처리 시스템(510)의 컴퓨터 판독가능 저장 매체 및/또는 하드웨어 요소(510)의 사용을 통해 적어도 부분적으로 하드웨어로 달성될 수 있다. 명령어 및/또는 기능은 본 명세서에서 설명된 기술들, 모듈들, 실시예를 구현하기 위해 하나 이상의 제조 물품(예를 들어, 하나 이상의 컴퓨팅 장치(502) 및/또는 처리 시스템 (504))에 의해 실행가능/동작가능할 수 있다.
도 5에 더 도시되어 있는 바와 같이, 예시적인 시스템(500)은 개인용 컴퓨터(PC), 텔레비전 장치 및/또는 모바일 장치에서 애플리케이션을 실행할 때 원활한 사용자 경험을 위해 유비쿼터스 환경을 가능하게 한다. 서비스 및 애플리케이션은 애플리케이션을 이용하고, 비디오 게임을 하고, 비디오를 시청하는 동안 하나의 장치에서 다음 장치로 전환할 때 공통적인 사용자 경험을 위해 3개의 환경 모두에서 실질적으로 유사하게 실행된다.
예시적인 시스템(500)에서, 다수의 장치는 중앙 컴퓨팅 장치에 의해 상호연결된다. 중앙 컴퓨팅 장치가 다수의 장치에 대해 로컬일 수도 있고, 다수의 장치에 대해 원격으로 위치할 수 있다. 일 실시예에서, 중앙 컴퓨팅 장치는 네트워크, 인터넷 또는 기타 데이터 통신 링크를 통해 다수의 장치에 연결되어 있는 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
일 실시예에서, 이러한 상호연결 아키텍처는 다수의 장치의 사용자에게 공통적이고 원활한 경험을 제공하기 위해 다수의 장치에 걸쳐 기능이 전달되는 것을 가능하게 한다. 다수의 장치 각각은 서로 다른 물리적 요건 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 이 장치에 적합하고 모든 장치에 공통되는 장치로의 경험의 전달을 가능하게 하는 플랫폼을 사용한다. 일 실시예에서, 타겟 장치들의 클래스가 생성되고 경험은 장치들의 일반적인 클래스에 맞춤화된다. 장치들의 클래스는 물리적 특징, 사용의 유형 또는 장치의 다른 일반적인 특성에 의해 정의될 수 있다.
다양한 구현에서, 컴퓨팅 장치(502)는 컴퓨터(514), 모바일(516), 텔레비전 (518) 용도 등 다양한 구성을 가정할 수 있다. 이러한 구성들 각각은 일반적으로 다른 구조 및 기능을 가질 수 있는 장치를 포함하고, 따라서 컴퓨팅 장치(502)는 상이한 장치 클래스들 중 하나 이상에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 장치(502)는 개인용 컴퓨터, 데스크탑 컴퓨터, 멀티 스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터(514) 클래스로 구현될 수 있다.
컴퓨팅 장치(502)는 또한 이동 전화, 휴대용 음악 플레이어, 휴대용 게이밍 장치, 태블릿 컴퓨터, 멀티 스크린 컴퓨터 등과 같은 모바일 장치를 포함하는 장치의 모바일(516) 클래스로서 구현될 수 있다. 컴퓨팅 장치(502)는 또한 평상시 시청 환경에서 보다 큰 스크린을 구비하거나 그에 연결된 장치를 포함하는 장치의 텔레비전(518) 클래스로서 구현될 수 있다. 이러한 장치는 텔레비전, 셋톱 박스, 게임 콘솔 등을 포함한다.
본 명세서에서 설명된 기술은 컴퓨팅 장치(502)의 이러한 다양한 구성에 의해 지원될 수 있으며, 네비게이션 모듈(114)을 포함시켜 설명한 본 명세서에 기재된 기술의 특정 실시예에 한정되지 않는다. 네비게이션 모듈(114)의 이러한 기능은 또한 후술하는 바와 같이 예를 들어 플랫폼(522)을 통해 "클라우드"(520)를 이용하는 것과 같이, 분산 시스템을 사용하여 전체적으로 또는 부분적으로 구현될 수 있다.
클라우드(520)는 자원(524)을 위한 플랫폼(522)을 포함하고/하거나 나타낸다. 플랫폼(522)은 클라우드(520)의 소프트웨어 자원 및 하드웨어 (예를 들어, 서버)의 기본 기능을 추상화한다. 자원(524)은 컴퓨팅 장치(502)로부터 원격으로 위치한 서버에서 컴퓨터 처리가 실행되는 동안 이용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 자원(524)은 셀룰러 또는 Wi-Fi 네트워크와 같은 가입자 네트워크 및/또는 인터넷을 통해 제공되는 서비스를 포함할 수 있다.
플랫폼(522)은 다른 컴퓨팅 장치와 컴퓨팅 장치(502)를 연결하기 위한 자원 및 기능을 추상화할 수 있다. 플랫폼(522)은 또한 플랫폼(522)을 통해 구현되는 자원(524)에 대해 발생된 요구에 대해 대응하는 스케일의 레벨을 제공하기 위해 자원의 스케일링을 추상화하는 역할을 할 수 있다. 따라서, 상호 연결된 장치의 실시예에서, 본 명세서에 설명된 기능의 구현은 시스템(500)을 통해 분산될 수 있다. 예를 들어, 기능은 클라우드(520)의 기능을 추상화하는 플랫폼(522)을 통해 또한 컴퓨팅 장치(502)에서 부분적으로 구현될 수 있다.
결론
본 발명은 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 기술되었지만, 첨부된 청구항에 정의된 본 발명은 전술한 바와 같은 특정 특징 또는 동작들에 반드시 국한될 필요는 없다. 그 보다, 전술한 특정 특징 및 동작들은 청구된 본 발명을 구현하기 위한 예시적인 형식으로 개시되어 있다.

Claims (10)

  1. 패닝 애니메이션(panning animation)에 대응하는 입력을 컴퓨팅 장치에 의해 인식하는 단계와,
    상기 컴퓨팅 장치에 의해 출력된 사용자 인터페이스에서 상기 패닝 애니메이션에 의해 이동될 거리를 계산하는 단계- 상기 거리는 사전정의된 최대 거리로 제한됨 -와,
    상기 계산된 거리를 이동하도록 상기 패닝 애니메이션을 상기 컴퓨팅 장치에 의해 출력하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 입력은 상기 컴퓨팅 장치의 터치 기능을 사용하여 검출되는 터치 입력인
    방법.
  3. 제1항에 있어서,
    상기 최대 거리는 상기 컴퓨팅 장치에 의해 디스플레이된 상기 사용자 인터페이스에 대응하는 디스플레이 영역의 크기에 기초하여 정의되는
    방법.
  4. 제3항에 있어서,
    상기 디스플레이 영역의 크기는 상기 사용자 인터페이스가 디스플레이되는 윈도우에 의해 정의되는
    방법.
  5. 제3항에 있어서,
    상기 디스플레이 영역의 크기는 상기 사용자 인터페이스를 디스플레이하는데 사용되는 디스플레이 장치에 의해 정의되는
    방법.
  6. 제1항에 있어서,
    상기 거리는 상기 입력과 연관된 속도(velocity)에 기초하여 계산되는
    방법.
  7. 제1항에 있어서,
    상기 패닝 애니메이션을 출력하는 단계는 상기 계산된 거리를 이동하기 위해 상기 입력과 연관된 속도에 감속(deceleration rate)을 적용하는 단계를 포함하는
    방법.
  8. 제1항에 있어서,
    상기 패닝 애니메이션의 출력 동안 수신된 또 다른 입력을 인식하는 단계- 상기 또 다른 입력은 또 다른 패닝 애니메이션에 대응하는 것으로 인식됨 -와,
    상기 컴퓨팅 장치에 의해 출력된 상기 사용자 인터페이스에서 상기 또 다른 패닝 애니메이션에 의해 이동될 또 다른 거리를 계산하는 단계- 상기 또 다른 거리는 또 다른 사전정의된 최대 거리로 제한되고, 상기 또 다른 사전정의된 최대 거리는 상기 출력되는 패닝 애니메이션의 거리를 계산하는데 사용된 상기 사전정의된 최대 거리보다 큼 -와,
    상기 계산된 또 다른 거리를 이동하도록 상기 또 다른 패닝 애니메이션을 상기 컴퓨팅 장치에 의해 출력하는 단계
    를 더 포함하는 방법.

  9. 제1항에 있어서,
    상기 패닝 애니메이션의 출력을 수행하는데 사용되는 시간을 계산하는 단계를 더 포함하되, 상기 시간은 사전정의된 최대 시간으로 제한되는
    방법.
  10. 제9항에 있어서,
    상기 시간은 상기 입력과 연관된 속도에 기초하는
    방법.
KR1020147018667A 2012-01-06 2013-01-05 패닝 애니메이션 KR102150733B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/345,073 US10872454B2 (en) 2012-01-06 2012-01-06 Panning animations
US13/345,073 2012-01-06
PCT/US2013/020419 WO2013103918A1 (en) 2012-01-06 2013-01-05 Panning animations

Publications (2)

Publication Number Publication Date
KR20140116401A true KR20140116401A (ko) 2014-10-02
KR102150733B1 KR102150733B1 (ko) 2020-09-01

Family

ID=48743605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018667A KR102150733B1 (ko) 2012-01-06 2013-01-05 패닝 애니메이션

Country Status (7)

Country Link
US (1) US10872454B2 (ko)
EP (1) EP2801020B1 (ko)
JP (1) JP6522343B2 (ko)
KR (1) KR102150733B1 (ko)
CN (1) CN104025003B (ko)
ES (1) ES2738221T3 (ko)
WO (1) WO2013103918A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US20130254706A1 (en) * 2012-03-20 2013-09-26 Ebay Inc. Information and action bar for a user interface
JP2015195005A (ja) * 2014-03-18 2015-11-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び記憶媒体
US10642365B2 (en) * 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
US10453240B2 (en) * 2015-11-05 2019-10-22 Adobe Inc. Method for displaying and animating sectioned content that retains fidelity across desktop and mobile devices
CN105630339A (zh) * 2015-12-24 2016-06-01 小米科技有限责任公司 页面控制方法及装置
CN112055842A (zh) * 2018-05-08 2020-12-08 谷歌有限责任公司 拖动手势动画

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162356A (ja) * 2001-11-28 2003-06-06 Nec Corp スクロール制御装置及びその方法並びにそれを用いた通信端末
US20110202834A1 (en) * 2010-02-12 2011-08-18 Microsoft Corporation Visual motion feedback for user interface

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375199A (en) * 1991-06-04 1994-12-20 Digital Equipment Corporation System monitoring method and device including a graphical user interface to view and manipulate system information
JP3593827B2 (ja) 1996-11-26 2004-11-24 ソニー株式会社 画面のスクロール制御装置及びスクロール制御方法
JPH10198271A (ja) 1997-01-09 1998-07-31 Nissan Motor Co Ltd 地図描画装置
JP2000152168A (ja) * 1998-11-13 2000-05-30 Olympus Optical Co Ltd 画像再生装置
EP1026572B1 (en) * 1999-02-02 2004-10-20 Casio Computer Co., Ltd. Window display controller and its program storage medium
JP3867459B2 (ja) 1999-02-02 2007-01-10 カシオ計算機株式会社 ウインドウ表示制御装置およびそのプログラム記録媒体
JP2002064731A (ja) 2000-08-21 2002-02-28 Fuji Photo Optical Co Ltd プロンプターの信号処理装置
JP2002196881A (ja) 2000-12-27 2002-07-12 Mitsubishi Electric Corp スクロール制御装置
US8401336B2 (en) * 2001-05-04 2013-03-19 Legend3D, Inc. System and method for rapid image sequence depth enhancement with augmented computer-generated elements
US7728821B2 (en) 2004-08-06 2010-06-01 Touchtable, Inc. Touch detecting interactive display
US7434173B2 (en) * 2004-08-30 2008-10-07 Microsoft Corporation Scrolling web pages using direct interaction
JP4577685B2 (ja) 2005-01-27 2010-11-10 株式会社エヌ・ティ・ティ・データ 情報提供装置、方法及びコンピュータプログラム
US9041744B2 (en) * 2005-07-14 2015-05-26 Telecommunication Systems, Inc. Tiled map display on a wireless device
US7958456B2 (en) * 2005-12-23 2011-06-07 Apple Inc. Scrolling list with floating adjacent index symbols
US7786975B2 (en) * 2005-12-23 2010-08-31 Apple Inc. Continuous scrolling list with acceleration
JP2007240889A (ja) 2006-03-08 2007-09-20 Victor Co Of Japan Ltd スクロール制御装置及びスクロール制御方法
KR20070004466A (ko) 2006-11-03 2007-01-09 희 한 소형 정보단말기의 디스플레이를 움직여 가상화면 및마우스 커서를 이동 시키는 방법
KR101372753B1 (ko) 2007-06-26 2014-03-10 삼성전자주식회사 터치스크린을 구비한 단말기에서의 입력 방법 및 장치
EP2017702A1 (en) 2007-07-13 2009-01-21 Flinglab AB Method for controlling the movement of a cursor
US20090122018A1 (en) 2007-11-12 2009-05-14 Leonid Vymenets User Interface for Touchscreen Device
US8176438B2 (en) 2008-09-26 2012-05-08 Microsoft Corporation Multi-modal interaction for a screen magnifier
US8086275B2 (en) * 2008-10-23 2011-12-27 Microsoft Corporation Alternative inputs of a mobile communications device
US20100115458A1 (en) 2008-10-26 2010-05-06 Adam Marano Panning a native display on a mobile computing device to a window, interpreting a gesture-based instruction to scroll contents of the window, and wrapping text on the window
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
KR101500503B1 (ko) 2008-10-29 2015-03-09 엘지전자 주식회사 휴대 단말기 및 그 동작방법
US8259118B2 (en) 2008-12-12 2012-09-04 Mobitv, Inc. Event based interactive animation
JP5393190B2 (ja) 2009-02-17 2014-01-22 キヤノン株式会社 表示制御装置、表示制御装置の制御方法、プログラム、及び記録媒体
JP5471137B2 (ja) 2009-08-05 2014-04-16 ソニー株式会社 表示装置、表示方法及びプログラム
US8624933B2 (en) 2009-09-25 2014-01-07 Apple Inc. Device, method, and graphical user interface for scrolling a multi-section document
US8624925B2 (en) * 2009-10-16 2014-01-07 Qualcomm Incorporated Content boundary signaling techniques
JP5535585B2 (ja) 2009-11-10 2014-07-02 株式会社ソニー・コンピュータエンタテインメント プログラム、情報記憶媒体、情報入力装置、及びその制御方法
US20110199318A1 (en) 2010-02-12 2011-08-18 Microsoft Corporation Multi-layer user interface with flexible parallel movement
KR20110099413A (ko) 2010-03-02 2011-09-08 삼성전자주식회사 스크롤링에 따른 항목들을 표시하기 위한 방법 및 장치
CN102253744B (zh) 2010-05-17 2014-07-02 致伸科技股份有限公司 触控板的控制方法以及应用该方法的触控装置
US20110285718A1 (en) 2010-05-21 2011-11-24 Kilgard Mark J Point containment for quadratic bèzier strokes
KR20120069442A (ko) * 2010-12-20 2012-06-28 삼성전자주식회사 휴대단말기의 데이터제어 장치 및 방법
JP5618858B2 (ja) 2011-02-16 2014-11-05 株式会社Nttドコモ 表示装置、通信装置及びプログラム
US9182897B2 (en) * 2011-04-22 2015-11-10 Qualcomm Incorporated Method and apparatus for intuitive wrapping of lists in a user interface
US8907957B2 (en) * 2011-08-30 2014-12-09 Apple Inc. Automatic animation generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162356A (ja) * 2001-11-28 2003-06-06 Nec Corp スクロール制御装置及びその方法並びにそれを用いた通信端末
US20110202834A1 (en) * 2010-02-12 2011-08-18 Microsoft Corporation Visual motion feedback for user interface

Also Published As

Publication number Publication date
US10872454B2 (en) 2020-12-22
EP2801020A1 (en) 2014-11-12
EP2801020B1 (en) 2019-05-22
JP2015504219A (ja) 2015-02-05
CN104025003B (zh) 2018-09-11
US20130176316A1 (en) 2013-07-11
JP6522343B2 (ja) 2019-05-29
EP2801020A4 (en) 2015-10-28
WO2013103918A1 (en) 2013-07-11
ES2738221T3 (es) 2020-01-20
CN104025003A (zh) 2014-09-03
KR102150733B1 (ko) 2020-09-01

Similar Documents

Publication Publication Date Title
KR102150733B1 (ko) 패닝 애니메이션
JP6669727B2 (ja) パラメトリック慣性及びapi
US10466888B2 (en) Scrollbar for dynamic content
KR102027612B1 (ko) 애플리케이션의 썸네일-이미지 선택 기법
KR102052771B1 (ko) 선택 및 재배열을 위한 교차-슬라이드 제스처 기법
KR102019002B1 (ko) 타겟 명확화 및 보정 기법
KR101132598B1 (ko) 디스플레이 장치의 화면 크기 제어 방법 및 장치
JP2017523515A (ja) アイコンサイズ変更
WO2015123152A1 (en) Multitasking and full screen menu contexts
US20150121194A1 (en) Web content navigation using tab switching
CA2799524A1 (en) Character selection
CN104024990A (zh) 输入指示器延迟和缩放逻辑
US20150261408A1 (en) Multi-stage Cursor Control
US20130201095A1 (en) Presentation techniques
US9176573B2 (en) Cumulative movement animations

Legal Events

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