KR20140068410A - 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치 - Google Patents

물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치 Download PDF

Info

Publication number
KR20140068410A
KR20140068410A KR1020120135840A KR20120135840A KR20140068410A KR 20140068410 A KR20140068410 A KR 20140068410A KR 1020120135840 A KR1020120135840 A KR 1020120135840A KR 20120135840 A KR20120135840 A KR 20120135840A KR 20140068410 A KR20140068410 A KR 20140068410A
Authority
KR
South Korea
Prior art keywords
physical
icon
field
virtual physical
attribute value
Prior art date
Application number
KR1020120135840A
Other languages
English (en)
Inventor
안원익
서석원
정봉수
최두순
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120135840A priority Critical patent/KR20140068410A/ko
Priority to US14/082,693 priority patent/US20140149903A1/en
Priority to EP13194644.4A priority patent/EP2738660A3/en
Priority to CN201310625294.2A priority patent/CN103853423A/zh
Publication of KR20140068410A publication Critical patent/KR20140068410A/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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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]
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

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

Abstract

본 발명은 전자 장치에서 물리 엔진 기반의 UI 프레임워크를 제공하기 위한 것으로, 전자 장치의 동작은, 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하는 과정과, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하는 과정과, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하는 과정과, 물리 엔진을 통해, 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 과정과, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 과정을 포함한다.

Description

물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치{METHOD FOR PROVIDING USER INTERFACE BASED ON PHYSICAL ENGINE AND AN ELECTRONIC DEVICE THEREOF}
본 발명은 전자 장치의 UI(User Interface)에 관한 것이다.
모바일 기기(mobile device)의 물리적인 성능이 지속적으로 발전함에 따라, 종래에 구현하기 어려웠던 사실적인 UI(User Interface)의 구현이 현실화되고 있다. 발전하는 하드웨어적인 성능을 기반으로, UI 분야는, 다양한 기능 지원과 빠른 성능으로 경쟁하던 시기를 지나, 사용자의 감성에 호소하는 애플리케이션 및 UI의 경쟁으로 진입하고 있다. 모바일(mobile) UI 프레임워크(framework)는 UI 설계자의 가이드(guide)에 따라 개발자가 애플리케이션을 개발할 수 있는 환경을 제공하고, 각 화면 구성 요소들의 시각적인 효과 및 화면 전환 효과를 제공한다.
일반적인 모바일 UI 프레임워크의 구조는 다음과 같다. 모바일 UI 프레임워크의 필수 구성 요소는 그래픽 렌더링 모듈(graphic rendering module) 및 윈도우 매니저 모듈(window manager module)이다. 상기 그래픽 렌더링 모듈은 이미지(image), 텍스트(text), 라인(line) 등과 같은 기본적인 그래픽 요소들의 그리기를 담당한다. 방식에 따라, 상기 그래픽 렌더링 모듈은 소프트웨어(software)만을 이용하여 프레임 버퍼(frame buffer)에 렌더링하거나, 하드웨어 가속 그래픽 기능을 이용하여 렌더링할 수 있다. 모바일 기기에서 고해상도 디스플레이를 지원하기 위하여 널리 사용되는 API(Application Program Interface)들 중 하나로, OpenGL|ES(Open Graphics Library for Embedded Systems) 1.x 또는 2.0이 있다. 상기 OpenGL|ES는 2D(2-Dimension) 및 3D(3-Dimension) 그래픽 가속을 지원하며, 개별 픽셀(pixel)에 대한 래스터 그래픽스(raster graphics) 기반의 제어 기능을 제공한다. 일부 하드웨어 시스템들은 하드웨어 가속을 위하여 알파 블렌딩(alpha blending) 및 오버레이 (overlay)만을 지원하기도 한다. 상기 윈도우 매니저 모듈은 애니메이션(animation), 윈도우 관리, 화면 레이아웃(layout), 사용자 입력(user input) 처리 등의 기능을 수행하며, 상기 그래픽 렌더링 모듈과 연결되어 UI 구성 요소를 표시 수단에 표현한다. 특히, 사실적인 애니메이션 기능에 대한 요구 사항이 높아지면서, 애플리케이션들이 직접 좌표를 변경하여 애니메이션을 구현하기보다는, 상기 윈도우 매니저 모듈이 각 객체들을 레이어(layer)로 구분하고, 레이어의 속성이 변경되면 자동으로 합성하여 애니메이션을 표현하는 기능을 제공한다.
상기 모바일 UI 프레임워크는 대개 라벨(label), 리스트(list), 편집 필드(field), 아이콘(icon), 버튼(button), 날짜와 시간, 슬라이드(slide) 등과 같이 빈번히 사용되는 기능들을 컨트롤(control) 및 위젯(widget) 형태로 제공한다. 대부분의 컨트롤들은 간단한 속성들을 설정하여 화면에서 표시되고, 제어됨으로써 필요한 기능을 제공한다. 안드로이드(android) 플랫폼(platform) 등의 화면 레이아웃 기능은 상술한 컨트롤들을 화면의 적절한 위치에 배치하기 위한 기능이 제공한다. 여기서, 상기 화면 레이아웃은 선형 레이아웃, 상대적 레이아웃, 테이블 레이아웃 등의 레이아웃 속성을 부여받을 수 있다. 또한, 하나의 구현 코드로 다양한 해상도를 지원하기 위하여 리소스 폴백(fallback) 및 가상 좌표계가 이용될 수 있다.
상술한 바와 같은 현존하는 UI 프레임워크는 부드럽거나 자연스런 움직임을 보여주기 위해서 시간을 인자로 하는 비선형 다항식(nonlinear polynomial function) 혹은 삼각 함수(trigonometric function)을 이용하여 UI 객체의 위치를 계산한다. 예를 들어, 상기 UI 프레임워크는 모든 UI 객체의 위치를, 사용자가 가장 편하게 수용할 수 있는 움직임을 보장하는 식들을 적용하여 계산한다. 하지만, 이러한 방식은 모든 UI 객체마다 시작점과 목표점을 주어야 하며, 계산 및 구현을 위한 많은 시행착오(trial-error)를 필요로 한다. 또한, 상기 UI 객체의 움직임에 따른 효과 역시 상술한 방식으로 구현되기 때문에, 시간과 비용 문제로 인해 다양한 변이가 제공되기 어렵다. 예를 들어, 배치된 UI 객체를 터치(touch) 및 드래깅(dragging)하여 이동시키는 경우, 빈자리를 메우는 애니메이션은 언제나 동일할 수 밖에 없다. 나아가, 사용자의 손가락 움직임 방향, 속도, 변경하는 객체의 움직임에 따른 다른 아이템들의 움직임을 모두 고려하여 변화된 결과를 적용하는 것은 어렵다. 더욱이, 상기 UI 객체가 지정된 경로로 움직이는 동안 다른 객체와 충돌하는 등의 예외 상황에 대한 추가적인 처리 시, 이를 구현하기 위하여 많은 추가적인 시나리오 및 애니메이션 등의 고려가 요구된다. 즉, UI 구성에 있어 많은 시간과 노력을 필요로 할 뿐만 아니라, 인위적으로 설정되는 시나리오만을 고려하므로, 자연스럽지 못한 애니메이션이 발생하는 문제가 있다.
따라서, 본 발명의 일 실시 예는 전자 장치에서 자연스런 UI(User Interface)를 제공하기 위한 장치 및 방법을 제공한다.
본 발명의 다른 실시 예는 전자 장치에서 보다 친숙한 UI 객체의 움직임을 제공하기 위한 장치 및 방법을 제공한다.
본 발명의 또 다른 실시 예는 전자 장치에서 물리 엔진(physical engine)을 이용하여 UI의 변화를 표현하기 위한 장치 및 방법을 제공한다.
상기 목적을 달성하기 위한 본 발명의 제1견지에 따르면, 전자 장치의 동작 방법은, 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하는 과정과, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하는 과정과, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하는 과정과, 물리 엔진을 통해, 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 과정과, 여기서, 상기 상태는 위치, 형상, 모양, 색채 중 적어도 하나를 포함하며, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 과정을 포함한다.
상기 목적을 달성하기 위한 본 발명의 제2견지에 따르면, 전자 장치는, 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하고, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하고, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하고, 물리 엔진을 통해, 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 적어도 하나의 프로세서와, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 표시부를 포함한다. 여기서, 상기 상태는 위치, 형상, 모양, 색채 중 적어도 하나를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제3견지에 따르면, 전자 장치는, 적어도 하나의 프로세서와, 상기 적어도 하나의 프로세서의 제어에 따라 시각적 출력을 표시하는 표시부와, 상기 메모리에 저장되어 있으며, 상기 적어도 하나의 프로세서에 의하여 실행되도록 구성되는 적어도 하나의 모듈을 포함한다. 상기 모듈은, 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하고, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하고, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하고, 물리 엔진을 통해 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 위치, 형상, 모양, 색채 중 적어도 하나를 포함하는 상태를 결정하고, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하도록 제어하는 적어도 하나의 명령어를 포함한다.
본원발명과 같이, 모바일 UI 프레임워크(framework)에 물리 엔진을 적용함으로써, UI 프레임워크에서 제공하는 시각적인 효과나 화면 전환 효과를 표현할 수 있다. 물리 엔진에 의한 자연스러운 효과들은 사용자에게 일상적이고 친근한 느낌을 제공하며, 이러한 자연스러움은 사용자에게 긍정적인 경험을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 개념적으로 도시하는 도면,
도 2는 본 발명의 실시 예에 따른 부력장의 예를 도시하는 도면,
도 3은 본 발명의 실시 예에 따른 가상 물리적 공간에 위치한 물리 객체의 예를 도시하는 도면,
도 4는 본 발명의 실시 예에 따른 전자 장치의 동작 절차를 도시하는 도면,
도 5는 본 발명의 실시 예에 따른 전자 장치의 블록 구성을 도시하는 도면,
도 6은 본 발명의 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하는 도면,
도 7은 본 발명의 또 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하는 도면,
도 8은 본 발명의 또 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하는 도면,
도 9는 본 발명의 실시 예에 따른 전자 장치에서 메뉴 화면의 아이콘 이동을 도시하는 도면,
도 10은 본 발명의 실시 예에 따른 전자 장치에서 메뉴 화면의 아이콘 이동을 위한 밀도 분포의 예를 도시하는 도면,
도 11은 본 발명의 실시 예에 따른 전자 장치에서 메뉴 화면의 인디케이터(indicator) 이동을 도시하는 도면,
도 12는 본 발명의 실시 예에 따른 전자 장치에서 인디케이터를 위한 물리 객체 구성 예들을 도시하는 도면,
도 13은 본 발명의 실시 예에 따른 전자 장치에서 중력장 기반의 메뉴 화면의 예를 도시하는 도면,
도 14는 본 발명의 실시 예에 따른 전자 장치에서 중력장 기반의 메뉴 화면에서 아이콘을 위한 물리 객체 구성 예를 도시하는 도면,
도 15는 본 발명의 실시 예에 따른 전자 장치에서 물리 객체의 충돌을 도시하는 도면,
도 16는 본 발명의 실시 예에 따른 전자 장치에서 액체에 떠 있는 물리 객체의 이동을 도시하는 도면,
도 17은 본 발명의 실시 예에 따른 전자 장치에서 보안 키보드를 도시하는 도면,
도 18은 본 발명의 실시 예에 따른 전자 장치에서 보안 키보드의 구현 예를 도시하는 도면,
도 19는 본 발명의 실시 예에 따른 전자 장치에서 AP(Access Point) 검색 화면의 예를 도시하는 도면,
도 20은 본 발명의 실시 예에 따른 전자 장치에서 신호 세기를 AP 아이콘의 위치로 전환하는 과정을 개념적으로 도시하는 도면,
도 21은 본 발명의 실시 예에 따른 전자 장치에서 AP를 위한 물리 객체의 밀도 및 작용하는 힘의 관계를 도시하는 도면,
도 22는 본 발명의 실시 예에 따른 전자 장치에서 AP를 위한 물리 객체의 단진동 방지를 위한 모델링의 예를 도시하는 도면,
도 23은 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면의 예를 도시하는 도면,
도 24는 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면을 구성하는 커튼 및 강체의 충돌을 도시하는 도면,
도 25는 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면을 구성하는 커튼의 움직임을 도시하는 도면,
도 26은 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면의 해제를 도시하는 도면,
도 27은 본 발명의 실시 예에 따른 전자 장치에서 물리적 속성 매핑에 따른 UI 객체 그룹핑의 예를 도시하는 도면,
도 28은 본 발명의 실시 예에 따른 전자 장치에서 알림 UI의 예를 도시하는 도면.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다.
이하 본 발명은 전자 장치에서 물리 엔진 기반의 자연스런 UI(User Interface)를 제공하기 위한 기술에 대해 설명한다. 본 발명에서, 상기 전자 장치는 휴대용 전자 장치(portable electronic device)일 수 있으며, 스마트폰(smart phone), 휴대용 단말기(portable terminal), 이동 전화(mobile phone), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant) 중 하나일 수 있다. 또한, 상기 전자 장치는 상술한 장치들 중 둘 이상의 기능들을 결합한 장치일 수 있다.
본 발명은 스마트폰(smart phone), PMP(Portable Media Player), 디지털 카메라(Digital Camera), PC(Personal Computer), 노트북(notebook), 태블릿(tablet) PC, TV(Television), 콘솔(console) 게임기, 휴대 게임기 등에서 제공하는 GUI(Graphical User Interface)에 대한 것으로, UI 객체들이 물리적인 세계에서 움직이는 듯한 효과를 부여함으로써, 친숙하고 자연스런 UI를 제공하기 위한 것이다.
물리 엔진 기반의 UI 프레임워크(framework)는 현실과 유사한 움직임을 보여주어 사용자에게 시작적으로 편안한 느낌으로 UI의 변형을 이루어 낼 수 있는 장점을 가진다. 또한, 종래의 기술과 달리, UI 동작시 GUI 구성 요소들이 자동적으로 좌표이동, 크기 변화, 회전, 모양 변화, 충돌 효과 등을 수행하기 때문에, 그래픽 효과가 자동으로 생성되는 장점이 있다.
이에 따라, 본 발명은, 움직임을 제공하면서도, 시작점, 목표점, 복잡한 예외처리가 요구되지 않는 UI 프레임워크를 통해, 기존의 기술들과 달리 예외 상황으로 기인된 부자연스런 움직임을 없애고, 사용자의 의도나 입력에 따른 자연스러운 반응을 보여 준다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 개념적으로 도시하고 있다.
상기 도 1을 참고하면, 본 발명의 실시 예를 위해, 상기 전자 장치는 사용자 입력 수단(110), UI 속성 설정 수단(120), 물리적 속성 산출 수단(130), UI 표현 수단(140), 표시 수단(150)을 포함한다. 이에 추가적으로, 상기 전자 장치는 센싱 수단(160), 통신 수단(170)을 더 포함할 수 있다.
상기 사용자 입력 수단(110)은 사용자의 입력을 받는 정보 입력 장치이다. 예를 들어, 상기 사용자 입력 수단(110)은 터치스크린(touch screen), 마우스(mouse), 키보드(keyboard), 스타일러스 펜(stylus pen), 조이스틱(joystick), 가상 키패드(virtual keypad), 키패드(keypad), 클릭 휠(click wheel) 중 적어도 하나를 포함한다. 상기 사용자 입력 수단(110)은 좌표, 움직임, 제스처, 포커싱(focusing), 호버링(hovering), 드래깅(dragging), 클릭(click), 더블클릭(double click), 탭(tap), 더블 탭(double tap), 탭 및 홀드(tap & hold) 등의 신호를 입력받고, 이를 상기 물리적 속성 산출 수단(130), 상기 UI 속성 설정 수단(120), 상기 UI 표현 수단(140)으로 전달한다.
상기 UI 속성 설정 수단(120)은 UI에 속한 각 UI 객체와 매핑된 각 물리 객체에 하나 이상의 속성을 부여하고, 속성값을 설정한다. 예를 들어, 상기 UI 객체는 윈도우(window), 메뉴(menu), 아이콘(icon), 위젯(widget), 이미지(image), 버튼(button), 키(key), 텍스트(text), 리스트(list), 아이템(item), 프로그레시브 바(progressive bar), 레이아웃(layout) 등과 같은 각각의 GUI 구성 요소를 의미한다. 또한, 상기 속성은 위치, 크기, 밀도, 부피, 색상, 탄성, 점성, 변형도, 속도, 벡터 등을 의미한다. 그리고, 구체적인 속성값은 GUI 구성 요소의 위치, 디스플레이상의 상대적 거리 등에 따라 기본적으로 설정되는 것이 바람직하다. 상기 속성 및 상기 속성값은 상기 사용자 입력 수단(110)을 통한 사용자의 입력에 의해 변경될 수 있다.
상기 물리적 속성 산출 수단(130)은 각 GUI 구성 요소의 속성에 기초하여 UI 객체의 물성 효과를 연산 및 제공한다. 상기 물성 효과는 이동, 변형, 충돌, 뭉침, 깨짐, 펄럭임 등을 포함한다. 상기 물리적 속성 산출 수단(130)은 물리 엔진(physical engine) 또는 물리 연산 엔진을 포함한다. 상기 물리 엔진 또는 상기 물리 연산 엔진은 공간 내의 객체들을 대상으로 질량, 속도, 마찰, 유체저항 등의 수치를 이용한 뉴턴 역학 모델을 시뮬레이션하는 프로그램, 프로그램을 저장한 장치, 또는, 프로그램을 실행하는 장치를 의미한다. 예를 들어, 상기 물리 엔진 또는 상기 물리 연산 엔진은 논리적으로 뉴턴 역학 공간을 구성하고, 그 공간 내에서 일어나는 물리 현상을 계산한다. 즉, 상기 물리 엔진을 이용하여 강체의 동역학, 연체의 동역학, 유동 역학, 충돌 검출, 입자, 파동, 옷감, 래그돌 모형 등을 시뮬레이션할 수 있다. 일반적으로, 상기 물리 엔진은 컴퓨터 그래픽스, 비디오 게임, 영화 분야에 쓰이며, 주로 비디오 게임에 미들웨어로 이용되어 실시간 시뮬레이션 처리에 사용된다. 본 발명의 경우, 상기 물리 엔진은 전자 장치의 UI 객체 제어를 위해 사용된다.
상기 UI 표현 수단(140)은 상기 물리적 속성 산출 수단(130)에 의해 산출된 GUI 구성 요소의 물성 효과에 따라, 또는, 사용자의 입력에 대응하여 상기 GUI 구성 요소를 그래픽적으로 표현한다. 다시 말해, 상기 UI 표현 수단(140)은 그래픽 정보를 생성한다.
상기 표시 수단(150)은 상기 사용자 입력 수단(110)의 요구나 상기 UI 표현 수단(140)에 의해 처리된 그래픽 정보를 사용자가 인식할 수 있도록 표현한다. 예를 들어, 상기 표시 수단(150)은 LCD(Liquid Crystal Display), AMOLED(Active Matrix Organic Light Emitting Diodes), LED(Light Emitting Diodes), 유동적 표시장치(flexable display), 투명 디스플레이, 디지털 페이퍼(digital paper), CRT(Cathod Ray Tube), 모니터(monitor), TV와 같은 화상출력장치를 포함할 수 있다.
상기 센싱 수단(160)은 상기 전자 장치에 가해지는 물리적 특성을 측정한다. 예를 들어, 상기 센싱 수단(160)은 자이로센서(Gyro sensor), 지자기센서(gyro sensor), 가속도/각속도 측정기(Accelerometer), 카메라, 근접센서, 조도 센서 등을 포함할 수 있다. 상기 센싱 수단(160)에 의해 측정된 값은 UI 속성을 변경하기 위해 사용될 수 있다. 상기 센싱 수단(160)은 구체적 실시 예에 따라 생략될 수 있다.
상기 통신 수단(170)은 네트워크(network) 상에 연결된 다른 장치와 상기 사용자 입력 수단(110) 또는 상기 센싱 수단(160)을 통한 상호 작용 시, 상기 GUI 구성 요소의 속성값에 표현되는 그래픽 정보를 공유하기 위해 사용될 수 있다. 또한, 상기 통신 수단(170)은 WiFi(Wireless Fidelity), 블루투스(Bluetooth) 등의 주변 장치들의 신호를 탐지할 수 있다. 상기 통신 수단(170)은 구체적 실시 예에 따라 생략될 수 있다.
본 발명의 기본 개념을 간략히 설명하면 다음과 같다.
본 발명은 중력, 부력, 전기력, 자기력 중 적어도 하나를 가지는 물리적 가상 환경을 이용한다. 또한, 점성, 탄성 등도 추가적으로 이용될 수 있다. 상기 물리적 가상 환경을 통해, 상기 UI 객체는 인간이 인식하는 가장 친숙한 물리 현상을 기반으로 하는 움직임을 보인다. 상기 UI 객체 또한 물리적 환경에 맞추어 디자인 된다. 그리고, 본 발명은 각 UI 객체를 적어도 하나의 가상 물리 객체에 매핑하고, 상기 가상 물리 객체에 물리적 속성을 부여한다. 가상 물리 객체는 실제 3차원 공간에서 가질 수 있는 부피, 질량, 형태를 기준으로 속성을 부여받으며, 상기 가상 물리 객체는 가상의 물리적 공간의 물리장에 반응하며 속성값에 따라 이동하고 변형될 수 있다. 여기서, 상기 변형은 형상, 모양, 색채 중 적어도 하나가 변경되는 것을 의미한다. 상기 UI 객체와 매핑된 가상 물리 객체의 이동/변형에 따라, 상기 UI 객체도 함께 이동/변형된다. 즉, 모든 UI 객체의 움직임은 힘, 운동량에 반응하는 속도, 가속도를 기반으로 결정된다.
본 발명의 실시 예에 따른 UI 객체의 제어는 사용자 입력, 사용자 입력에 따른 물리적 작용, 물리적 작용에 따른 UI 객체와 매핑된 물리 객체의 좌표 이동 또는 변형, UI 객체의 표현으로 이루어진다. 상기 사용자 입력은 입력의 종류에 대응하는 물리 환경의 외부 힘으로 변환된 후, 물리 엔진에 전달된다. 이후, 상기 물리 엔진은 상기 외부 힘을 기준으로 일정 시간 간격, 다시 말해, 동기화 간격에 따라 물리 시뮬레이션을 수행하고, 시뮬레이션 결과에 따른 물리 객체의 상태를 출력한다. 여기서, 상기 상태는 위치, 형상, 모양, 색채 등을 포함하는 의미이다. 즉, 상기 UI 객체의 움직임 및 변형은 물리적 가상 환경에 의하여 작용하는 힘(예: 중력, 부력 등)과 외부로부터 전달되는 힘(예: 사용자의 입력 또는 기기의 센서에 의한 입력을 기초로 결정된 값)으로부터 유래하며, 최종적으로 물리 엔진에 의하여 계산된 결과로 표현된다. 상기 동기화 간격은 디스플레이의 갱신 속도(refresh rate)와 동기화되어 표시 및 시뮬레이션 간의 차이가 없도록 조정됨이 바람직하다.
이하 본 발명의 일 실시 예로서, 중력 및 부력을 이용한 UI 프레임워크를 설명한다.
중력은 지구의 만유인력 및 자전에 의한 원심력을 합한 힘이다. 즉, 상기 중력은 지표 근처의 물체를 지구 중심 방향으로 당기는 힘으로서, 지구 상의 물체가 받고 있는 가장 기본적인 물리적인 힘이다. 지구 상의 모든 물체는 지구 중심 방향으로 질량에 비례하는 힘을 받고 있다. 부력은 물이나 공기와 같은 유체에 잠긴 물체가 유체와의 밀도 차로 인해 중력과 반대 방향으로 받는 힘이다. 상기 유체에 잠긴 물체는 중력과 부력이 균형을 이루는 지점에 정지하게 된다.
중력 및 부력이 설정된 가상의 물리적 공간에서 UI 객체에 부피와 무게를 부여하면, 상기 중력 및 상기 부력이 상기 UI 객체에 작용한다. 상기 중력 및 상기 부력의 균형을 이용하면, 상기 UI 객체를 자연스럽게 가상 공간의 특정 위치에 배치하거나 이동시킬 수 있다.
상술한 바와 같이, 유체에 잠긴 물체는 중력과 부력을 함께 받게 된다. 이때, 유체와 물체의 밀도를 조절함으로써, 상기 물체에 가해지는 힘이 0이 되는 힘의 균형점의 제어가 가능하다. 상기 물체에 가해지는 힘은 하기 <수학식 1>과 같이 표현될 수 있다.
Figure pat00001
상기 <수학식 1>에서, 상기 FSUM은 물체에 가해지는 힘, 상기 FB는 물체에 가해지는 부력(buoyancy), 상기 FG는 물체에 가해지는 중력(gravity), 상기 V는 물체의 부피, 상기 g는 중력가속도, 상기 ρf는 유체(fluid)의 밀도, 상기 ρo는 물체(object)의 밀도를 의미한다.
일반적으로, 전자 장치에서 각 아이콘들은 격자 형태로 직교 좌표계 상에 배치된다. 화면 상의 아이콘의 움직임은 가상 물리적 공간에서 각 UI 객체의 배치 및 이동으로 구성된다. 각 UI 객체의 속성으로서 밀도를 부여하면 중력 및 부력을 통한 UI 객체의 제어가 가능하다. 예를 들어, 화면이 컨테이너(container)로 기능하는 부모 UI 객체로서 1개의 부모 윈도우로 구성되고, 아이콘들이 자식(child) UI 객체로서 n개의 자식 윈도우 구성된 경우를 가정하자. 이때, 밀도 속성은 부모 UI 객체와 자식 UI 객체에 각각 부여된다. 상기 부모 UI 객체는 밀도 값이 위치에 따라 변화하는 부력장을 설정하고, 상기 자식 UI 객체는 단일 밀도 값을 부여받는다. 상기 부모 UI 객체의 부력장은 고정한 채, 상기 자식 UI 객체의 밀도 값을 변경하면, 상기 자식 UI 객체는 상기 부모 UI 객체에 설정된 부력 및 중력에 의한 물리적인 힘에 따라서 자연스럽게 이동한다. 나아가, 상기 자식 UI 객체의 이동 경로에 다른 자식 UI 객체가 존재하는 경우, 물리 엔진의 충돌 검출에 따라 자연스런 화면 효과가 더 표현될 수 있다. 상술한 실시 예에 따른 부력장의 예는 하기 도 2와 같다.
도 2는 본 발명의 실시 예에 따른 부력장의 예를 도시하고 있다. 상기 도 2를 참고하면, 부모 UI 객체(210)는 x축 및 y축 각각 독립적으로 부력장을 가지며, x축 및 y축 각각에서 좌표 값에 따라 밀도가 변화한다. 다시 말해, 가상 물리적 공간에 작용하는 부력장은 x축 성분 및 y축 성분을 분리하여 각각 밀도 속성을 부여하고, 밀도 값은 1차 함수 관계로 정의되었다. 구체적으로, 상기 부모 UI 객체(210)의 x축 및 y축에서, 부력 방향의 반대로 갈수록 밀도가 높아진다. 상기 부모 UI 객체(210) 내에 자식 UI 객체(220)가 존재하며, 상기 자식 UI 객체(220)는 고정된 x축 밀도 및 y축 밀도를 가진다. 이에 따라, 상기 자식 UI 객체(220)는 상기 부모 UI 객체(210) 상의 특정한 고정점, 즉, 밀도 균형점(230)에 위치하게 된다. 상술한 원리에 따르면, 상기 자식 UI 객체(220)의 x축 성분 및 y축 성분 밀도 값을 변경함으로써, 상기 부모 UI 객체(210) 상의 특정 위치로 상기 자식 UI 객체(220)가 이동될 수 있다. 또한, 밀도 변경에 따른 상기 자식 UI 객체(220)의 이동은 물리 엔진에 의해 부력에 의한 자연스런 움직임으로 시뮬레이션되며, 상기 자식 UI 객체(220)는 변경된 밀도 값에 따라 다른 UI 객체들과 충돌하며 이동함으로써, 위치를 변경한다.
물리 엔진 상에서 자식 UI 객체가 받는 힘의 공식은 다음과 같이 유도된다. 도 3은 본 발명의 실시 예에 따른 가상 물리적 공간에 위치한 물리 객체의 예를 도시하고 있다. 상기 도 3은 y축 성분의 힘만을 고려한다. 상기 도 3을 참고하면, 자식 UI 객체(320)를 단면적이 Ay이고 높이가 h인 직육면체로 가정하고, 부모 UI 객체에 해당하는 가상 물리적 공간(310)에 설정된 밀도는 y값의 함수 fρy(y)라 가정한다. 여기서, 상기 물리 엔진 상의 원점은 좌측 하단이며, 밀도 값은 1차 함수로 가정한다. 상기 자식 UI 객체(320)의 위치가 하단 y1, 상단 y2에 위치하고, 상기 자식 UI 객체(320)의 밀도와 상기 부모 UI 객체(310)의 밀도가 같아지는 지점을 ye라 하자. 이 경우, 하기 <수학식 2>가 성립된다.
Figure pat00002
상기 <수학식 2>에서, 상기 ρcy는 상기 자식 UI 객체(320)의 y축 밀도, 상기 fρy()는 상기 부모 UI 객체(310)에 설정된 밀도를 나타내는 함수, 상기 ye는 상기 자식 UI 객체(320)의 밀도 및 상기 부모 UI 객체(310)의 밀도가 같아지는 지점의 y축 좌표를 의미한다.
이때, 물리 엔진에서 산출되는 상기 자식 UI 객체(320)에 가해지는 최종 힘은 하기 <수학식 3>과 같다.
Figure pat00003
상기 <수학식 3>에서, 상기 F는 상기 자식 UI 객체(320)에 가해지는 최종 힘, 상기 FB는 상기 자식 UI 객체(320)에 가해지는 부력, 상기 FG는 상기 자식 UI 객체(320)에 가해지는 중력을 의미한다.
상기 자식 UI 객체(320)에 가해지는 각 힘들을 구체적으로 살펴보면 하기 <수학식 4>와 같다.
Figure pat00004
Figure pat00005
Figure pat00006
Figure pat00007
Figure pat00008
상기 <수학식 4>에서, 상기 FBy는 상기 자식 UI 객체(320)에 가해지는 y축의 부력, 상기 Ay는 상기 자식 UI 객체(320)의 단면적, 상기 g는 중력 가속도, 상기 fρy()는 상기 부모 UI 객체(310)에 설정된 밀도를 나타내는 함수, 상기 y1은 상기 자식 UI 객체(320)의 하단면의 y축 좌표, 상기 y2는 상기 자식 UI 객체(320)의 하단면의 y축 좌표, 상기 ye는 상기 자식 UI 객체(320)의 밀도 및 상기 부모 UI 객체(310)의 밀도가 같아지는 지점의 y축 좌표, 상기 FGy는 상기 자식 UI 객체(320)에 가해지는 y축의 중력, 상기 ρcy는 상기 자식 UI 객체(320)의 y축 밀도, 상기 Fy는 상기 자식 UI 객체(320)에 가해지는 y축의 전체 힘을 의미한다.
상기 <수학식 4>는 y축에 대한 힘들만을 나타내나, x축에 대하여도 동일한 수식을 통해 상기 자식 UI 객체(320)에 가해지는 힘들이 산출될 수 있다. 단, x축 및 y축의 독립적인 UI 객체 제어를 위해, 상기 부모 UI 객체(310)의 물리적 특성은 상기 x축 및 상기 y축에 독립적으로 설정된다.
상술한 바와 같이 산출되는 자식 UI 객체에 가해지는 힘을 기반으로, 상기 자식 UI 객체의 움직임이 산출된다. 상기 움직임의 산출은 물리 엔진에 의해 수행되고, UI 표현 수단은 상기 물리 엔진으로부터 정해진 주기에 따라 일정한 시간 간격으로 산출된 움직임에 대한 정보를 제공받고, 상기 자식 UI 객체를 랜더링(rendering)한다. 다시 말해, 물리 엔진을 통해 상기 자식 UI 객체의 시간의 흐름에 따른 이동 좌표 값들이 얻어지며, 상기 좌표 값들의 위치에 UI 객체가 그려진다. 가상 물리적 공간에서 설정한 물체는 전자 장치의 화면 상의 UI 객체로 매핑됨으로서, 사용자에게 보여진다.
본 발명의 구현을 위해, 현존하는 어떠한 물리 엔진도 채용될 수 있다. 예를 들어, 박스2디(box2d), 불렛 피직스(bullet physics), 칩멍크-물리 엔진(chipmunk-physics engine), 하복 피직스(havok Physics), 뉴턴 다이나믹스(newton dynamics), 와우-엔진(WOW-Engine), 지그리브 플래쉬(JigLibFlash) 등의 알려진 물리 엔진이 본원발명의 물리적 속성 산출 수단으로서 사용될 수 있다.
이하 본 발명은 상술한 바와 같이 UI 객체를 제어하는 전자 장치의 동작 및 구성에 대해 도면을 참고하여 상세히 설명한다.
도 4는 본 발명의 실시 예에 따른 전자 장치의 동작 절차를 도시하고 있다.
상기 도 4를 참고하면, 상기 전자 장치는 401단계에서 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)을 설정한다. 상기 물리장이 설정되는 적어도 하나의 영역의 개수 및 범위는 실행되는 어플리케이션에 따라 달라질 수 있다. 상기 물리장은 물리적 특성을 부여받은 가상의 공간으로서, 부모 UI 객체에 해당한다. 예를 들어, 상기 물리적 특성은 부력, 중력, 탄성력, 자력, 전기력, 자기력 중 적어도 하나를 포함할 수 있다. 또한, 상기 물리장은 가상의 물리적 공간 내 각축에 독립적으로 설정될 수 있다. 예를 들어, UI 객체가 x축 및 y축의 2차원 좌표계에서 이동되는 경우, 상기 물리장은 x축 및 y축에서 각각 독립적으로 설정된다. 또한, 상기 물리장은 하나의 축에서 위치에 따라 달라지는 속성값들을 가진다. 예를 들어, 상기 도 2에 도시된 바와 같이, x축 및 y축의 밀도값은 1차 함수의 형태로 변화한다.
이어, 상기 전자 장치는 403단계로 진행하여 상기 적어도 하나의 영역 내에 표현되는 적어도 하나의 UI 객체에 적어도 하나의 물리적 속성을 부여하고, 속성값을 설정한다. 구체적으로, 상기 전자 장치는 각 UI 객체를 적어도 하나의 가상 물리 객체에 매핑하고, 상기 가상 물리 객체에 적어도 하나의 물리적 속성을 부여하고, 적어도 하나의 속성값을 설정한다. 이때, 상기 적어도 하나의 UI 객체에 부여되는 물리적 속성은 상기 물리장의 특성에 영향을 받는 속성이다. 예를 들어, 상기 물리적 속성은 크기, 밀도, 부피, 형상, 모양, 색채, 탄성, 점성, 변형도, 이동 속도, 이동 벡터, 전기력, 자기력 중 적어도 하나를 포함한다. 예를 들어, 상기 물리장의 특성이 중력 및 부력인 경우, 상기 UI 객체에 부여되는 속성은 밀도, 면적 등이 될 수 있다. 이때, 상기 속성에 따라 상기 UI 객체의 물리장 내 위치가 결정된다. 따라서, 상기 전자 장치는 상기 적어도 하나의 UI 객체의 초기 위치를 결정하고, 상기 초기 위치에 대응되는 속성값을 설정한다.
이후, 상기 전자 장치는 405단계로 진행하여 물리 엔진에 의해 산출된 좌표 값에 따라 상기 적어도 하나의 UI 객체를 표시한다. 즉, 상기 전자 장치는 상기 물리 엔진을 통해 상기 물리장의 특성, 각 UI 객체의 속성값들을 기반으로 상기 물리장 내에서 상기 UI 객체의 위치를 산출하고, 산출된 위치에 상기 UI 객체들을 표현한다. 상기 UI 객체들의 위치는 상기 물리 엔진을 통해 산출된다. 또한, 상기 물리 엔진에 의해, 상기 적어도 하나의 UI 객체의 위치는 물론, 다른 상태도 산출될 수 있다. 예를 들어, 상기 적어도 하나의 UI 객체가 수축 가능한 경우, 상기 UI 객체의 형상이 산출될 수 있다. 또한, 상기 UI 객체의 모양 및 색채에 영향을 줄 수 있는 물리장이 설정된 경우, 상기 UI 객체의 모양 및 색채도 산출될 수 있다. 즉, 상기 전자 장치는, 상기 물리 엔진을 통해, 상기 적어도 하나의 UI 객체의 위치, 형상, 모양, 색채 중 적어도 하나를 결정한다.
이후, 상기 전자 장치는 407단계로 진행하여 사용자의 조작 또는 외부 환경의 변화에 따라 상기 물리장의 특성 또는 상기 UI 객체의 속성값을 변경한다. 상기 사용자의 조작은 사용자 입력 수단을 통해 입력되는 키 입력, 터치 입력 등을 의미하고, 상기 외부 환경의 변화는 전자 장치의 회전, 이동, 방향 등의 전자 장치에 가해지는 물리적 환경의 변화, 외부 통신 장치로부터의 신호 세기 등을 의미한다. 즉, 특정 UI 객체를 이동시켜야하는 경우, 상기 전자 장치는 해당 UI 객체의 속성값을 목표점에 대응하는 속성값으로 변경한다. 예를 들어, 특정 UI 객체가 사용자의 명령에 의해 이동되고, 다른 UI 객체가 상기 특정 UI 객체의 이동으로 인해 발생한 빈 자리를 채워야하는 경우, 상기 전자 장치는 상기 다른 UI 객체의 속성값을 상기 빈 자리에 대응하는 속성값으로 변경한다. 다른 예로, 전자 장치가 좌측 또는 우측으로 기울어지는 경우, 상기 전자 장치는 상기 물리장에 부여된 중력 및 부력의 방향을 실제 중력 방향과 평행하도록 변경할 수 있다.
이어, 상기 전자 장치는 상기 405단계 되돌아가 물리 엔진에 의해 산출된 좌표 값에 따라 상기 적어도 하나의 UI 객체를 표시한다. 이때, 상기 407단계에서 상기 UI 객체의 속성값 또는 상기 물리장의 특성이 변경되었으므로, 상기 UI 객체 현 위치를 유지하지 못하고, 속성값에 대응되는 위치를 향해 이동하게 된다. 따라서, 상기 물리 엔진을 통해 상기 UI 객체의 이동 경로 상의 각 위치가 일정 시간 단위로 산출되며, 이에 따라, 상기 전자 장치는 미리 정의된 애니메이션 없이도 상기 UI 객체의 변화, 이동, 회전 등을 표현할 수 있다. 이때, UI 객체들 간 충돌이 가능하도록 설정된 경우, 상기 전자 장치는 각 UI 객체의 탄성, 질량 등에 기초하여 충돌로 인한 상기 UI 객체들의 변화 및 이동을 산출하고, 상기 충돌의 모습도 표현할 수 있다. 또한, UI 객체들이 수축 가능하도록 설정된 경우, 상기 전자 장치는 상기 UI 객체들의 연성, 탄성 등에 기초하여 상기 UI 객체들의 변화를 산출하고, 상기 수축의 모습도 표현할 수 있다.
상기 도 4에 도시되지 아니하였으나, 상기 전자 장치는 해당 어플리케이션이 종료되기 전까지 상기 405단계 및 상기 407단계를 반복적으로 수행한다.
도 5는 본 발명의 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다.
상기 전자 장치는 메모리(510), 프로세서 유닛(processor unit)(520), 입출력(IO : Input Output) 시스템(530)을 포함한다. 상기 메모리(510)는 다수 개로 구성될 수 있다. 또한, 구체적 실시 예에 따라, 상기 전자 장치는 통신 서브시스템(540), 센싱 서브시스템(550), 카메라 서브시스템(560) 중 적어도 하나를 더 포함할 수 있다. 상기 도 5에 도시된 상기 전자 장치의 구성 요소들은 적어도 하나의 통신 버스(참조번호 미기재) 또는 스트림 선(참조번호 미기재)에 의해 결합될(coupled) 수 있다.
상기 메모리(510)는 상기 메모리 인터페이스(521)에 연결될 수 있다. 상기 메모리(510)는 적어도 하나의 자기 디스크 저장 장치와 같은 고속 랜덤 액세스 메모리, 비휘발성 메모리, 적어도 하나의 광 저장 장치, 플래시 메모리(예 : NAND, NOR) 중 적어도 하나를 포함할 수 있다. 상기 메모리(510)는 적어도 하나의 소프트웨어를 저장한다. 소프트웨어 구성 요소는 운영 체제(operating system) 모듈(511), 그래픽 모듈(512), UI 모듈(513), 물리 엔진(514) 등을 포함할 수 있다. 여기서, 소프트웨어 구성 요소인 모듈은 명령어들의 집합으로 표현할 수 있고, 상기 모듈은 '명령어 세트(instruction set)' 또는 '프로그램'으로 지칭될 수 있다.
상기 운영 체제 모듈(511)는 일반적인 시스템 작동(system operation)을 제어하는 적어도 하나의의 소프트웨어 구성 요소를 포함한다. 예를 들어, 상기 운영 체제 모듈(511)은 WINDOWS, LINUX, 다윈(Darwin), RTXC, UNIX, OS X, VxWorks와 같은 내장 운영 체제일 수 있다. 예를 들어, 상기 일반적인 시스템 작동의 제어는 메모리 관리 및 제어, 저장 하드웨어 제어 및 관리, 전력 제어 및 관리 등을 포함한다. 상기 운영 체제 모듈(511)은 적어도 하나의 하드웨어 및 적어도 하나의 소프트웨어 구성 요소 간 통신을 원활하게 하는 기능을 수행한다. 상기 그래픽 모듈(512)은 상기 터치스크린(533) 상에 그래픽을 제공하고 표시하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 여기서, 그래픽은 텍스트(text), 웹 페이지(web page), 아이콘(icon), 디지털 이미지(digital image), 비디오(video), 애니메이션(animation) 등을 포함하는 의미이다.
상기 UI 모듈(513)은 UI에 관한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 상기 UI에 관한 사항은 상기 UI의 상태가 어떻게 변경되는지 또는 UI 상태의 변경이 어떤 조건에서 이루어지는지 등에 대한 내용을 포함한다. 특히, 본 발명의 실시 예에 따라, 상기 UI 모듈(513)은 화면 내 적어도 하나의 영역에 물리장을 설정하고, 물리장의 물리적 특성을 부여하고, 특성 값을 설정하는 소프트웨어 구성 요소를 포함한다. 또한, 상기 UI 모듈(513)은 상기 물리장 내의 UI 객체들 각각에 상기 물리장에 영향을 받는 물리적 속성을 부여하고, 속성값을 설정하는 소프트웨어 구성 요소를 포함한다. 그리고, 상기 UI 모듈(513)은 사용자의 조작 또는 외부 환경 변화에 따라 상기 물리장의 특성 또는 상기 각 UI 객체의 속성값을 변경하는 소프트웨어 구성 요소를 포함한다.
상기 물리 엔진(514)은 입력되는 물리장의 특성 값, 상기 물리장 내의 각 UI 객체의 속성값에 기초하여 상기 각 UI 객체의 위치, 상태 변화를 산출하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다. 상기 상태 변화는 수축/신장, 회전 등을 포함한다. 그리고, 상기 물리 엔진(514)은 산출된 위치 좌표, 상태를 나타내는 값을 제공하기 위한 적어도 하나의 소프트웨어 구성 요소를 포함한다.
상기 메모리(510)는 상술한 모듈들(511 내지 514) 외에 추가적인 모듈을 포함할 수 있다. 또는, 본 발명의 다른 실시 예에 따라, 상술한 모듈들(511 내지 514) 중 일부가 배제될 수 있다.
상기 프로세서 유닛(520)은 메모리 인터페이스(521), 프로세서(522) 및 주변장치 인터페이스(peripheral interface)(523)를 포함한다. 상기 프로세서(522)는 적어도 하나의 하드웨어 칩(chip)을 포함할 수 있다. 상기 프로세서 유닛(520) 전체가 '프로세서'로 지칭될 수 있다. 상기 메모리 인터페이스(521), 상기 프로세서(522), 상기 주변장치 인터페이스(523) 각각은 별개의 구성 요소이거나, 또는, 적어도 하나의 집적 회로로 구성될 수 있다.
상기 프로세서(522)는 소프트웨어 프로그램을 실행함으로써 상기 전자 장치가 상기 소프트웨어 프로그램에 대응하는 기능을 수행하게 하며, 음성 통신 및 데이터 통신을 위한 처리 및 제어를 수행한다. 그리고, 상기 프로세서(522)는 그래픽 처리를 위해 정의된 함수를 이용하여 그래픽의 표현을 위한 연산을 수행할 수 있다. 상기 그래픽 표현을 위한 연산을 위한 별도의 칩셋(chipset)이 구성될 수 있으며, 이는 그래픽 칩셋이라 지칭될 수 있다. 즉, 상기 프로세서(522)와 별도로, 상기 그래픽 처리를 위해 특수하게 정의된 함수들을 가지는 그래픽 칩셋이 포함될 수 있다. 단, 상기 그래픽 칩셋은 상기 프로세서(522)의 일부일 수 있다.
또한, 상기 프로세서(522)는 상기 메모리(510)에 저장되어 있는 소프트웨어 모듈을 실행함으로써 해당 모듈에 대응하는 특정한 기능을 수행한다. 즉, 상기 프로세서(522)는 상기 메모리(510)에 저장된 소프트웨어 모듈들과 연동하여 본 발명의 실시 예에 따른 방법을 수행한다. 상기 프로세서(522)는 적어도 하나의 데이터 프로세서, 이미지 프로세서를 포함할 수 있다. 상기 데이터 프로세서, 상기 이미지 프로세서는 별도의 하드웨어로 구성될 수 있다. 또한, 상기 프로세서(522)는 서로 다른 기능을 수행하는 다수의 프로세서들로 구성될 수 있다.
상기 주변 장치 인터페이스(523)는 상기 전자 장치의 상기 입출력 서브시스템(530) 및 적어도 하나의 주변 장치를 상기 프로세서(521) 및 상기 메모리(510)에 연결시킨다. 상기 메모리(510)는 상기 메모리 인터페이스(521)를 통해 연결될 수 있다. 즉, 상기 메모리 인터페이스(521)는 상기 메모리(510)에 접근하기 위한 인터페이스를 제공한다.
상기 통신 서브시스템(540)은 무선 통신을 위한 인터페이스를 제공한다. 상기 통신 서브시스템(540)은 RF(Radio Frequency) 수신기/송신기, 광(예 : 적외선) 수신기/송신기 중 적어도 하나를 포함할 수 있다. 상기 통신 서브시스템(540)은 서로 다른 규격에 따르는 다수의 통신 장치들을 포함할 수 있다.
상기 입출력 서브시스템(530)은 터치스크린 제어기(531), 기타 입력 제어기(532), 터치스크린(533), 기타 입력/제어 장치(534)를 포함할 수 있다. 상기 터치스크린 제어기(531)는 상기 터치스크린(533)에 결합될 수 있다. 상기 터치스크린(533) 및 상기 터치스크린 제어기(531)는, 이에 한정되지 아니하나, 상기 터치스크린(533) 상에서의 적어도 하나의 접촉점을 결정하기 위한 용량성, 저항성, 적외선 및 표면 음향파 기술들 뿐만 아니라 기타 근접 센서 배열 또는 기타 요소들을 포함하는 멀티 터치(multi-touch) 감지 기술을 이용하여 접촉, 움직임, 상기 접촉 또는 상기 움직임의 중단을 검출할 수 있다. 상기 기타 입력 제어기(532)는 상기 기타 입력/제어 장치(534)에 결합될 수 있다. 상기 기타 입력/제어 장치(534)에 적어도 하나의 볼륨(volume) 제어를 위한 업/다운(up/down) 버튼이 포함될 수 있다. 또한, 상기 버튼은 푸시 버튼(push button) 또는 로커 버튼(rocker button), 로커(rocker) 스위치, 썸-휠(thumb-wheel), 다이얼(dial), 스틱(stick), 스타일러스(stylus)와 같은 포인터 장치 등의 형태를 가질 수 있다.
상기 터치스크린(533)은 상기 전자 장치와 사용자 사이에 입력/출력 인터페이스를 제공한다. 즉, 상기 터치스크린(533)은 사용자의 터치 입력을 상기 전자 장치에 전달한다. 또한, 상기 터치스크린(533)은 상기 전자 장치로부터의 출력을 사용자에게 보여주는 매개체이다. 따라서, 상기 터치스크린(533)은 표시부로 지칭될 수 있다. 즉, 상기 터치스크린(533)은 사용자에게 시각적 출력을 보여준다. 상기 시각적 출력(visual output)은 텍스트(text), 그래픽(graphic), 비디오(video), 이들의 조합의 형태로 표현된다. 상기 터치스크린(533)을 위해 다양한 디스플레이 수단이 사용될 수 있다. 예를 들면, 이에 한정되지 아니하나, 상기 터치스크린(533)은 LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode), FLED(Flexible LED) 중 적어도 하나를 포함할 수 있다.
상기 센싱 서브시스템(550)은 외부 자극을 검출한다. 상기 센싱 서브시스템(550)은 가속도 센서, 자이로(gyro) 센서, 광(optical) 센서, 지자기 센서, 중력 센서(G-sensor), 온도 센서, 생체 센서, 위치 센서 중 적어도 하나를 포함할 수 있다. 상기 광 센서로서, CCD(charged coupled device), CMOS(complementary metal-oxide semiconductor) 중 적어도 하나가 사용될 수 있다. 상기 위치 센서로서, GPS(Global Positioning System) 모듈이 사용될 수 있다. 상기 센싱 서브시스템(550)은 움직임, 빛, 기울기, 방위 등을 감지하고, 감지 결과를 나타내는 전기적 신호를 제공한다. 상기 센싱 서브시스템(550)은 상기 움직임 등을 나타내는 전기적 신호를 해석하는 블록을 더 포함할 수 있다.
상기 카메라 서브시스템(560)은 사진 촬영, 비디오 레코딩 등의 기능을 수행할 수 있다. 상기 카메라 서브시스템(560)은 광 센서, 렌즈 등을 포함할 수 있다. 즉, 상기 카메라 서브시스템(560)은 렌즈를 통해 입력되는 빛을 상기 광 센서로 인식하고, 상기 광 센서에서 인식된 이미지를 디지털 데이터화한다.
본 발명에 따른 상기 전자 장치의 다양한 기능들은 적어도 하나의 스트림 프로세싱(processing), 어플리케이션 특정 집적 회로(ASIC : Application Specific Integrated Circuit)를 포함하는 하드웨어, 소프트웨어, 이들의 결합으로 실행될 수 있다.
도 6은 본 발명의 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다. 상기 도 6은 상기 도 5에 도시된 블록 구성에서, 상기 메모리(510) 및 상기 프로세서 유닛(520)의 다른 구성 예를 도시한다.
상기 도 6을 참고하면, 상기 전자 장치는 메모리(610) 및 프로세서 유닛(620)을 포함한다. 상기 도 6에 도시되지 아니하였으나, 상기 전자 장치는 상기 도 5에 도시된 상기 입출력 시스템(530)을 더 포함한다. 또한, 구체적 실시 예에 따라, 상기 전자 장치는 상기 통신 서브시스템(540), 상기 센싱 서브시스템(550), 상기 카메라 서브시스템(560) 중 적어도 하나를 더 포함할 수 있다.
상기 도 6에 도시된 실시 예의 경우, 상기 도 5의 실시 예와 비교하면, 상기 메모리(510)에 포함된 물리 엔진(514)가 배제되고, 상기 프로세서 유닛(620)에 물리 엔진(624)가 더 포함된다. 즉, 소프트웨어로 구성된 상기 물리 엔진(514)을 대체하여 하드웨어로 구현된 상기 물리 엔진(624)가 상기 물리 엔진(514)의 기능을 수행한다. 즉, 상기 물리 엔진(624)은 입력되는 물리장의 특성 값, 상기 물리장 내의 각 UI 객체의 속성값에 기초하여 상기 각 UI 객체의 위치, 상태 변화를 산출한다. 그리고, 상기 물리 엔진(624)은 산출된 위치 좌표, 상태를 나타내는 값을 제공한다.
도 7은 본 발명의 또 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다. 상기 도 7은 상기 도 5에 도시된 블록 구성에서, 상기 메모리(510) 및 상기 프로세서 유닛(520)의 다른 구성 예를 도시한다.
상기 도 7을 참고하면, 상기 전자 장치는 메모리(710) 및 프로세서 유닛(720)을 포함한다. 상기 도 7에 도시되지 아니하였으나, 상기 전자 장치는 상기 도 5에 도시된 상기 입출력 시스템(530)을 더 포함한다. 또한, 구체적 실시 예에 따라, 상기 전자 장치는 상기 통신 서브시스템(540), 상기 센싱 서브시스템(550), 상기 카메라 서브시스템(560) 중 적어도 하나를 더 포함할 수 있다.
상기 도 7에 도시된 실시 예의 경우, 상기 도 5의 실시 예와 비교하면, 상기 메모리(510)에 포함된 UI 모듈(513)이 배제되고, 상기 프로세서 유닛(720)에 UI 프로세서(724)가 더 포함된다. 즉, 소프트웨어로 구성된 상기 UI 모듈(513)을 대체하여 하드웨어로 구현된 상기 UI 프로세서(724)가 상기 UI 모듈(513)의 기능을 수행한다. 즉, 상기 UI 프로세서(724)는 화면 내 적어도 하나의 영역에 물리장을 설정하고, 물리장의 물리적 특성을 부여하고, 특성 값을 설정한다. 또한, 상기 UI 프로세서(724)는 상기 물리장 내의 UI 객체들 각각에 상기 물리장에 영향을 받는 물리적 속성을 부여하고, 속성값을 설정한다. 그리고, 상기 UI 프로세서(724)는 사용자의 조작 또는 외부 환경 변화에 따라 상기 물리장의 특성 또는 상기 각 UI 객체의 속성값을 변경한다.
도 8은 본 발명의 또 다른 실시 예에 따른 전자 장치의 블록 구성을 도시하고 있다. 상기 도 8은 상기 도 5에 도시된 블록 구성에서, 상기 메모리(510) 및 상기 프로세서 유닛(520)의 다른 구성 예를 도시한다.
상기 도 8을 참고하면, 상기 전자 장치는 메모리(810) 및 프로세서 유닛(820)을 포함한다. 상기 도 8에 도시되지 아니하였으나, 상기 전자 장치는 상기 도 5에 도시된 상기 입출력 시스템(530)을 더 포함한다. 또한, 구체적 실시 예에 따라, 상기 전자 장치는 상기 통신 서브시스템(540), 상기 센싱 서브시스템(550), 상기 카메라 서브시스템(560) 중 적어도 하나를 더 포함할 수 있다.
상기 도 8에 도시된 실시 예의 경우, 상기 도 5의 실시 예와 비교하면, 상기 메모리(510)에 포함된 UI 모듈(513) 및 물리 엔진(514)이 배제되고, 상기 프로세서 유닛(720)에 상기 도 7에 도시된 상기 UI 프로세서(724) 및 상기 도 6에 도시된 상기 물리 엔진(624)이 더 포함된다. 즉, 소프트웨어로 구성된 상기 UI 모듈(513) 및 상기 물리 엔진(514)을 대체하여 하드웨어로 구현된 상기 물리 엔진(624)이 상기 물리 엔진(514)의 기능을, 상기 UI 프로세서(724)가 상기 UI 모듈(513)의 기능을 수행한다.
이하 본 발명은 상술한 본 발명의 실시 예들이 적용된 구체적인 예시들을 설명한다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 메뉴 화면 편집 UI에 적용될 수 있다.
일반적으로, 스마트 폰과 같은 이동 기기의 메뉴 화면에서, 아이콘들은 격자 모양으로 배치되고, 사용자가 쉽게 원하는 애플리케이션을 실행시킬 수 있도록 UI가 구성된다. 사용자는 자신의 취향에 따라 다양한 메뉴 환경을 변경할 수 있다. 예를 들어, 상기 사용자는 메뉴 편집 화면에서 아이콘을 선택하여 원하는 위치에 드래그 및 드랍함으로써, 아이콘의 위치를 변경할 수 있다. 이때, 이동되는 아이콘의 움직임에 따라 나머지 다른 아이콘들은 자동으로 위치가 갱신된다. 예를 들어, 좌측 상단에서 우측 하단으로 내려갈수록 아이콘의 우선 순위가 낮아지도록 설정된 경우, 사용자가 특정 아이콘을 특정 위치로 이동시키면, 그 다음 위치에 있는 아이콘들은 우선 순위가 한 단계 낮아지며 재배치된다. 예를 들어, 도 9를 참고하면, (a)와 같이 다수의 아이콘들이 격자 배치된 상황에서, (b)와 같이 사용자가 아이콘 K를 좌측 상단으로 이동하면, (c)와 같이, 상기 아이콘 K가 좌측 상단 위치에 놓이고, 아이콘들 A 내지 J가 순차적으로 이동하게 된다.
종래의 UI 프레임워크의 경우, 상술한 바와 같이 아이콘들이 이동하는 UI를 표현하기 위해서 레이아웃 매니저와 애니메이션 엔진 등을 이용한 복잡한 구현이 요구된다. 또한, 대부분의 스마트폰에 적용된 가로/세로 화면 전환 기능을 지원하기 위해서 구현의 설계가 더욱 복잡해지며, 상기 UI 프레임워크에서 상기 레이아웃 매니저를 지원하지 않는 경우에는 많은 어려움이 발생한다. 하지만, 본 발명의 실시 예에 따라 상기 메뉴 편집 화면을 물리 엔진을 이용하여 구현하는 경우, 상기 애니메이션 엔진, 상기 레이아웃 매니저 등에 기반한 복잡한 기능을 이용하지 아니하더라도, 전자 장치는 보다 다양하고 보다 자연스러운 메뉴 편집 기능을 제공할 수 있다.
물리 엔진 기반의 메뉴 편집을 위한 본 발명의 일 실시 예는 다음과 같다.
본 발명의 실시 예에 따른 전자 장치는, 부력 기반에 의한 객체 제어 기법을 활용하여 메뉴 화면을 구현한다. 상기 전자 장치는 가상 물리적 공간에서 가로축 및 세로축에 부력장들을 설정하고, 각 아이콘의 목표 위치에 따라 아이콘에 설정된 가로 밀도 값 및 세로 밀도 값을 설정하면, 각 아이콘은 물리 엔진을 통해 서로 충돌하며 목표점으로 이동하게 된다.
메뉴 편집 화면에서도 동일하게 사용자가 특정 아이콘을 이동시키면, 나머지 아이콘들은 자동으로 한 단계씩 순서가 이동되어야 한다. 본 발명의 실시 예에 따른 물리 엔진 기반의 UI 프레임워크의 경우, 아이콘의 밀도 값 변경을 통해 해당 아이콘은 목표점으로 자연스럽게 이동한다. 즉, 아이콘의 밀도 값이 변경되면 부력으로부터 각 아이콘으로 표시된 UI 객체가 받는 힘의 크기가 달라지고, 상기 힘에 따르는 변화를 물리 엔진을 통해 실시간으로 산출하고, 렌더링 엔진을 통해 전자 장치의 화면에 표현하면, 사용자는 편집 화면에서 아이콘의 자연스런 움직임을 경험하게 된다. 즉, 애니메이션 엔진의 도움 없이 물리 엔진만을 이용하여 자연스런 아이콘의 움직임이 표현될 수 있다.
예를 들어, 부력장 기반의 메뉴 화면의 예는 도 10과 같다. 도 10은 본 발명의 실시 예에 따른 전자 장치에서 메뉴 화면의 아이콘 이동을 위한 밀도 분포의 예를 도시하고 있다. 상기 도 10을 참고하면, 세로축(=y축) 및 가로축(=x축)에 독립적으로 부력장들이 설정되며, 부력장 내 유체의 밀도는 축 상의 위치에 따라 다르게 설정된다. 각 아이콘은 x축 밀도 값 및 y축 밀도 값을 가지며, 상기 x축 밀도 값 및 상기 y축 밀도 값에 따라 각 아이콘의 위치가 결정된다. 아이콘A(1010)은 밀도 값 (x4, y5)를 가지는데, 밀도를 (x1, y1)으로 변경하면, 상기 아이콘A(1010)는 물리 엔진에 의하여 좌표 (1, 1)로 점진적으로 이동된다. 즉, 아이콘의 밀도 값 변경만으로도, 쉽게 아이콘의 이동을 표현할 수 있다.
또한, 상기 아이콘A(1010)는 사용자의 드래그에 의해 이동될 수 있다. 구체적으로, 사용자가 상기 아이콘A(1010)을 드래그하면, 상기 아이콘A(1010)는 물리장과 무관하게 사용자의 드래그에 따라 이동한다. 이를 위해, 상기 전자 장치는 부력을 무시할만큼의 충분한 힘이 상기 아이콘A(1010)에 가해지는 것으로 정의하거나, 또는, 상기 사용자의 조작에 의한 아이콘 이동을 물리장을 무시하는 예외로 처리할 수 있다. 이후, 사용자가 좌표 (1, 1)에서 상기 아이콘A(1010)를 드랍하면, 상기 아이콘A(1010)은 다시 물리장의 영향을 받는다. 이때, 상기 아이콘A(1010)의 밀도가 (x4, y5)이면, 상기 아이콘A(1010)는 다시 좌표 (4, 5)로 이동할 것이다. 따라서, 상기 아이콘A(1010)가 사용자가 의도한 위치를 유지하도록 하기 위해, 상기 전자 장치는 상기 아이콘A(1010)의 밀도 값을 상기 좌표 (1, 1)에 대응되는 (x1, y1)으로 변경한다. 그리고, 상기 아이콘A(1010)의 이동으로 인해 밀려나게 되는 적어도 하나의 다른 아이콘에 대하여, 상기 전자 장치는 미리 정의된 규칙에 따라 목표점을 결정하고, 결정된 목표점에 대응하는 밀도 값들을 설정함으로써, 상기 적어도 하나의 다른 아이콘이 이동되도록 제어한다.
일반적으로, 대부분의 스마트 폰들은 기기를 회전함에 따라 화면의 가로 및 세로가 전환되는 UI를 제공한다. 다시 말해, 세로 상태의 스마트폰을 좌측 또는 우측으로 회전시키면, 화면이 기기의 회전과 반대 방향으로 90도 회전함으로써, 사용자는 기기의 회전 전후 동일한 방향의 화면을 볼 수 있다. 종래의 전자 장치는, 미리 정의된 2벌의 레이아웃들 및 변환 시의 애니메이션을 표현함으로써, 상술한 가로/세로 전환 UI를 구현한다. 그러나, 본 발명의 실시 예에 따라 물리 엔진을 이용하면, 물리장의 특성 또는 UI 객체의 속성값을 변경함으로써 상기 가로/세로 전환 UI가 간단히 구현될 수 있다.
다시 말해, 가로/세로 화면 전환 UI는 각 아이콘의 밀도 값을 변경함으로써 제공될 수 있다. 화면에 표시하고자 하는 UI 객체들을 모두 가상 물리적 공간의 물체로 매핑시키면, 각 UI 객체들의 위치 제어가 가능하며, 각 객체들의 움직임은 물리 엔진과 렌더링 엔진에 의해 모바일 기기의 화면에 사실적으로 표현할 수 있다. 화면 상의 인디케이터(indicator)도 아이콘과 마찬가지로 부력을 이용하여 쉽게 가로 화면 전환 시 자동 위치 조정 및 이동 효과를 부여할 수 있다. 상기 인디케이터는 스마트 폰, 휴대폰 등의 전자 장치의 상태(배터리 잔량, 진동 모드 여부, 외부 포트 연결 여부 등)을 표시하는 UI 객체를 의미한다. 상기 인디케이터는 주로 화면의 최상단에 배치된다. 예를 들어, 상기 인디케이터의 이동의 예는 도 11과 같다.
도 11은 본 발명의 실시 예에 따른 전자 장치에서 메뉴 화면의 인디케이터 이동을 도시하고 있다. 상기 도 11을 참고하면, (a)에서 기기는 세로로 놓여 있고, 이에 따라 세로 화면이 표시된다. 이때, 인디케이터(1110)는 y축 최상단에 대응되는 y축 밀도 값을 가진다. (b)와 같이 기기가 가로로 놓이면, 가로 화면이 표시된다. 이때, 상기 인디케이터(1110)는 x축 최상단에 대응되는 x축 밀도 값을 가진다. 이를 위해, 상기 전자 장치는 센서를 통해 기기의 회전을 인지하고, 회전 시 상기 인디케이터(1110)의 밀도 값을 변경한다.
상기 도 11과 같은 이동을 위한 상기 인디케이터를 위한 물리 객체는 다양한 방식으로 구성될 수 있다. 도 12는 본 발명의 실시 예에 따른 전자 장치에서 인디케이터를 위한 물리 객체 구성 예들을 도시하고 있다. 상기 12를 참고하면, (a)와 같이, 상기 인디케이터를 위한 물리 객체는 인디케이터 전체를 포함하는 하나의 물리 객체(1211)로 구성될 수 있다. 다른 예로, (b)와 같이, 상기 인디케이터를 위한 물리 객체는 인디케이터 양단에 위치한 서로 다른 밀도 값을 가진 2개의 물리 객체들(1221, 1222)로 구성될 수 있다. 이 경우, 2개의 물리 객체들(1221, 1222)의 밀도 값을 변경함으로써, 상기 도 11과 같은 인디케이터의 이동을 표현할 수 있다.
본 발명의 다른 실시 예에 따라, 상기 도 11과 같은 인디케이터 이동을 비롯한 가로/세로 화면 전환은, UI 객체들의 밀도 값 변경이 아닌 물리장의 특성을 변경함으로써 표현될 수 있다. 다시 말해, UI 객체들의 밀도 값을 유지한 채, 물리장의 x축을 y축으로, y축을 x축으로 변경함으로써, 가로/세로 화면 전환이 표현될 수 있다.
본 발명의 또 다른 실시 예에 따라, 상기 인디케이터의 이동은 자기력에 의해 구현될 수 있다. 상기 인디케이터는 화면의 경계, 주로, 화면의 상단에 부착된다. 따라서, 상기 인디케이터에 자기력을 부여하고, 상기 인디케이터가 존재할 화면의 경계에 상기 인디케이터에 부여된 자기력과 인력을 작용하는 자기력을 부여하면, 상기 인디케이터를 상기 경계에 고정시킬 수 있다. 이 경우, 가로/세로 화면 전환이 이루어지면, 상기 경계에 부여된 자기력을 해제하고, 다른 방향의 경계에 상기 자기력을 부여하면, 상기 인디케이터가 이동될 것이다.
본 발명의 다른 실시 예에 따라, 상기 메뉴 화면은 중력장 기반으로 구성될 수 있다. 즉, 가상 물리적 공간에서 각 아이콘의 밀도 값을 조절하는 방식과 달리, 중력을 이용하여 아이콘들이 정렬될 수 있다. 각 아이콘은 서로 충돌이 가능한 납작한 실린더 형태의 수축 가능한 물리 객체로 구성될 수 있다.
도 13은 본 발명의 실시 예에 따른 전자 장치에서 중력장 기반의 메뉴 화면의 예를 도시하고 있다. 상기 도 13을 참고하면, 전자 장치는 메뉴의 아래 방향으로 중력장(1300)을 설정하고, 각 아이콘들이 화면을 이탈하지 아니하도록 메뉴 화면의 상하좌우 경계에 보이지 않는 벽들(1310)을 설정한다. 상기 벽들(1310)에 의하여 상기 아이콘들은 화면 밖으로 벗어나지 못하게 되며, 상기 벽들(1310)의 위치를 조절함으로써 표현할 수 있는 아이콘의 개수가 변경될 수 있다. 다시 말해, 상기 벽들(1310)에 의해 둘러 쌓인 공간이 넓어지면, 더 많은 수의 아이콘들이 표시될 수 있다. 또는, 아이콘의 개수가 유지되는 경우, 상기 벽들(1310)의 위치에 따라 아이콘들의 크기가 달라질 수 있다.
상기 도 13과 같이 중력장만을 이용하는 경우, 중력의 반대 방향으로 힘이 가해지지 아니하므로, 아이콘들은 간격 없이 배치될 수 있다. 이 경우, 사용자는 불편함을 겪게 될 것이다. 따라서, 중력장 기반의 메뉴 화면에서 아이콘들이 일정 간격을 가지고 배치되도록 하기 위해, 도 14와 같이 물리 객체를 구성할 수 있다. 도 14는 본 발명의 실시 예에 따른 전자 장치에서 중력장 기반의 메뉴 화면에서 아이콘을 위한 물리 객체 구성 예를 도시하고 있다. 상기 도 14를 참고하면, 가상 물리적 공간 내의 아이콘을 위한 물리 객체의 범위(1421)는 화면에 표시되는 아이콘의 그래픽의 표시 범위(1422)보다 크다. 이에 따라, 중력장만이 존재하더라도, 아이콘들은 물리 객체에서 표시되지 아니하는 부분만큼의 간격을 가지고 표시된다.
상술한 바와 같이, 전자 장치는 x축 및 y축 중 적어도 하나의 방향으로 중력장을 설정하고, 사용자가 이동시키는 아이콘의 질량을 매우 크게 설정하여 목표 위치까지 이동시킨다. 목표 위치에서 밀려난 아이콘은 도 15와 같이 다른 아이콘들과 충돌을 일으키며, 빈 자리에 근접한 아이콘은 빈자리로 이동한다. 상기 도 15와 같이, 충돌한 아이콘들은 충돌 지점과 반대의 방향으로 이동하게 하는 힘을 받게 된다. 상기 충돌로 인해 발생하는 힘의 크기는 아이콘이 매핑된 물리 객체의 탄성에 따라 달라질 수 있다.
본 발명의 또 다른 실시 예에 따라, 전자 장치는 아이콘들의 충돌 시 객체의 수축 없이 메뉴 화면의 경계에 위치한 보이지 않는 벽들로 둘러싸인 영역을 확장하되, 기존의 바깥 영역에 있던 물체들은 포함하지 아니할 수 있다. 이 경우, 벽 안의 아이콘들은 확장된 영역만큼 더 움직일 수 있다. 또한, 충돌로 인해 튀어나간 아이콘들은 화면이나 창의 영역으로 인해 일부 보이지 아니할 수 있다.
본 발명의 또 다른 실시 예에 따라, 아이콘들은 액체 상에 떠 있는 3차원의 공, 원반과 같은 물리 객체에 매핑될 수 있다. 이를 위해, 전자 장치는 화면의 평면에 수직인 z축으로 중력장을 설정하고, 선택된 아이콘이 움직일 때는 z축 방향인 액체에 잠겨서 다른 아이콘들의 아래로 이동하는 것으로 정의할 수 있다. 예를 들어, 상기 액체 상에 떠있는 물리 객체의 이동은 도 16과 같다. 도 16는 본 발명의 실시 예에 따른 전자 장치에서 액체에 떠 있는 물리 객체의 이동을 도시하고 있다. 상기 도 16을 도시하면, 화면의 평면(1610) 상에 다수의 아이콘들을 위한 물리 객체들이 위치하며, 객체A(1620)가 선택에 의해 z축 방향으로 이동하였다. 상기 객체A(1620)는 사용자의 드래그에 따라 이동하게 되며, 이때, 다른 아이콘들의 아래로 이동한다.
보다 현실성 있는 표현을 위해, 전자 장치는 선택을 유지하는 경우에 선택된 아이콘의 질량이 z축으로 감소 또는 증가하는 것으로 시뮬레이션하고, 원근법에 의해 크기를 작게 또는 크게 표현할 수 있다. 상기 전자 장치는 선택된 아이콘의 이동이 끝나면 z축 방향의 질량이 원래의 값으로 복원하고, 이에 따라, 아이콘의 크기가 원상 복귀되거나, 또는, 커졌다 작아지게 되며, 이동이 종료된 위치에서 겹쳐진 다른 아이콘과의 충돌 효과를 표현할 수 있다. 나아가, 아이콘이 잠기는 것 외에, 중력 방향, 밀도. 질량 속성 등에 따라 아이콘이 떠오르는 효과도 표현될 수 있다.
상술한 중력장, 부력장 등은 애플리케이션에 따라 미리 적용 방식 및 강도를 설정해두는 것이 바람직하다. 그러나, 다양한 활용을 위해, 사용자에 의한 위치 설정이 허용될 수 있다. 예를 들어, x 축이나 y축에 중력장을 설정하는 경우, 중력장이 설정되지 않은 행이나 열에서 아이콘의 배치 순서가 무작위일 수 있다.
상술한 바와 같이 물리적 속성을 이용하여 아이콘들의 위치를 결정하는 경우, 유사한 밀도를 가지거나 유사한 우선순위를 가진 아이콘들은 상대적으로 근접하게 배치된다. 이를 통해, 유사도에 따른 클러스터링(clustering) 효과가 발생할 수 있다. 즉, 유사도에 따라 아이콘들이 서로 인접하거나, 붙어 있거나, 겹치거나, 부분적으로 합해지는 등의 효과를 제공함으로써, 사용자의 사용 편리성이 증대될 수 있다. 예를 들어, 전자 장치는 비디오, 오디오 관련 아이콘들에 유사한 밀도 값들을 설정함으로써 비디오, 오디오 관련 아이콘들이 서로 인접하여 위치하고, 메시지나 메일 아이콘들과는 멀리 떨어지도록 제어할 수 있다. 나아가, 사용자가 전자 장치를 흔드는 경우, 다시 말해, 쉐이킹 모션(shaking motion)이 발생하는 경우, 상기 전자 장치는 센서를 통해 상기 쉐이킹 모션을 인지하고, 아이콘들을 섞은(shuffle) 후, 다시 클러스터링할 수 있다.
물리 엔진 기반의 물리적인 상호 작용 효과는 사용자 입력 인터페이스의 종류에 따라 달라질 수 있다.
예를 들어, 손가락이나 스타일러스 펜의 에어뷰 또는 호버링 기능이 지원되는 경우, 아이콘 위에 접촉 없이 위치하여 포커싱(focusing)되면, 전기장이나 자력에 의해 당겨지거나 부력이 강화되어 떠오르듯이 상기 아이콘이 크게 표시되는 효과가 제공될 수 있다. 이를 위해, 상기 에어뷰 또는 상기 호버링 시, 전자 장치는 상기 아이콘의 z축 좌표가 증가하도록 아이콘의 물리 객체에 전기력 또는 자기력을 부여하거나, 상기 아이콘의 물리 객체에 작용하는 z축의 부력을 증가시킬 수 있다.
다른 예로, 상기 에어뷰 또는 상기 호버링이 중지되면, 아이콘의 크기가 원래의 크기로 복귀하는 효과가 제공될 수 있다. 이를 위해, 상기 에어뷰 또는 상기 호버링이 중지되면, 전자 장치는 부여한 전기력 또는 자기력을 제거하거나, 부력을 원상태로 되돌릴 수 있다.
또 다른 예로, 손가락이나 스타일러스 펜으로 접촉을 통해 아이콘을 누르면 물속에 들어가듯 작게 표시되었다가, 접촉이 종료되면 물에 떠오르듯이 커지는 효과가 제공될 수 있다. 이를 위해, 전자 장치는 상기 아이콘이 눌리면 상기 아이콘의 z축 질량을 증가시키고, 접촉이 종료되면 z축 질량을 감소시킬 수 있다. 또는, 상기 전자 장치는 사용자의 누르는 압력에 비례하는 추가적인 힘을 상기 아이콘에 부여할 수 있다.
상술한 효과들은 해당 인터페이싱 지속 시간에 따라 단계적으로 표현될 수 있다. 예를 들어, 에어뷰/호버링 지속 시간이 늘어날수록 아이콘이 점점 크게 표시되고, 일정 시간 이후 최대 크기로 표시될 수 있다. 다른 예로, 접촉을 오래 지속하면 아이콘이 점점 더 작게 표시되고, 일정 시간 이후 최소 크기로 표시될 수 있다. 즉, 전자 장치는 일정 시간 동안 상기 아이콘에 추가적으로 부여되는 물리적 속성값을 지속 시간에 비례하여 증가시킨다.
상술한 효과들에 더불어, 충돌이나 물결과 같은 물리적 효과가 추가될 수 있다.
상술한 바와 같이 중력, 부력을 이용한 방안뿐만 아니라 각 UI 객체에 추를 활용하는 방법, 용수철을 이용하는 등 다양한 설정이 가능하다. 즉, 물리 엔진의 운동 특성을 다양한 방법으로 조합함으로써, 독특하고 개성 있는 메뉴 화면을 쉽고 다양하게 구현할 수 있다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 보안 키보드에 적용될 수 있다.
전자상거래 또는 금융기관 애플리케이션을 사용할 때 사용자가 입력하는 개인 정보와 패스워드 등은 사용자의 중요한 정보를 불법적으로 이용하려는 해커들의 목표가 된다. 이를 방지하기 위하여 최근 모바일 애플리케이션들은 보안 키보드를 제공한다. 종래의 보안 키보드는 실행할 때마다 키보드 버튼 사이에 공백을 임의로 배치함으로써, 화면 내의 키보드 버튼의 좌표를 변경한다. 이로 인해, 사용자가 터치한 화면의 절대 좌표로부터 입력한 실제 정보를 유추해 내려는 해커들의 시도가 무력화된다.
화면 상의 절대 위치와 키보드 버튼의 배치가 서로 연관되지 않게 함으로써 보안성을 높이는 보안 키보드의 구현을 위해, 본 발명의 실시 예에 따른 물리 엔진 기반 UI 객체 제어가 적용될 수 있다. 본 발명의 실시 예에 따른 보안 키보드는 각 키보드 버튼들을 가상 물리적 공간에 존재하는 물리 객체들로 설정하고, 상기 가상 물리적 공간에 작용하는 물리력 및 물리 객체의 물리적 속성에 따라 상기 물리 객체들의 위치를 결정한다. 물리적 속성값이 변경되면 버튼들의 위치가 변경되며, 위치 이동 시 애니메이션 효과 없이도 자연스러운 이동 과정이 표현될 수 있다. 상술한 바와 같은 보안 키보드는 도 17과 같다.
도 17은 본 발명의 실시 예에 따른 전자 장치에서 보안 키보드를 도시하고 있다. 상기 도 17은 보안 키보드의 일부 버튼들만을 도시하고 있다. 상기 도 17을 참고하면, 보안키 보드 내의 각 버튼은 모두 독립된 물리 객체에 매핑된다. 그리고, 각 버튼은 배치될 행에 따라서 o1, o2, o3 등 서로 다른 밀도 값을 부여받고, 버튼들이 배치될 가상 공간은 d1, d2, d3의 서로 다른 밀도를 갖는 매질들로 채워진다. 이에 따라, 버튼들은 자신의 밀도에 따른 중력 및 부력의 균형점에서 위치하게 된다. 미리 정의된 사용자의 재배치 명령이 발생하면, 전자 장치는 각 버튼의 밀도 값을 재설정한 후, 버튼들을 분산시킨다. 예를 들어, 상기 재배치 명령은 버튼 분산을 위해 정의된 버튼, 쉐이킹 모션 등이 될 수 있다. 이에 따라, 각 버튼에 설정된 밀도 및 객체가 포함된 매질과의 밀도 차에 의해, 각 버튼이 해당 위치로 이동한다. 이때, 매번 분산 시 마다 각 버튼의 밀도는 매번 다르게 설정되므로, 버튼들은 매질 안에서 재배치된다. 상기 도 17에 도시된 실시 예의 경우, 사용자의 편의를 위해, 기존 쿼티(qwerty) 키보드의 자판 배열을 유지하되, 각 열의 높낮이만이 변경된다. 상기 도 17과 같은 보안 키보드를 구현한 어플리케이션의 화면의 예는 도 18과 같다.
도 18은 본 발명의 실시 예에 따른 전자 장치에서 보안 키보드의 구현 예를 도시하고 있다. 상기 도 18을 참고하면, 암호 입력 시 보안 키보드가 제공된다. (a)를 참고하면, 키보드가 열 단위로 서로 다른 높이로 배치되어 있고, 버튼 재배치를 위한 섞기 버튼(1810)이 존재한다. 상기 섞기 버튼(1810)이 입력되면, (b)와 같이 버튼들이 재배치된다.
상술한 물리 엔진 기반의 보안 키보드는 각각의 키보드 버튼의 절대 위치를 지정하는 것이 아닌, 키보드 버튼의 물리적 속성을 다르게 설정하여 가상 물리적 공간 내에서 엔트로피가 0이 될 때까지 물리엔진으로부터 계산된 결과에 따라서 그 위치를 움직이는 것이다. 따라서, 상기 물리 엔진 기반의 보안 키보다는 마치 물 속에 물체를 빠뜨리는 것과 같은 효과로 인해 종래의 방법보다 직관적이며, 자연스럽다. 또한, 각 버튼 객체의 물리적 속성을 변경하여 기존에 요구되는 임의의 위치에 배치하고자 하는 요구사항 또한 쉽게 만족시킬 수 있다.
상기 물리 엔진 기반의 보안 키보드 구현 시 유의할 사항들은 버튼을 위한 물리 객체의 크기, 물리 객체 간 밀도의 차, 충돌 시 탄성 값 등이다. 상기 나열된 값들이 부적당하게 설정되면, 잘못된 위치에서 버튼 간에 서로 장애물이 되어 간섭을 일으키거나, 지나치게 움직임이 많고 정지하여 고정되는 시간이 길어져 효율성이 떨어질 수 있다. 상기 사항들은 전체적인 특성값들의 조절(tuning)을 통해서 해결 가능하다.
또한, 키보드의 각 열의 높낮이를 임의의 값으로 적용하는 과정에서의 요구조건들은 다음과 같다. 먼저, 높낮이 값은 임의적(random)이어야 한다. 또한, 사용자 입력에 불편함을 방지하기 위하여, 인접한 열들의 높이 차이는 크지 아니하여야 한다. 또한, 버튼이 레이아웃의 경계를 벗어나지 아니하여야 한다. 상기 조건들을 만족하기 위하여, 각 열의 높낮이 결정은 간단하게 구현한 터틀 그래픽스(turtle graphics) 방식으로 구현될 수 있다. 또한, 전자 장치는 임의의 높이에 첫 열의 위치를 설정한 후, 다시 임의의 방향으로 이동하여 다시 높이를 정할 수 있다.
본 발명의 다른 실시 예에 따라, 보안 키보드의 각 버튼의 물리 객체에 부여된 속성값은 사용자 입력에 따라 변경될 수 있다. 다시 말해, 각 버튼 별로 사용자 인터페이스 입력이 일어난 정도에 따라 물리 객체의 속성값이 최대치 및 최소치 범위 내에서 증가 또는 감소될 수 있다. 예를 들어, 밀도, 크기, 중량 중 적어도 하나가 변화할 수 있다. 상기 속성값이 변화함에 따라, 해당 물리 객체에 매핑된 버튼의 위치는 점차 변화한다. 이로 인해, 보안성이 더욱 강화된다. 예를 들어, 'y' 버튼이 여러 번 입력되면, 상기 'y' 버튼이 속한 열이 'y' 버튼을 입력할 때마다 점차 아래로 이동하거나, 상기 'y' 버튼이 좌측 또는 우측으로 이동할 수 있다. 또 다른 예로, 'y' 버튼이 소정 회수 이상 입력되면, 상기 'y' 버튼이 커지거나 작아질 수 있다.
본 발명의 또 다른 실시 예에 따라, 접촉 시 버튼이 확대되고, 접촉을 해제하면 상기 버튼이 작아지면서 주변의 인접한 키들이 진동할 수 있다. 또는, 버튼이 다른 버튼들과의 충돌으로 인해 위치가 변경될 수도 있다. 반대로, 접촉 시 버튼이 z축으로 이동하듯 작아지고, 접촉 해제 시 버튼이 튀어나오듯이 커졌다가 다시 본래의 크기로 복귀할 수 있다.
본 발명의 보안 키보드에서, 사용자 인터페이스 입력에 의한 재배치 명령이 발생하면, UI 객체들의 속성들이 소정의 범위 내에서 무작위로 재설정된다. 상기 재배치 명령은 일정 횟수 이상의 키 입력이 이루어지거나, 재배치 UI가 선택된 경우에 수행되는 것이 바람직하다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 WiFi 검색 결과 UI에 적용될 수 있다.
사용자가 전자 장치의 WiFi 기능을 활성화하면, 전자 장치는 주변의 연결 가능한 AP(Access Point)들을 검색하고, 결과를 나타내는 목록을 표시한다. 상기 목록에서, 각 AP는 기존 사용 여부, 신호 강도 등에 따라 정렬된다. 검색된 AP는 목록 안에서 AP 신호의 세기에 따라 추가되거나 사라질 수 있다. 이때, 매번 재정렬이 수행된다. 상기 목록에서 AP 항목이 갑자기 나타나거나 사라지는 일이 반복되면, 사용자는 시각적으로 혼란을 느낄 수 있다. 따라서, 본 발명은 물리 엔진에 기반하여 검색된 AP를 보다 직관적으로 표현할 수 있는 방안을 제안한다. 본 발명의 실시 예에 따른 AP 검색 화면의 예는 도 19와 같다.
도 19는 본 발명의 실시 예에 따른 전자 장치에서 AP(Access Point) 검색 화면의 예를 도시하고 있다. 상기 도 19를 참고하면, 전자 장치를 중심으로 하는 이차원 평면 상에 상대적인 거리와 아이콘의 크기로 신호 세기가 표현된다. (a) 및 (b)는 서로 다른 환경에서의 화면들을 도시한다. 신호 세기가 강할수록, 아이콘의 크기가 크고, 아이콘이 원의 중심에 가깝게 배치된다. 신호 세기가 변경됨에 따라 해당 아이콘이 원의 바깥 방향으로 이동하며, 아이콘의 크기도 작아진다. 따라서, AP 검색 화면에서 갑작스런 화면 변경으로 인한 사용자의 혼란이 최소화될 수 있다. 보안 연결 여부, 이미 저장된 AP 인지의 여부 등은 아이콘에 뱃지(badge)로 표현될 수 있다.
상기 도 19와 같은 화면을 종래 기술을 통해 구현하는 경우, 각 속성을 정의하고, 속성들에 의한 작용을 직접 계산하고, 대응되는 애니메이션을 구현하는 등의 상당한 노력이 요구된다. 그러나, 본 발명의 실시 예에 따라 물리 엔진을 이용하면, 각 AP를 나타내는 아이콘을 가상 물리적 공간 내의 물리 객체로 정의하고, 물리적 속성을 부여한 후, 물리 엔진을 통하여 시뮬레이션함으로써, 아이콘의 움직임이 사실적으로 표현될 수 있다. 어플리케이션은 단지 주기적으로 물리 객체의 상태에 따라 화면을 갱신하는 기능만을 수행한다. 이때, 물리적 속성값을 결정하기 위해 입력되는 변수는 각 AP의 신호 세기이다. 상기 신호 세기를 AP 아이콘의 위치로 전환하는 과정은 도 20과 같다.
도 20은 본 발명의 실시 예에 따른 전자 장치에서 신호 세기를 AP 아이콘의 위치로 전환하는 과정을 개념적으로 도시하고 있다. 상기 도 20을 참고하면, 월드(world) 정의(2010)를 통해 초기화가 이루어진다. 그리고, 각 AP의 신호 세기가 주기적인 갱신을 통해 물리 엔진(2020)에 입력되며, 이에 따라, 상기 물리 엔진(2020)은 AP를 나타내는 객체의 레이아웃을 주기적으로 갱신한다. 여기서, 상기 월드 정의(2010)는 가상의 물리 환경을 구축하는 것으로서, AP를 상징하는 물체의 크기, 모양, 속성을 정의하는 것, 물체가 속성에 따라 적절한 위치에 있기 위해 작용하는 힘을 정의하는 것을 포함한다.
중심으로부터의 거리가 신호 세기에 반비례하도록 AP 아이콘들을 배치하기 위하여, 물리적 가상 환경은 밀도가 ρw인 매질로 가득 차 있는 것으로 설정되며, 이에 따라, AP 아이콘은 부력의 영향을 받는다. AP를 위한 물리 객체 및 중심 간 거리 d는 신호의 세기에 의해 결정된다. 신호 세기에 의해 결정된 거리 d에 AP를 위한 물리 객체를 도달시키고자 하는 경우, 전자 장치는 현재 거리 dnow 및 목표 거리 d를 비교하고, 물리 객체의 밀도 ρ를 조절함으로써 최종적으로 물리 객체에 작용하는 힘 F를 제어한다. 현재 거리 dnow 및 목표 거리 d의 비교에 따른 제어 과정은 도 21과 같다.
도 21은 본 발명의 실시 예에 따른 전자 장치에서 AP를 위한 물리 객체의 밀도 및 작용하는 힘의 관계를 도시하고 있다. 상기 도 21을 참고하면, dnow가 d보다 큰 경우(2101), 전자 장치는 물리 객체의 밀도 ρ를 매질의 밀도 ρw보다 크게 설정함으로써, 중심 방향으로 힘 F가 가해지도록 한다. 반면, dnow가 d보다 작은 경우(2102), 전자 장치는 물리 객체의 밀도 ρ를 매질의 밀도 ρw보다 작게 설정함으로써, 중심 방향의 반대 방향으로 힘 F가 가해지도록 한다. 반면, dnow가 d와 같은 경우(2103), 전자 장치는 물리 객체의 밀도 ρ를 매질의 밀도 ρw와 같게 유지함으로써, 중심 방향으로 힘 F가 가해지도록 한다. 상술한 밀도 변경을 수식으로 표현하면 하기 <수학식 5>와 같다.
Figure pat00009
상기 <수학식 5>에서, 상기 dnow는 물리 객체 및 중심 간 현재 거리, 상기 d는 수신 신호 세기에 따라 결정된 목표 거리, 상기 ρ는 물리 객체의 밀도, 상기 ρw는 매질의 밀도, 상기 r1은 밀도 감소를 위한 가중치, 상기 r2는 밀도 증가를 위한 가중치를 의미한다.
상기 도 21 및 상기 <수학식 5>에 나타난 바와 같이, 상기 물리 객체의 밀도를 변경함으로써 힘 F가 가해지면, 물리 객체가 이동한다. 상기 물리 객체 및 중심 간 거리가 목표한 거리 d에 도달하면, 상기 전자 장치는 상기 물리 객체의 밀도를 매질의 밀도 ρw와 같도록 복구함으로서, 가해지는 힘을 제거하고, 해당 위치에 고정되도록 한다.
상기 물리 객체가 원하는 위치에 도달 시, 전자 장치는 밀도 ρ를 복구함으로써 힘 F를 제거한다. 그러나, 물리 객체가 속도를 가지고 움직이고 있었으므로, 관성에 의해 즉시 정지하지 못하고, 해당 위치를 지나치게 된다. 목표 지점을 지나쳐 감에 따라 다시 F가 조절되고, 방향을 바꾸어 원래의 위치로 돌아오고, 또 다시 지나치기를 반복하는, 단진동 운동이 일어날 것이다. 이를 해결하기 위해, 또 하나의 힘이 필요하다. 본 발명의 일 실시 예에 따라, 전자 장치는 물체가 목표 지점에 도달했을 때 물체를 고정시키기 위하여 물체를 중심에서 고정된 길이 d의 끈에 매달아 놓은 상황을 정의한다. 상기 끈에 매어진 물리 객체는 도 22와 같다.
도 22는 본 발명의 실시 예에 따른 전자 장치에서 AP를 위한 물리 객체의 단진동 방지를 위한 모델링의 예를 도시하고 있다. 상기 도 22를 참고하면, 물체A(2221) 및 물체B(2222)가 끈(2211, 2212)에 묶여 있다. 상기 물체A(2221)의 경우, 중심으로부터의 길이가 끈(2211)의 길이 d보다 가까이 위치하므로(dnow < d), 상기 끈(2211)에 의한 작용은 없다. 반면, 상기 물체B(2222)의 경우, 중심으로부터의 길이가 끈(2212)의 길이 d에 도달하므로(dnow = d), 상기 물체B(2222)는 상기 끈(2212)의 장력의 영향을 받아 더 이상 나아가지 못한다. 상술한 작용은 물리적으로 속도 벡터 v의 법선 성분 vnorm을 상쇄시키는, 크기는 vnorm와 같고 방향은 반대인 벡터 -vnorm를 v에 더해준 결과이다.
상술한 작용을 추가하면, 물체가 자기의 위치를 찾아가는 동안에는 부력에 둥둥 떠다니는 듯한 자유로운 움직임을 보이다가, 해당 위치에 도달하는 순간 그 위치에 고정되는 듯한 효과가 낼 수 있다. 본 발명의 다른 실시 예에 따라, 상기 끈을 추가하는 모델링 외에, 단지 물리 객체 및 중심 간 거리가 d가 된 경우, 상기 물리 객체의 위치를 강제로 고정시키는 예외 처리를 통해 상기 단진동이 방지될 수 있다.
상술한 바와 같이, 월드, 즉, 물리적 가상 공간을 정의한 후, 각 물체의 밀도를 AP 신호 세기 및 물체의 중심으로부터 상대적인 현재 위치에 따라 변화시켜주면, 물리 엔진은 가상 물리 환경 내부의 부력, 중력, 장력에 의해 변화된 각 AP 아이콘의 위치를 제공한다. UI 표현 수단은 단지 물리 엔진이 제공하는 결과를 주기적으로 샘플링하고, 랜더링함으로써, AP 아이콘을 자연스럽게 적당한 위치로 이동시킬 수 있다.
상술한 실시 예는 WiFi 뿐만 아니라 블루투스(Bluetooth) 등과 같은 통신 수단에도 동일하게 적용될 수 있다. UI 객체들의 속성은 사용자 장치가 수신한 무선 신호의 세기에 기초하여 제어되며, 제어되는 속성은 밀도, 크기, 중량, 장력, 탄성력 중 적어도 하나를 포함할 수 있다.
이에 더하여, 각 아이콘별로 사용자 입력이 일어난 횟수 또는 해당 무선 신호를 발신한 장치와 연결 유지 기록에 따라 거리나 크기가 달리지는 효과도 부여될 수 있다. 이를 위해, 전자 장치는 입력이 일어난 횟수 또는 상기 연결 유지 기록에 기초하여 UI 객체의 속성값이 최대값 및 최소값 범위 내에서 증가 또는 감소하킬 수 있다. 예를 들어, 자주 사용하는 AP 아이콘은 점점 더 커지거나, 인접도가 커질 수 있다. 또한, AP 아이콘들은, 신호 세기가 강할수록 물 위에 뜬 것처럼 색채가 밝고, 크기가 커지며, 반대로 신호 세기가 낮거나 사용 빈도가 낮을수록 물에 잠긴 것처럼 어두워지고 작아지도록 제어될 수 있다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 잠금 화면에 적용될 수 있다.
터치 입력을 지원하는 전자 장치에서, 잠금 화면은 사용자의 의도하지 않은 입력에 의한 오 동작을 방지하기 위하여 사용된다. 일반적으로, 전원 버튼을 누르거나 일정 시간 동안 입력이 없는 경우, 상기 전자 장치는 전류 소모를 줄이기 위해 화면을 끄고, 잠금 모드로 진입한다. 이후, 사용자가 홈(home) 버튼이나 전원 버튼을 누르면, 화면이 켜지면서 잠금 화면이 나타나며, 상기 사용자는 잠금 화면 상의 잠금 버튼을 미리 정의된 모션을 통해 해제할 수 있다.
종래의 잠금 화면들은 그 명칭에 걸맞게 기능적인 면에만 치중해 온 경향이 있다. 예를 들어, 'iOS'의 밀어서 잠금 해제, '안드로이드(Android)'의 패턴을 그리는 잠금 해제, PIN(personal identification number) 번호를 입력하는 잠금 해제, 또는 비밀번호를 입력하는 잠금 해제 등의 방식이 널리 사용되고 있다. 그러나, 감성적인 UI를 적용하는 추세가 늘어나면서, 잠금 화면에도 새로운 방식의 UI에 대한 필요성이 있다.
도 23은 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면의 예를 도시하고 있다. 상기 도 23을 참고하면, 본 발명은 물리 엔진 기반의 커튼 효과를 제공하는 잠금 화면을 제공한다. 발명의 실시 예에 따른 전자 장치는, (a)와 같이, 잠금 화면을 커튼이 정지하고 있는 상태로 설정하고, 사용자의 입력에 따라 커튼을 여는 효과를 제공함으로써 사실적이고 친근한 잠금 해제의 느낌을 제공한다. 즉, 화면 잠금 시 홈 스크린 위에 오버랩(overlap)되는 UI 객체는 커튼과 같은 속성을 가진다. 터치 스크린 상에 아무런 입력이 주어지지 않으면, 아무런 외부 힘을 받지 않기 때문에, 잠금 화면은 커튼이 마치 정지하고 있는 배경과 같이 거의 펄럭이지 않는다. 이때, 터치 입력이 주어지면, 잠금 화면이 해제되지는 아니하지만, (b)와 같이, 상기 커튼이 입력이 주어진 곳을 기준으로 자연스럽게 펄럭이고, 일정 시간 경과 후 움직임이 멈춘다. 그리고, 드래그 입력이 발생하면, 전자 장치는, (c)와 같이, 마치 실제로 손으로 건드려서 커튼이 움직이는 듯한 효과를 제공하며, 커튼이 움직임으로써 발생한 빈 공간(2310)에서 잠금 화면 뒤의 홈 스크린이 일부 표시된다. 상기 드래그 상태에서 손을 떼어내면, 잠금 화면이 해제되며 홈 스크린이 나타난다.
상술한 잠금 화면에 적용되는 가상 물리적 공간의 설정은 다음과 같다. 커튼 뒤에 배치된 홈 스크린을 구성하는 화면과 별도로, 초기 화면을 구성하는 커튼은 독립된 객체로 설정되고, 또 다른 강체가 커튼과 충돌을 일으킨다. 커튼은 강체가 아닌 소프트 바디(soft body)이어야 한다. 상기 소프트 바디는 물리 엔진에서 외부 입력이나 다른 객체와의 충돌에 의하여 자신의 모양이 변할 수 있는 물체를 의미한다. 상기 소프트 바디는, 강체와 다르게, 물체 내 임의의 두 점들 간 거리가 고정된 것이 아니라, 상기 두 점들이 스프링으로 연결된 것처럼 유동적으로 변하기 때문에, 상기 소프트 바디의 동역학은 강체의 동역학과는 별도로 정의된다. 현실 세계와 유사한 느낌의 UI를 제공하기 위해서는 옷감, 천 등을 표현하는 소프트 바디 다이나믹스(soft body dynamics)의 좀 더 섬세하고 세밀한 구현이 필요하다.
커튼이 소프트 바디로 정의되기 위해서, 전자 장치는 하나의 매쉬(mesh)를 정의하고, 상기 매쉬에 소프트 다이나믹스(soft dynamics)의 속성을 부여한다. 상기 매쉬를 생성한 후, 상기 전자 장치는 x축 및 y축의 격자(grid)를 결정함으로써, 인덱스(index)의 개수를 정한다. 상기 인덱스는 입력되는 터치 포인트에 해당하는 커튼의 위치를 대략적인 정수로 표현하고, 그 자리에 앵커(anchor)를 지정하기 위해 사용된다. 이에 따라, 물리 엔진은 상기 매쉬의 속성을 소프트 바디로 설정하고, 질량, 충돌 모양 등을 추가로 설정함으로써, 최종적으로 커튼이라는 하나의 객체를 가상 물리적 공간에 생성할 수 있다.
정지하고 있는 커튼을 커튼답게 보이게 만드는 것은 커튼과 충돌을 일으켜 커튼이 흔드는 강체이다. 소프트 바디가 월드 좌표계를 이용하는 데 반해, 강체는 물리와 그래픽 객체 간에 월드 변환을 단일화하기 때문에, 상기 소프트 바디 및 상기 강체를 충돌시키기 위해서, 일부 물리 엔진은 상기 소프트 바디 및 상기 강체 둘 다 표현할 수 있는 별도의 동적 월드를 지원하기도 한다. 예를 들어, 알려진 물리 엔진 '불렛'의 경우, 상기 소프트 바디 및 상기 강체 둘 다 표현할 수 있는 ' btSoftRigidDynamicsWorld'라는 동적 월드가 제공된다. 상기 별도의 동적 월드 내에서, 상기 강체 및 상기 소프트 바디 간 충돌이 일어날 때, 상기 물리 엔진은 각각 가지고 있는 꼭지점들의 충돌을 감지하여 충격량을 계산한 후, 충돌한 후의 속도를 산출한다.
터치 스크린에 손가락이 접촉할 때, 잠금 화면이 유지되는 시나리오, 잠금 화면이 해제되는 시나리오 등 크게 2개의 시나리오들이 필요하다. 잠금 화면이 유지되는 시나리오는 다시 터치 이벤트가 발생할 때, 모션 이벤트가 발생할 때의 두 가지의 경우들로 나누어진다. 상기 잠금 화면이 해제되는 시나리오는 모션 이벤트가 발생할 때, 손가락을 떼어내는 터치 업 이벤트의 두 가지 경우들로 나누어진다.
상기 잠금 화면이 유지되는 시나리오는 다음과 같다. 터치 입력이 발생 시, 보이지 않는 독립적인 강체가 생성된다. 상기 터치 입력이 발생하는 순간에 생성되는 강체는 -z 방향으로 이동하여 커튼과 충돌을 일으켜 커튼을 흔든다. 이에 따라, 커튼이 펄럭거리는 효과가 보여진다. 그리고, 상기 강체는 충돌 후의 속도로 스크 린 밖으로 사라진다. 커튼의 흔들리는 정도는 강체가 날아가는 속도, 강체의 질량, 커튼의 장력 등에 의해 결정된다. 상기 강체 및 상기 커튼의 충돌은 도 24와 같다. 도 24는 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면을 구성하는 커튼 및 강체의 충돌을 도시하고 있다. 상기 도 24는 커튼(2410)에 질량 m인 강체가(2420) 서로 다른 속도로 충돌하는 모습을 도시한다. (a)는 상기 강체(2420)가 v[m/s]의 속도로, (b)는 상기 강체(2420)가 2v[m/s]의 속도로 충돌하는 모습을 도시한다. 상기 강체(2420)의 충돌 속도가 클수록, 상기 커튼(2410)에 가해지는 힘이 커지므로, 상기 커튼(2410)은 더 많이 흔들리게 된다.
전자 장치는 터치 다운 입력과 동시에 모션 입력도 인식한다. 이때, 커튼의 흔들림과 잠금 해제를 구분하기 위해, 패닝(panning) 거리가 미리 정의된 임계값 이상인 경우에만 잠금 해제 시나리오가 수행될 수 있다. 예를 들어, 상기 임계값은 100 픽셀(pixel)일 수 있다. 상기 패닝 거리가 상기 임계값 이상이면, 모션으로 인해 사용될 강체가 또 하나 생성된다. 상기 강체는, 커튼과 충돌하기 위해 -z 방향으로 이동하는 충돌을 일으키는 강체와는 달리, 터치 입력이 발생한 위치에 앵커(anchor)로 연결된다. 터치 상태를 유지하며 드래그할 때, 상기 강체가 터치 포인트의 위치에 따라 이동하기 때문에, 상기 강체와 연결된 커튼 부분이 움직이면, 나머지 커튼 부분도 매쉬로 이루어져 있으므로, 당기는 힘에 의해 함께 이동하고, 결과적으로, 상기 커튼이 이리 저리 터치 포인트를 따라서 움직이는 효과가 제공된다. 상기 커튼이 움직이는 모습은 도 25와 같다. 도 25는 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면을 구성하는 커튼의 움직임을 도시하고 있다. 상기 도 25를 참고하면, 터치 입력 발생 시, (a)와 같이 터치 포인트에 앵커(2510)가 발생한다. 이후, 터치 포인트가 이동하면, (b)와 같이 상기 앵커(2510)도 함께 이동한다. 이에 따라, (c)와 같이, 상기 앵커(2510)의 이동에 따라 커튼의 나머지 부분이 상기 앵커(2510)에 의해 당겨지듯 움직인다.
상기 앵커에 의해 커튼이 움직이는 상태에서, 터치 입력을 제거하면, 다시 말해, 손가락을 떼어내면, 전자 장치는 모션 이벤트가 발생할 당시의 좌표값 및 터치 입력 제거시의 좌표값 차이를 계산하고, 음수이면 왼쪽으로, 양수이면 오른쪽으로 커튼이 움직이며 커튼이 걸려있도록 유지하던 훅(hook)도 제거한다. 훅이 제거되면, 커튼이 화면 밖으로 사라지는 효과가 제공되며, 잠금 화면이 해제된다. 상술한 잠금 화면 해제를 도시하면 도 26과 같다. 도 26은 본 발명의 실시 예에 따른 전자 장치에서 잠금 화면의 해제를 도시하고 있다. 상기 도 26을 참고하면, 터치 포인트의 시작점(=이전) 및 종료점(=현재) 간 상대적 관계에 따라 커튼이 사라지는 방향이 달라진다. (a)의 경우, 현재 터치 포인트(2612)가 이전 터치 포인트(2611)보다 우측에 있으므로, 커튼은 우측 방향을 향해 사라진다. (b)의 경우, 현재 터치 포인트(2622)가 이전 터치 포인트(2621)보다 좌측에 있으므로, 커튼은 좌측 방향을 향해 사라진다. 상술한 잠금 화면 해제를 수도 코드(pseudo code)로 표현하면, 하기 <표 1>과 같다.
if(cur_x - prev_x > 0)
move the curtain to right direction
else if(cur_x - prev_x < 0)
move the curtain to left direction
이에 따라, 사용자는 마치 자신의 손가락이 커튼을 실제로 건드리고 있는 듯한 느낌을 받아, 커튼으로 잠금 화면을 해제하는 경험을 하게 된다.
본 발명의 또 다른 실시 예에 따라, 센서를 통해 측정되는 환경 변화에 의해 움직임 효과가 다르게 표현될 수 있다. 다시 말해, 전자 장치는 커튼 움직임 효과의 다양성을 부여하기 위해 센서에 기초하는 부가적인 속성을 부여할 수 있다. 예를 들어, x축 또는 y축에 중력장을 설정하면, 다양한 변형된 움직임 효과가 제공될 수 있다. 예를 들어, 화면상의 x축에서 좌측에서 우측으로 갈수록 중력 크기가 증가하는 중력장을 설정한 경우, 커튼을 좌측에서 우측로 당기는 것은 우측에서 좌측으로 당기는 것보다 더 빠른 움직임을 보일 것이다. 다른 예로, y축 방향으로 화면 하단에 강한 중력 효과를 부여하고, 커튼의 세로 방향의 중간 잡고 좌에서 우로 당길 때, 커튼의 아래쪽은 보다 무겁고 느리지만 강하게 출렁이는 반면, 윗쪽은 보다 가볍고 빠르게 젖혀지는 효과가 제공될 것이다. 전자 장치가 세로로 놓여진 경우, 가속도센서(accelerometer) 또는 자이로 센서 등을 이용하여 세로로 놓여짐을 감지하고, 하단 방향으로 중력을 자동 설정해주면, 상기 장치의 포즈(pose)에 따라서 다양한 효과들이 부여될 수 있다. 또한, 상기 전자 장치가 바닥에 눕혀진 경우, 사용자가 커튼을 터치했을 때, 세로로 놓여진 경우보다 더 깊이 눌린 듯한 애니메이션 효과 등이 제공될 수 있다.
본 발명의 또 다른 실시 예에 따라, 커튼을 이용한 잠금 해제에 있어서, 상술한 바와 같이 커튼을 당기는 효과 외에, '불어서 잠금 해제'와 같은 다른 방식도 고려될 수 있다. 즉, 전자 장치가 센서를 통해 사용자가 공기를 불어넣는 것을 감지할 수 있는 경우, 상기 전자 장치는 사용자의 불음(blowing)을 감지한 후, 상기 불음에 대응되는 물리적 효과를 부여한 후, 잠금을 해제할 수 있다. 예를 들어, 상기 불음에 대응되는 물리적 효과는 커튼 객체 상의 강체의 충돌일 수 있다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 데이터 분류에 적용될 수 있다.
데이터의 목록(예: 사진, 미디어 파일 등을 아이콘으로 표현한 목록)을 표시하는 데 있어서, 데이터의 특징에 따라 물리적 속성을 부여하고, 물리장을 설정하면, 유사한 특징을 가지는 데이터를 나타내는 UI 객체들이 특징에 따라 정렬될 수 있다. 즉, 전자 장치는 화면에 나타나는 UI 객체의 데이터 특징을 물리엔진 상의 물체 속성값으로 매핑한다. 구체적인 예로, 사진의 날짜를 밀도에 매핑하면, 오래된 사진 및 최근 사진은 서로 다른 방향으로 이동하게 된다. 다른 예로, 사진의 톤(tone)을 밀도로 매핑하면, 밝은 사진 및 어두운 사진이 서로 다른 방향으로 이동하게 된다. 또 다른 예로, 음악의 장르를 밀도로 매핑하면, 음악 파일들이 장르에 따라 모이게 된다.
도 27은 본 발명의 실시 예에 따른 전자 장치에서 물리적 속성 매핑에 따른 UI 객체 그룹핑의 예를 도시하고 있다. 상기 도 27을 참고하면, 제1UI 객체(2711), 제2UI 객체(2722)가 유사한 특징을 가짐으로 인해 유사한 속성값들을 부여받고, 이에 따라, 상기 제1UI 객체(2711) 및 상기 제2UI 객체(2722)가 아래 방향으로 이동하게 된다. 또한, 제3UI 객체(2721), 제4UI 객체(2722), 제5UI 객체(2723)가 유사한 특징을 가짐으로 인해 유사한 속성값들을 부여받고, 이에 따라, 상기 제3UI 객체(2721), 상기 제4UI 객체(2722), 상기 제5UI 객체(2723)가 윗 방향으로 이동하게 된다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 사용자의 사용 이력을 나타내기 위해 적용될 수 있다.
예를 들어, 자주 사용하는 아이콘에 대해서 낡아지거나 광이 나는 효과가 적용될 수 있다. 구체적으로, 전자 장치는 자주 사용하는 아이콘일수록 광이 나는 ㅎ효과를 적용함으로서, 사용자가 인식하기 쉽도록 한다.
본 발명의 실시 예에 따른 물리 엔진 기반의 UI 객체 제어는 보다 효과적인 알림(notification) UI 표현을 위해 적용될 수 있다.
일반적으로, 휴대폰 등의 전자 장치는 문자 수신 등의 알림 기능을 제공한다. 본 발명의 실시 예에 따라, 전자 장치는 알림 발생 시 물리적 속성을 가지는 UI 객체를 생성할 수 있다. 예를 들어, 상기 전자 장치는 알림 UI가 표시될 화면에 물리장을 설정하고, 상기 알림 UI 객체를 물방울 또는 공기방울 같은 물리 객체로 치환/생성함으로써, 아래쪽에서 자동적으로 떠오르는 효과를 제공할 수 있다.
도 28은 본 발명의 실시 예에 따른 전자 장치에서 알림 UI의 예를 도시하고 있다. 상기 도 28을 참고하면, 다수의 알림들(2801 내지 2804)이 발생하였으며, 이에 따라, 전자 장치는 상기 알림들(2801 내지 2804) 각각을 위한 알림 UI 객체들을 생성한다. 이때, 상기 알림 UI 객체들은 공기방울 또는 물방울과 같은 물리 객체들에 매핑된다. 상기 물리 객체들은 물리 엔진의 연산에 의해 서서히 상승하게 되므로, 상기 전자 장치는 상기 물리 객체들의 상승에 따라서 상기 알림 UI 객체를 표시한다.
본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금, 본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM, Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM, Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM, Compact Disc-ROM), 디지털 다목적 디스크(DVDs, Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 발명의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 발명의 실시 예를 수행하는 장치에 접속할 수도 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (60)

  1. 전자 장치의 동작 방법에 있어서,
    화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하는 과정과,
    상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하는 과정과,
    상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하는 과정과,
    물리 엔진을 통해, 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 과정과, 여기서, 상기 상태는 위치, 형상, 모양, 색채 중 적어도 하나를 포함하며,
    상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 과정을 포함하는 방법.
  2. 제1항에 있어서,
    사용자의 입력 및 센서를 통해 감지되는 환경 변화 중 적어도 하나에 따라 상기 가상의 물리장의 특성 및 상기 적어도 하나의 가상의 물리 객체의 속성값 중 적어도 하나를 변경하는 과정과,
    상기 물리 엔진을 통해, 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 과정과,
    상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 과정을 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 영역의 개수 및 범위는, 실행되는 어플리케이션에 따라 달라지는 방법.
  4. 제1항에 있어서,
    상기 물리장은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되고,
    상기 적어도 하나의 가상 물리 객체의 속성은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되는 방법.
  5. 제1항에 있어서,
    상기 물리장은, 하나의 축에서 좌표에 따라 달라지는 속성값들을 가지는 방법.
  6. 제1항에 있어서,
    상기 물리장은, 중력, 부력, 전기력, 자기력, 탄성력, 장력 중 적어도 하나의 속성을 가지며,
    상기 적어도 하나의 가상의 물리 객체에 부여되는 속성은, 크기, 밀도, 부피, 형상, 모양, 색채, 탄성, 점성, 변형도, 이동 속도, 이동 벡터, 전기력, 자기력 중 적어도 하나를 포함하는 방법.
  7. 제1항에 있어서,
    상기 UI 객체는, 메뉴 화면에 표시되는 아이콘(icon)을 포함하는 방법.
  8. 제7항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 위치를 결정하며,
    상기 속성값은, 상기 아이콘 이동 시 목표점에 대응되는 속성값으로 변경되는 방법.
  9. 제7항에 있어서,
    상기 물리장은, 부력장 및 상기 부력장과 반대 방향으로 작용하는 중력장을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 부력장에 수직인 면의 단면적, 상기 중력장의 방향과 수직인 면의 단면적, 밀도를 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체는, 상기 부력장에 의해 가해지는 제1힘 및 상기 중력장에 의해 가해지는 제2힘이 평형을 이루는 지점에 위치하는 방법.
  10. 제1항에 있어서,
    상기 UI 객체는, 인디케이터(indicator)를 포함하는 방법.
  11. 제10항에 있어서,
    상기 인디케이터와 매핑되는 적어도 하나의 가상의 물리 객체는, 상기 인디케이터 전체를 포함하는 하나의 물리 객체를 포함하거나, 상기 인디케이터 양단에 위치한 서로 다른 속성 값들을 가진 2개의 물리 객체들을 포함하는 방법.
  12. 제1항에 있어서,
    상기 UI 객체는, 가상 키보드를 구성하는 버튼을 포함하는 방법.
  13. 제12항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 위치를 결정하며,
    상기 속성값은, 미리 정의된 재배치 명령에 따라 재결정되는 방법.
  14. 제13항에 있어서,
    상기 재배치 명령은, 버튼 분산을 위해 정의된 버튼, 쉐이킹 모션 중 적어도 하나를 포함하는 방법.
  15. 제12항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 크기를 결정하며,
    상기 속성값은, 사용자의 입력 횟수에 따라 크기가 단계적으로 변화되도록 변경되는 방법.
  16. 제1항에 있어서,
    상기 UI 객체는, 무선 신호를 송수신하는 외부 통신 노드의 신호 세기 표시 아이콘을 포함하는 방법.
  17. 제16항에 있어서,
    상기 물리장은, 원의 중심을 향하는 부력을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 중심 및 상기 아이콘 간 거리를 결정하며,
    상기 속성값은, 상기 외부 통신 노드로부터의 신호 세기에 따라 변경되는 방법.
  18. 제16항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 크기를 결정하며,
    상기 속성값은, 상기 아이콘에 대한 입력 횟수, 상기 아이콘이 나타내는 외부 통신 노드로의 접속 횟수 중 적어도 하나에 기초하여 변경되는 방법.
  19. 제1항에 있어서,
    상기 UI 객체는, 화면 잠금 시 홈 스크린 위에 오버랩(overlap)되는 UI 객체를 포함하는 방법.
  20. 제19항에 있어서,
    상기 UI 객체와 매핑된 적어도 하나의 가상의 물리 객체는, 소프트 바디(soft body)의 속성을 가지며, 사용자의 입력에 따라 발생되는 강체와의 충돌, 상기 강체의 이동에 따라 흔들리거나, 당겨지는 방법.
  21. 전자 장치에 있어서,
    화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하고, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하고, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하고, 물리 엔진을 통해, 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하는 적어도 하나의 프로세서와,
    상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 표시부를 포함하며,
    여기서, 상기 상태는 위치, 형상, 모양, 색채 중 적어도 하나를 포함하는 장치.
  22. 제21항에 있어서,
    상기 적어도 하나의 프로세서는, 사용자의 입력 및 센서를 통해 감지되는 환경 변화 중 적어도 하나에 따라 상기 가상의 물리장의 특성 및 상기 적어도 하나의 가상의 물리 객체의 속성값 중 적어도 하나를 변경하고, 상기 물리 엔진을 통해, 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하고,
    상기 표시부는, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하는 장치.
  23. 제21항에 있어서,
    상기 적어도 하나의 영역의 개수 및 범위는, 실행되는 어플리케이션에 따라 달라지는 장치.
  24. 제21항에 있어서,
    상기 물리장은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되고,
    상기 적어도 하나의 가상 물리 객체의 속성은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되는 장치.
  25. 제21항에 있어서,
    상기 물리장은, 하나의 축에서 좌표에 따라 달라지는 속성값들을 가지는 장치.
  26. 제21항에 있어서,
    상기 물리장은, 중력, 부력, 전기력, 자기력, 탄성력, 장력 중 적어도 하나의 속성을 가지며,
    상기 적어도 하나의 가상의 물리 객체에 부여되는 속성은, 크기, 밀도, 부피, 형상, 모양, 색채, 탄성, 점성, 변형도, 이동 속도, 이동 벡터, 전기력, 자기력 중 적어도 하나를 포함하는 장치.
  27. 제21항에 있어서,
    상기 UI 객체는, 메뉴 화면에 표시되는 아이콘(icon)을 포함하는 장치.
  28. 제27항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 위치를 결정하며,
    상기 속성값은, 상기 아이콘 이동 시 목표점에 대응되는 속성값으로 변경되는 장치.
  29. 제27항에 있어서,
    상기 물리장은, 부력장 및 상기 부력장과 반대 방향으로 작용하는 중력장을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 부력장에 수직인 면의 단면적, 상기 중력장의 방향과 수직인 면의 단면적, 밀도를 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체는, 상기 부력장에 의해 가해지는 제1힘 및 상기 중력장에 의해 가해지는 제2힘이 평형을 이루는 지점에 위치하는 장치.
  30. 제21항에 있어서,
    상기 UI 객체는, 인디케이터(indicator)를 포함하는 장치.
  31. 제30항에 있어서,
    상기 인디케이터와 매핑되는 적어도 하나의 가상의 물리 객체는, 상기 인디케이터 전체를 포함하는 하나의 물리 객체를 포함하거나, 상기 인디케이터 양단에 위치한 서로 다른 속성 값들을 가진 2개의 물리 객체들을 포함하는 장치.
  32. 제21항에 있어서,
    상기 UI 객체는, 가상 키보드를 구성하는 버튼을 포함하는 장치.
  33. 제32항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 위치를 결정하며,
    상기 속성값은, 미리 정의된 재배치 명령에 따라 재결정되는 장치.
  34. 제33항에 있어서,
    상기 재배치 명령은, 버튼 분산을 위해 정의된 버튼, 쉐이킹 모션 중 적어도 하나를 포함하는 장치.
  35. 제32항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 크기를 결정하며,
    상기 속성값은, 사용자의 입력 횟수에 따라 크기가 단계적으로 변화되도록 변경되는 장치.
  36. 제21항에 있어서,
    상기 UI 객체는, 무선 신호를 송수신하는 외부 통신 노드의 신호 세기 표시 아이콘을 포함하는 장치.
  37. 제16항에 있어서,
    상기 물리장은, 원의 중심을 향하는 부력을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 중심 및 상기 아이콘 간 거리를 결정하며,
    상기 속성값은, 상기 외부 통신 노드로부터의 신호 세기에 따라 변경되는 장치.
  38. 제36항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 크기를 결정하며,
    상기 속성값은, 상기 아이콘에 대한 입력 횟수, 상기 아이콘이 나타내는 외부 통신 노드로의 접속 횟수 중 적어도 하나에 기초하여 변경되는 장치.
  39. 제21항에 있어서,
    상기 UI 객체는, 화면 잠금 시 홈 스크린 위에 오버랩(overlap)되는 UI 객체를 포함하는 장치.
  40. 제39항에 있어서,
    상기 UI 객체와 매핑된 적어도 하나의 가상의 물리 객체는, 소프트 바디(soft body)의 속성을 가지며, 사용자의 입력에 따라 발생되는 강체와의 충돌, 상기 강체의 이동에 따라 흔들리거나, 당겨지는 장치.
  41. 전자 장치에 있어서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서의 제어에 따라 시각적 출력을 표시하는 표시부와,
    상기 메모리에 저장되어 있으며, 상기 적어도 하나의 프로세서에 의하여 실행되도록 구성되는 적어도 하나의 모듈을 포함하며,
    상기 모듈은, 화면 내 적어도 하나의 영역에 가상의 물리장(physical field)를 설정하고, 상기 적어도 하나의 영역 내에 표시될 UI(User Interface) 객체를 상기 물리장 내의 적어도 하나의 가상의 물리 객체에 UI(User Interface) 객체에 매핑(mapping)하고, 상기 적어도 하나의 가상의 물리 객체에 물리적 속성을 부여하고, 물리 엔진을 통해 상기 물리장 및 상기 UI 객체의 물리적 속성에 기초하여 상기 적어도 하나의 가상의 물리 객체의 위치, 형상, 모양, 색채 중 적어도 하나를 포함하는 상태를 결정하고, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하도록 제어하는 적어도 하나의 명령어를 포함하는 장치.
  42. 제41항에 있어서,
    상기 모듈은, 사용자의 입력 및 센서를 통해 감지되는 환경 변화 중 적어도 하나에 따라 상기 가상의 물리장의 특성 및 상기 적어도 하나의 가상의 물리 객체의 속성값 중 적어도 하나를 변경하고, 상기 물리 엔진을 통해, 상기 적어도 하나의 가상의 물리 객체의 상태를 결정하고, 상기 적어도 하나의 가상의 물리 객체의 상태에 따라 상기 UI 객체를 표시하도록 제어하는 적어도 하나의 명령어를 포함하는 장치.
  43. 제41항에 있어서,
    상기 적어도 하나의 영역의 개수 및 범위는, 실행되는 어플리케이션에 따라 달라지는 장치.
  44. 제41항에 있어서,
    상기 물리장은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되고,
    상기 적어도 하나의 가상 물리 객체의 속성은, 상기 UI 객체의 상태 변화가 필요한 적어도 하나의 축(axis)에서 독립적으로 설정되는 장치.
  45. 제41항에 있어서,
    상기 물리장은, 하나의 축에서 좌표에 따라 달라지는 속성값들을 가지는 장치.
  46. 제41항에 있어서,
    상기 물리장은, 중력, 부력, 전기력, 자기력, 탄성력, 장력 중 적어도 하나의 속성을 가지며,
    상기 적어도 하나의 가상의 물리 객체에 부여되는 속성은, 크기, 밀도, 부피, 형상, 모양, 색채, 탄성, 점성, 변형도, 이동 속도, 이동 벡터, 전기력, 자기력 중 적어도 하나를 포함하는 장치.
  47. 제41항에 있어서,
    상기 UI 객체는, 메뉴 화면에 표시되는 아이콘(icon)을 포함하는 장치.
  48. 제47항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 위치를 결정하며,
    상기 속성값은, 상기 아이콘 이동 시 목표점에 대응되는 속성값으로 변경되는 장치.
  49. 제47항에 있어서,
    상기 물리장은, 부력장 및 상기 부력장과 반대 방향으로 작용하는 중력장을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 부력장에 수직인 면의 단면적, 상기 중력장의 방향과 수직인 면의 단면적, 밀도를 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체는, 상기 부력장에 의해 가해지는 제1힘 및 상기 중력장에 의해 가해지는 제4힘이 평형을 이루는 지점에 위치하는 장치.
  50. 제41항에 있어서,
    상기 UI 객체는, 인디케이터(indicator)를 포함하는 장치.
  51. 제50항에 있어서,
    상기 인디케이터와 매핑되는 적어도 하나의 가상의 물리 객체는, 상기 인디케이터 전체를 포함하는 하나의 물리 객체를 포함하거나, 상기 인디케이터 양단에 위치한 서로 다른 속성 값들을 가진 2개의 물리 객체들을 포함하는 장치.
  52. 제41항에 있어서,
    상기 UI 객체는, 가상 키보드를 구성하는 버튼을 포함하는 장치.
  53. 제52항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 위치를 결정하며,
    상기 속성값은, 미리 정의된 재배치 명령에 따라 재결정되는 장치.
  54. 제53항에 있어서,
    상기 재배치 명령은, 버튼 분산을 위해 정의된 버튼, 쉐이킹 모션 중 적어도 하나를 포함하는 장치.
  55. 제52항에 있어서,
    상기 버튼과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 버튼의 크기를 결정하며,
    상기 속성값은, 사용자의 입력 횟수에 따라 크기가 단계적으로 변화되도록 변경되는 장치.
  56. 제41항에 있어서,
    상기 UI 객체는, 무선 신호를 송수신하는 외부 통신 노드의 신호 세기 표시 아이콘을 포함하는 장치.
  57. 제16항에 있어서,
    상기 물리장은, 원의 중심을 향하는 부력을 포함하며,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 중심 및 상기 아이콘 간 거리를 결정하며,
    상기 속성값은, 상기 외부 통신 노드로부터의 신호 세기에 따라 변경되는 장치.
  58. 제56항에 있어서,
    상기 아이콘과 매핑된 적어도 하나의 가상의 물리 객체에 부여된 속성값은, 상기 아이콘의 크기를 결정하며,
    상기 속성값은, 상기 아이콘에 대한 입력 횟수, 상기 아이콘이 나타내는 외부 통신 노드로의 접속 횟수 중 적어도 하나에 기초하여 변경되는 장치.
  59. 제41항에 있어서,
    상기 UI 객체는, 화면 잠금 시 홈 스크린 위에 오버랩(overlap)되는 UI 객체를 포함하는 장치.
  60. 제59항에 있어서,
    상기 UI 객체와 매핑된 적어도 하나의 가상의 물리 객체는, 소프트 바디(soft body)의 속성을 가지며, 사용자의 입력에 따라 발생되는 강체와의 충돌, 상기 강체의 이동에 따라 흔들리거나, 당겨지는 장치.
KR1020120135840A 2012-11-28 2012-11-28 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치 KR20140068410A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020120135840A KR20140068410A (ko) 2012-11-28 2012-11-28 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
US14/082,693 US20140149903A1 (en) 2012-11-28 2013-11-18 Method for providing user interface based on physical engine and an electronic device thereof
EP13194644.4A EP2738660A3 (en) 2012-11-28 2013-11-27 Method for providing user interface based on physical engine and an electronic device thereof
CN201310625294.2A CN103853423A (zh) 2012-11-28 2013-11-28 基于物理引擎提供用户界面的方法及相关电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120135840A KR20140068410A (ko) 2012-11-28 2012-11-28 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치

Publications (1)

Publication Number Publication Date
KR20140068410A true KR20140068410A (ko) 2014-06-09

Family

ID=49709500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120135840A KR20140068410A (ko) 2012-11-28 2012-11-28 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치

Country Status (4)

Country Link
US (1) US20140149903A1 (ko)
EP (1) EP2738660A3 (ko)
KR (1) KR20140068410A (ko)
CN (1) CN103853423A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121376A (ko) * 2017-07-14 2019-10-25 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 애플리케이션 프로그램 제어 방법 및 디바이스, 단말 그리고 저장 매체
KR102644170B1 (ko) * 2024-01-19 2024-03-06 주식회사 넷스루 화면 구성 요소에 대한 선택과 좌표 정보 수집을 지원하는 방법

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600072B2 (en) 2012-08-27 2020-03-24 Trivver, Inc. System and method for qualifying events based on behavioral patterns and traits in digital environments
KR102146244B1 (ko) * 2013-02-22 2020-08-21 삼성전자주식회사 휴대 단말에 대한 동작 관련 입력에 따라 복수개의 객체들의 표시를 제어하는 방법 및 이를 위한 휴대 단말
US9563328B2 (en) * 2013-12-23 2017-02-07 Microsoft Technology Licensing, Llc Information surfacing with visual cues indicative of relevance
USD758403S1 (en) * 2014-03-04 2016-06-07 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
JP6013395B2 (ja) * 2014-04-23 2016-10-25 京セラドキュメントソリューションズ株式会社 タッチパネル装置及び画像形成装置
CN104267889B (zh) * 2014-09-15 2019-03-29 联想(北京)有限公司 一种控制方法和电子设备
US9652583B2 (en) * 2014-09-30 2017-05-16 The Boeing Company Methods and apparatus to automatically fabricate fillers
JP6500406B2 (ja) * 2014-12-01 2019-04-17 セイコーエプソン株式会社 入出力制御装置、入出力制御プログラム
US20180024728A1 (en) * 2015-01-30 2018-01-25 Huawei Technologies Co., Ltd. Terminal and Terminal Wallpaper Control Method
CN106033510B (zh) * 2015-03-13 2018-12-21 阿里巴巴集团控股有限公司 一种用户设备识别方法及***
US10031892B2 (en) * 2015-03-30 2018-07-24 Konica Minolta Laboratory U.S.A., Inc. Automatic grouping of document objects for reflowed layout
JP6300112B2 (ja) * 2015-06-05 2018-03-28 株式会社ダイフク 機械設備の手動操作用タッチパネル
USD863332S1 (en) * 2015-08-12 2019-10-15 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD788810S1 (en) * 2015-08-12 2017-06-06 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD880517S1 (en) 2015-08-21 2020-04-07 Sony Corporation Display panel or screen with graphical user interface
JP6886236B2 (ja) * 2015-09-30 2021-06-16 富士通株式会社 視野誘導方法、視野誘導プログラム、及び視野誘導装置
CN106874021B (zh) * 2015-12-11 2020-12-15 腾讯科技(深圳)有限公司 终端可视界面自动切换方法和装置
US20170168677A1 (en) * 2015-12-14 2017-06-15 Baker Hughes Incorporated Method for reducing alert fatigue in process control applications
US10503364B2 (en) * 2015-12-15 2019-12-10 Sony Corporation Information processing apparatus and information processing method
USD831693S1 (en) * 2016-01-05 2018-10-23 Lg Electronics Inc. Display screen with animated graphical user interface
USD831692S1 (en) * 2016-01-05 2018-10-23 Lg Electronics Inc. Display screen with animated graphical user interface
CN105824426A (zh) * 2016-03-31 2016-08-03 联想(北京)有限公司 一种信息处理方法、电子设备及电子装置
USD815123S1 (en) 2016-04-20 2018-04-10 Sorenson Ip Holdings, Llc Display screen with transitional graphical user interface
CN108700944B (zh) * 2016-05-12 2021-08-17 谷歌有限责任公司 与在虚拟现实环境中的运动有关的***和方法
US10769859B2 (en) * 2016-07-13 2020-09-08 Trivver, Inc. Methods and systems for displaying digital smart objects in a three dimensional environment
US11880954B2 (en) * 2016-07-13 2024-01-23 Trivver, Inc. Methods and systems for generating digital smart objects for use in a three dimensional environment
CN106110658B (zh) * 2016-07-22 2019-07-02 网易(杭州)网络有限公司 一种在游戏中使用的模拟方法和装置
KR102535056B1 (ko) * 2016-08-03 2023-05-22 삼성전자 주식회사 전자 장치 및 터치 인식 방법
US9904943B1 (en) 2016-08-12 2018-02-27 Trivver, Inc. Methods and systems for displaying information associated with a smart object
US10013703B2 (en) 2016-09-30 2018-07-03 Trivver, Inc. Objective based advertisement placement platform
US10525355B2 (en) * 2016-11-01 2020-01-07 Htc Corporation Method, device, and non-transitory computer readable storage medium for interaction to event in virtual space
USD820305S1 (en) * 2017-03-30 2018-06-12 Facebook, Inc. Display panel of a programmed computer system with a graphical user interface
CN107362535B (zh) * 2017-07-19 2019-04-26 腾讯科技(深圳)有限公司 游戏场景中的目标对象锁定方法、装置及电子设备
USD866579S1 (en) * 2017-08-22 2019-11-12 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10777006B2 (en) 2017-10-23 2020-09-15 Sony Interactive Entertainment Inc. VR body tracking without external sensors
CN108079572B (zh) * 2017-12-07 2021-06-04 网易(杭州)网络有限公司 信息处理方法、电子设备及存储介质
CN108429793B (zh) * 2018-02-11 2021-10-08 鲸彩在线科技(大连)有限公司 载具物理模拟方法、***、客户端、电子设备以及服务器
US10672159B2 (en) * 2018-04-02 2020-06-02 Microsoft Technology Licensing, Llc Anchor graph
CN108550074A (zh) * 2018-04-26 2018-09-18 北京京东金融科技控股有限公司 商品信息展示方法、装置、***、电子设备及可读介质
CN108635856B (zh) * 2018-05-11 2021-05-04 网易(杭州)网络有限公司 游戏中速度反馈的控制方法、装置和计算机可读存储介质
WO2020072831A1 (en) * 2018-10-03 2020-04-09 Dodles, Inc. Software with motion recording feature to simplify animation
WO2020092317A1 (en) * 2018-10-31 2020-05-07 Kci Licensing, Inc. Short range peer to peer network for negative pressure wound therapy devices
FR3092457B1 (fr) * 2019-02-01 2021-01-22 Sigfox Procédé et système de communication sans fil entre des dispositifs émetteurs et un dispositif récepteur au moyen d’un dispositif répéteur à répétition simultanée
CN109865282B (zh) * 2019-03-05 2020-03-17 网易(杭州)网络有限公司 移动终端中的信息处理方法、装置、介质及电子设备
CN110716683B (zh) * 2019-09-29 2021-03-26 北京金山安全软件有限公司 碰撞物体的生成方法、装置及设备
CN111026318B (zh) * 2019-12-05 2022-07-12 腾讯科技(深圳)有限公司 基于虚拟环境的动画播放方法、装置、设备及存储介质
CN113012214A (zh) * 2019-12-20 2021-06-22 北京外号信息技术有限公司 用于设置虚拟对象的空间位置的方法和电子设备
CN114253433A (zh) * 2020-09-24 2022-03-29 荣耀终端有限公司 一种动态元素控制方法、电子设备和计算机可读存储介质
CN114880053A (zh) * 2021-02-05 2022-08-09 华为技术有限公司 一种界面中对象的动画生成方法、电子设备及存储介质
CN115469781B (zh) * 2021-04-20 2023-09-01 华为技术有限公司 图形界面显示方法、电子设备、介质以及程序产品

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5565888A (en) * 1995-02-17 1996-10-15 International Business Machines Corporation Method and apparatus for improving visibility and selectability of icons
US6161126A (en) * 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US6252583B1 (en) * 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
JP4328397B2 (ja) * 1998-07-03 2009-09-09 富士通株式会社 画像データ処理方法及び装置並びに記憶媒体
JP4117352B2 (ja) * 2002-11-12 2008-07-16 株式会社ソニー・コンピュータエンタテインメント ファイル処理方法とこの方法を利用可能な装置
US8373655B2 (en) * 2007-01-05 2013-02-12 Apple Inc. Adaptive acceleration of mouse cursor
US9086785B2 (en) * 2007-06-08 2015-07-21 Apple Inc. Visualization object receptacle
US8745535B2 (en) * 2007-06-08 2014-06-03 Apple Inc. Multi-dimensional desktop
JP2009004999A (ja) * 2007-06-20 2009-01-08 Panasonic Corp 映像データ管理装置
KR20090036877A (ko) * 2007-10-10 2009-04-15 삼성전자주식회사 다중 프로젝션 윈도우 환경에서 기준자 기반으로오브젝트를 관리하는 방법 및 그 시스템
CN106990811A (zh) * 2008-07-15 2017-07-28 意美森公司 用于触觉消息传输的***和方法
US8799947B2 (en) * 2009-02-12 2014-08-05 EchoStar Technologies, L.L.C. Electronic program guides, systems and methods providing variable size of textual information
WO2010105084A1 (en) * 2009-03-11 2010-09-16 Fugoo LLC A graphical user interface for the representation of and interaction with one or more objects
US20100313133A1 (en) * 2009-06-08 2010-12-09 Microsoft Corporation Audio and position control of user interface
KR101638056B1 (ko) * 2009-09-07 2016-07-11 삼성전자 주식회사 휴대 단말기의 ui 제공 방법
US8922558B2 (en) * 2009-09-25 2014-12-30 Landmark Graphics Corporation Drawing graphical objects in a 3D subsurface environment
US8312392B2 (en) * 2009-10-02 2012-11-13 Qualcomm Incorporated User interface gestures and methods for providing file sharing functionality
US20120297341A1 (en) * 2010-02-16 2012-11-22 Screenovate Technologies Ltd. Modified Operating Systems Allowing Mobile Devices To Accommodate IO Devices More Convenient Than Their Own Inherent IO Devices And Methods For Generating Such Systems
EP2620849B1 (en) * 2010-09-22 2019-08-28 Shimane Prefectural Government Operation input apparatus, operation input method, and program
US9027117B2 (en) * 2010-10-04 2015-05-05 Microsoft Technology Licensing, Llc Multiple-access-level lock screen
US20120098863A1 (en) * 2010-10-21 2012-04-26 Sony Corporation Method and apparatus for creating a flexible user interface
KR101740439B1 (ko) * 2010-12-23 2017-05-26 엘지전자 주식회사 이동 단말기 및 그 제어방법
JP5771585B2 (ja) * 2011-10-03 2015-09-02 京セラ株式会社 装置、方法、及びプログラム
JP2013096736A (ja) * 2011-10-28 2013-05-20 Denso Corp 車両用表示装置
US9367233B2 (en) * 2011-10-31 2016-06-14 Samsung Electronics Co., Ltd. Display apparatus and method thereof
KR101408168B1 (ko) * 2011-12-09 2014-06-17 도시바삼성스토리지테크놀러지코리아 주식회사 그래픽 사용자 인터페이스를 제공하는 방법 및 장치
KR101873413B1 (ko) * 2012-02-17 2018-07-02 엘지전자 주식회사 이동 단말기 및 그것의 제어방법
US9052795B2 (en) * 2012-09-11 2015-06-09 Google Technology Holdings LLC Displaying side-tabbed panels for an application operating on a computing device
US20140108978A1 (en) * 2012-10-15 2014-04-17 At&T Mobility Ii Llc System and Method For Arranging Application Icons Of A User Interface On An Event-Triggered Basis
US9501140B2 (en) * 2012-11-05 2016-11-22 Onysus Software Ltd Method and apparatus for developing and playing natural user interface applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121376A (ko) * 2017-07-14 2019-10-25 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 애플리케이션 프로그램 제어 방법 및 디바이스, 단말 그리고 저장 매체
KR102644170B1 (ko) * 2024-01-19 2024-03-06 주식회사 넷스루 화면 구성 요소에 대한 선택과 좌표 정보 수집을 지원하는 방법

Also Published As

Publication number Publication date
EP2738660A2 (en) 2014-06-04
EP2738660A3 (en) 2016-08-24
US20140149903A1 (en) 2014-05-29
CN103853423A (zh) 2014-06-11

Similar Documents

Publication Publication Date Title
KR20140068410A (ko) 물리 엔진 기반의 사용자 인터페이스를 제공하는 방법 및 그 전자 장치
US11830151B2 (en) Methods and system for managing and displaying virtual content in a mixed reality system
JP6952877B2 (ja) 拡張現実環境及び仮想現実環境と相互作用するためのシステム、方法、及びグラフィカルユーザインタフェース
US11379105B2 (en) Displaying a three dimensional user interface
US10852913B2 (en) Remote hover touch system and method
JP2023065397A (ja) ユーザインターフェースオブジェクトを操作するユーザインターフェース
US9367233B2 (en) Display apparatus and method thereof
US9189096B2 (en) Multi-touch object inertia simulation
JP6074170B2 (ja) 近距離動作のトラッキングのシステムおよび方法
JP2019067436A (ja) ディスプレイ装置及びそのディスプレイ方法
EP2612220B1 (en) Method and apparatus for interfacing
JP2013037675A5 (ko)
KR20140025494A (ko) 에지 제스처 기법
EP2725469B1 (en) Information-processing device, program, information-processing method, and information-processing system
US11093117B2 (en) Method for controlling animation&#39;s process running on electronic devices
WO2019080870A1 (zh) 交互界面的显示方法和装置、存储介质、电子装置
KR100546865B1 (ko) 경사 벡터를 이용하여 표면의 경사를 나타내는 이미지프로세싱 방법 및 그 시스템
Gierløff Navigation by the use of Maps in Virtual Reality portrayed by Oculus Rift

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application