KR20160135681A - 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링 - Google Patents

그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링 Download PDF

Info

Publication number
KR20160135681A
KR20160135681A KR1020160131354A KR20160131354A KR20160135681A KR 20160135681 A KR20160135681 A KR 20160135681A KR 1020160131354 A KR1020160131354 A KR 1020160131354A KR 20160131354 A KR20160131354 A KR 20160131354A KR 20160135681 A KR20160135681 A KR 20160135681A
Authority
KR
South Korea
Prior art keywords
corner
curvature
circular
border
circular portion
Prior art date
Application number
KR1020160131354A
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 애플 인크.
Publication of KR20160135681A publication Critical patent/KR20160135681A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • 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/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
    • 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

Abstract

그래픽 사용자 인터페이스(GUI) 내에 컨트롤들 및 지시자들의 테두리들을 렌더링하기 위한 시스템들 및 방법들이 설명되며, 따라서 렌더링된 테두리들은 연속적인 곡률들을 갖는다. 일 태양에서, 방법은 GUI 내에 표현될 GUI 요소의 테두리를 생성하는 단계를 포함한다. 테두리는 제1 직선 변, 제2 직선 변, 및 제1 직선 변과 상기 제2 직선 변을 함께 연결하는 코너 부분을 포함하여, 제1 직선 변, 코너 부분 및 제2 직선 변을 포함하는 테두리의 일부는 연속적이며, 연속적인 곡률을 갖는다. 또한, 방법은 GUI 내에 GUI 요소를 표현하는 단계를 포함한다.

Description

그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링{RENDERING BORDERS OF ELEMENTS OF A GRAPHICAL USER INTERFACE}
본 발명은 일반적으로 그래픽 사용자 인터페이스(graphical user interface) 내의 컨트롤(control)들 및 지시자(indicator)들의 테두리(border)들의 렌더링에 관한 것으로, 더 구체적으로는 연속적인 곡률들을 갖는 테두리들의 렌더링에 관한 것이다.
그래픽 사용자 인터페이스(GUI)는 운영 체제 객체들의 다수의 그래픽 표현이 디스플레이 스크린 상에 동시에 렌더링되는 것을 가능하게 한다. 시스템 객체들, 예를 들어 컨트롤들 및 지시자들의 그래픽 표현들은 사용자의 요구에 따라 GUI 내에 표시될 수 있다. GUI 지시자들의 예들은 경고들, 윈도우들, 및 파일들 및/또는 하드웨어를 표현하는 아이콘들을 포함한다. GUI 컨트롤들의 예들은 애플리케이션들 및 운영 체제 기능들을 표현하는 아이콘들, 작업 바들, 메뉴들, 가상 버튼들 및 키보드 표현을 포함한다. 일반적으로, GUI 컨트롤들은 표시된 표현들에 대응하는 시스템 객체들의 액세스, 활성화 또는 둘 모두를 행하기 위한 메커니즘들을 제공한다.
통상적으로 운영 체제 객체들 또는 간단히 GUI 요소들의 그래픽 표현들은 즐거운 사용자 경험에 도움이 되는 방식으로 GUI 내에 표시된다. GUI의 심미적 양태들은 그러한 즐거운 사용자 경험에 기여할 수 있다. 일부 GUI들의 심미적 양태는 예리한 코너들을 갖는 각각의 테두리들 내에 GUI 요소들을 렌더링하는 것을 포함하여, 각각의 테두리의 인접하는 직선 변들은 한 점에서 만난다. 이 경우, 이러한 GUI들 내에 렌더링된 GUI 요소는 코너들에서 불연속적인 기울기를 갖는 연속적인 테두리를 갖는다. 테두리의 기울기는 테두리를 표현하는 기하 함수의 1차 도함수로서 결정된다.
다른 GUI들의 다른 심미적 양태는 둥근 코너들을 갖는 각각의 테두리 내에 GUI 요소들을 렌더링하는 것을 포함하여, 각각의 테두리의 인접하는 직선 변들은 타원호, 예로서 원호를 통해 서로 연결된다. 이 경우, 후자의 GUI들 내에 렌더링된 GUI 요소에 대해, 테두리 및 그의 기울기 둘 모두는 연속적이다.
본 명세서에서 설명되는 시스템들 및 기술들은 그래픽 사용자 인터페이스 내에 컨트롤 또는 지시자의 테두리를 렌더링하는 데 사용될 수 있으며, 여기서 테두리는 하나 이상의 둥근 코너를 가져서, 테두리 및 그의 곡률은 연속적이다. 테두리의 곡률은 테두리를 표현하는 기하 함수의 2차 도함수로부터 결정된다.
일반적으로, 본 명세서에서 설명되는 본 발명의 일 태양은 시스템에서 구현될 수 있으며, 이 시스템은 하나 이상의 프로세서; 및 하나 이상의 하드웨어 프로세서에 의해 실행될 때, 시스템으로 하여금 시스템과 연관된 디스플레이 디바이스 상에 테두리를 렌더링하게 하는 명령어들을 인코딩한 비일시적 컴퓨터 판독가능 매체를 포함한다. 테두리는 제1 직선 변, 제2 직선 변, 및 제1 직선 변과 제2 직선 변을 함께 연결하는 코너 부분을 포함하여, 제1 직선 변, 코너 부분 및 제2 직선 변을 포함하는 테두리의 일부는 연속적이며, 연속적인 곡률을 갖는다.
상기 및 다른 구현예들은 각각 선택적으로 하기 특징들 중 하나 이상을 단독으로 또는 조합하여 포함할 수 있다. 일부 구현예들에서, 코너 부분은 제1 비원형 부분(non-circular portion) 및 제2 비원형 부분을 포함할 수 있어서, 제1 및 제2 비원형 부분들의 근단(proximate end)들은 공통 곡률을 가지며, 원단(distal end)들은 0의 곡률을 갖는다.
일부 구현예들에서, 코너 부분은 공통 곡률에 대응하는 반경을 갖는 원형 부분을 포함할 수 있고, 원형 부분은 제1 비원형 부분을 통해 제1 직선 변과 그리고 제2 비원형 부분을 통해 제2 직선 변과 연결될 수 있다. 예를 들어, 조합된 제1 및 제2 비원형 부분들의 길이는 코너 부분의 길이의 지정된 분율(fraction)일 수 있다. 더욱이, 원형 부분의 반경 및 분율은 사전에 지정될 수 있다.
일부 구현예들에서, 제1 및 제2 비원형 부분들은 B-스플라인(B-spline) 곡선들일 수 있다. 예를 들어, B-스플라인 곡선들은 베지어(Bezier) 곡선들이다. 더욱이, 베지어 곡선들은 3차 베지어 곡선들일 수 있다. 다른 예로서, B-스플라인 곡선들은 불균일 유리 기저 스플라인(non-uniform rational basis spline, NURBS) 곡선들이다. 일부 구현예들에서, 제1 및 제2 비원형 부분들은 오일러 나선(Euler spiral)들의 부분들일 수 있다.
일부 구현예들에서, 테두리는 그래픽 사용자 인터페이스(GUI) 내에 렌더링될 수 있다. 예를 들어, 테두리는 GUI의 아이콘 표현의 일부이다. 다른 예로서, GUI는 키보드 표현을 포함할 수 있으며, 테두리는 키보드 표현의 복수의 키 중 하나의 키의 표현의 일부이다. 또 다른 예로서, 테두리는 GUI의 텍스트 박스 표현의 일부이다. 다른 예로서, 테두리는 GUI의 이미지 표현의 일부이다.
일반적으로, 본 명세서에서 설명되는 본 발명의 다른 태양은 그래픽 사용자 인터페이스(GUI) 내에 렌더링될 컨트롤 또는 지시자의 테두리를 생성하기 위한 수단을 포함하는 시스템에서 구현될 수 있다. 테두리는 제1 직선 변, 제2 직선 변, 및 제1 직선 변과 제2 직선 변을 함께 연결하는 코너 부분을 포함하여, 제1 직선 변, 코너 부분 및 제2 직선 변을 포함하는 테두리의 일부는 연속적이며, 연속적인 곡률을 갖는다. 시스템은 또한 GUI 내에 컨트롤 또는 지시자의 테두리를 렌더링하기 위한 하드웨어 프로세서를 포함한다.
상기 및 다른 구현예들은 각각 선택적으로 하기 특징들 중 하나 이상을 단독으로 또는 조합하여 포함할 수 있다. 일부 구현예들에서, 코너 부분은 제1 비원형 부분 및 제2 비원형 부분을 포함할 수 있어서, 제1 및 제2 비원형 부분들의 근단들은 공통 곡률을 가지며, 원단들은 0의 곡률을 갖는다.
일부 구현예들에서, 테두리를 생성하기 위한 수단은 (A) 조합된 제1 및 제2 비원형 부분들의 길이에 의해 표현되는 코너 부분의 길이의 분율, 및 (B) 공통 곡률에 대응하는 반경의 사양을 수신하고; (i) 자신의 단부 지점들 사이의 중간에 위치하는 지점에서 지정된 반경에 대응하는 최대 곡률, (ii) 단부 지점들에서 0의 곡률, 및 (iii) 코너 부분의 길이의 분율과 동일한 길이를 갖는 베지어 곡선을 결정하고; (I) 베지어 곡선의 절반으로서의 제1 비원형 부분 및 (II) 제1 및 제2 직선 변들 사이의 각도의 2등분선에 대한 베지어 곡선의 절반의 거울 대칭 사례(mirrored-instance)로서의 제2 비원형 부분을 생성하도록 구성될 수 있어서, 제1 및 제2 비원형 부분들 각각은 하나의 단부에서 0의 곡률 및 나머지 단부에서 지정된 반경에 대응하는 공통 곡률을 갖는다. 예를 들어, 베지어 곡선은 3차 베지어 곡선이다.
일부 구현예들에서, 코너 부분은 공통 곡률에 대응하는 반경을 갖는 원형 부분을 추가로 포함할 수 있고, 원형 부분은 제1 비원형 부분을 통해 제1 직선 변과 그리고 제2 비원형 부분을 통해 제2 직선 변과 연결될 수 있다. 예를 들어, 원형 부분은 원호이다. 다른 예로서, 원형 부분은 B-스플라인 곡선에 의해 근사화된다.
일반적으로, 본 명세서에서 설명되는 본 발명의 다른 태양은 그래픽 사용자 인터페이스(GUI) 내에 표현될 컨트롤 또는 지시자의 테두리를 생성하는 단계를 포함하는 방법에서 구현될 수 있다. 테두리는 제1 직선 변, 제2 직선 변, 및 제1 직선 변과 제2 직선 변을 함께 연결하는 코너 부분을 포함하여, 제1 직선 변, 코너 부분 및 제2 직선 변을 포함하는 테두리의 일부는 연속적이며, 연속적인 곡률을 갖는다. 또한, 방법은 GUI 내에 컨트롤 또는 지시자의 테두리를 표현하는 단계를 포함한다.
상기 및 다른 구현예들은 각각 선택적으로 하기 특징들 중 하나 이상을 단독으로 또는 조합하여 포함할 수 있다. 일부 구현예들에서, 코너 부분은 제1 비원형 부분 및 제2 비원형 부분을 포함할 수 있고, 테두리를 생성하는 단계는 원단들에서 0의 곡률 및 근단들에서 공통 곡률을 갖도록 제1 및 제2 비원형 부분들을 배열하는 단계를 포함한다.
일부 구현예들에서, 테두리를 생성하는 단계는 (A) 조합된 제1 및 제2 비원형 부분들의 길이에 의해 표현되는 코너 부분의 길이의 분율, 및 (B) 공통 곡률에 대응하는 반경의 사양을 수신하는 단계; (i) 자신의 단부 지점들 사이의 중간에 위치하는 지점에서 지정된 반경에 대응하는 최대 곡률, (ii) 단부 지점들에서 0의 곡률, 및 (iii) 코너 부분의 길이의 분율과 동일한 길이를 갖는 B-스플라인 곡선을 결정하는 단계; 및 (I) B-스플라인 곡선의 절반으로서의 제1 비원형 부분 및 (II) 제1 및 제2 직선 변들 사이의 각도의 2등분선에 대한 B-스플라인 곡선의 절반의 거울 대칭 사례로서의 제2 비원형 부분을 생성하는 단계를 포함하여, 제1 및 제2 비원형 부분들 각각은 하나의 단부에서 0의 곡률 및 나머지 단부에서 지정된 반경에 대응하는 공통 곡률을 갖는다. 예를 들어, B-스플라인 곡선은 베지어 곡선이다. 더욱이, 베지어 곡선은 3차 베지어 곡선일 수 있다.
일부 구현예들에서, 코너 부분은 공통 곡률에 대응하는 반경을 갖는 원형 부분을 포함할 수 있고, 테두리를 생성하는 단계는 원형 부분을 제1 비원형 부분을 통해 제1 직선 변과 그리고 제2 비원형 부분을 통해 제2 직선 변과 연결하는 단계를 포함한다. 예를 들어, 테두리를 생성하는 단계는 원형 부분을 원호로서 생성하는 단계를 포함한다. 다른 예로서, 테두리를 생성하는 단계는 원형 부분을 B-스플라인 곡선으로서 생성하는 단계를 포함한다.
본 명세서에서 설명되는 본 발명의 특정 구현예들은 하기 잠재적인 이점들 중 하나 이상을 실현하도록 구성될 수 있다. 개시되는 제1 및 제2 비원형 부분들을 포함하는 둥근 코너들을 갖는 각각의 테두리 내에서 GUI 내에 렌더링되는 컨트롤들 및/또는 지시자들의 표현들은 타원호들에 의해 정의되는 둥근 코너들을 갖는 각각의 테두리 내에서 GUI 내에 렌더링되는 동일 컨트롤들 및/또는 지시자들의 표현들에 비해 더 양호한 사용자 경험을 잠재적으로 유발할 수 있다. 전자의 경우에서의 더 양호한 사용자 경험에 대한 이유는 개시되는 테두리들과 같이 연속적인 곡률을 갖는 테두리의 표현이 각각의 둥근 코너에 대해 2개의 곡률 불일치를 갖는 테두리의 표현에 비해 심미적으로 더 즐거운 경향이 있다는 것이다. 후자의 경우, 테두리의 인접하는 직선 변들이 코너의 타원호와 만나는 곳에서 곡률 불일치들이 발생한다.
첨부 도면들과 하기의 설명에서는 설명되는 본 발명의 하나 이상의 구현예의 세부 사항들이 제시된다. 이 설명, 도면들 및 특허청구범위로부터 다른 특징들, 태양들 및 잠재적인 이점들이 분명해질 것이다.
<도 1a>
도 1a는 연속적인 곡률들을 갖는 테두리들을 구비하는 GUI 요소들을 렌더링하는 데 사용되는 시스템의 일례를 나타내는 도면.
<도 1b 내지 도 1d>
도 1b 내지 도 1d는 도 1a에 예시된 시스템에 의해 렌더링되는 GUI 요소에 대한 테두리의 둥근 코너들의 예들을 나타내는 도면.
<도 2>
도 2는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리를 렌더링하는 데 사용되는 시스템의 일례의 블록도.
<도 3a 및 도 3b>
도 3a 및 도 3b는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리의 코너를 라운딩하는(round) 데 사용되는 프로세스의 태양들을 나타내는 도면.
<도 4a 내지 도 4c>
도 4a 내지 도 4c는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리의 코너를 렌더링하는 데 사용되는 시스템의 태양들을 나타내는 도면.
<도 5>
도 5는 도 1 내지 도 4와 관련하여 전술한 기술들에 따라 동작하는 컴퓨터 시스템의 일례의 블록도.
다양한 도면들에서 동일한 도면 부호들 및 명칭들은 동일한 요소들을 나타낸다.
도 1a는 연속적인 곡률들을 갖는 테두리들을 구비하는 GUI 요소들을 렌더링하는 데 사용되는 시스템(100)의 일례를 나타낸다. 시스템(100)은 하나 이상의 컴퓨터 시스템(105)을 포함한다. 컴퓨터 시스템(105)은 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 워크스테이션, 미디어 플레이어 디바이스 또는 착용가능 컴퓨터를 포함할 수 있다. 컴퓨터 시스템들(105)의 다른 예들은 그들의 다수의 컴포넌트와 함께 도 5와 관련하여 아래에서 상세히 설명된다.
컴퓨터 시스템(105)은 하나 이상의 하드웨어 프로세서 및 적어도 하나의 디스플레이 디바이스를 포함한다. 하나 이상의 하드웨어 프로세서는 컴퓨터 시스템(105)의 사용자가 그와 상호작용할 수 있게 하는 하나 이상의 GUI를 디스플레이 디바이스 상에 표시하도록 구성된다. 예를 들어, 사용자로 하여금 컴퓨터 시스템(105) 및/또는 컴퓨터 시스템(105) 상에서 실행될 수 있는 애플리케이션들의 기능들에 액세스하는 것을 가능하게 하는 GUI(110)가 컴퓨터 시스템(105)의 디스플레이 디바이스 상에 표시된다. GUI(110)는 운영 체제-레벨 GUI를 나타낸다. 이 경우, 도 1a에 도시된 GUI(110)의 부분 내에 표현된 GUI 요소들은 애플리케이션들의 아이콘들(115)이다. 도 1a에는 도시되지 않았지만, GUI(110)의 다른 요소들은 통지 지시자, 작업 바 등일 수 있다.
다른 예로서, 사용자가 아이콘(115)과 연관된 애플리케이션을 선택하면, 컴퓨터 시스템(105)의 디스플레이 디바이스 상에 GUI(115')가 표시된다. 일부 구현예들에서, 컴퓨터 시스템(105)이 단일 디스플레이 디바이스를 구비할 때, GUI들(110, 115')은 순차적으로 표시된다. 다른 구현예들에서, 컴퓨터 시스템(105)이 예를 들어 스마트폰 및 다른 착용가능 컴퓨팅 디바이스를 포함할 때, GUI들(110, 115')은 동시에 표시될 수 있는데, 하나는 스마트폰의 디스플레이 디바이스 상에 표시되고, 다른 하나는 착용가능 컴퓨팅 디바이스의 디스플레이 디바이스 상에 표시될 수 있다.
GUI(115')는 애플리케이션-레벨 GUI를 나타낸다. 이 경우, 도 1a에 도시된 GUI(115')의 부분 내에 표현된 GUI 요소들은 특히 텍스트 지시자들(117), 이미지 지시자들(119), 및 이 경우에 키보드의 표현인 텍스트 입력 컨트롤(120)이다. 키보드 표현(120)은 키들(123)의 표현들을 포함하는 다중 요소 GUI 컨트롤이며, 따라서 각각의 키 표현은 사용자로 하여금 이 경우에 애플리케이션(115)에 의한 사용을 위해 컴퓨터 시스템(105)에 연관 영숫자 문자를 제공하는 것을 가능하게 한다.
컨트롤들(115, 120, 123)은 하나 이상의 하드웨어 프로세서에 의해 GUI들(110, 115') 내에 각각의 테두리 내에서 렌더링되는 GUI 요소들의 예들이며, 따라서 각각의 테두리는 둥근 코너들(130)을 갖고, 테두리 및 그의 곡률 둘 모두는 연속적이다. 지시자들(117, 119)은 하나 이상의 하드웨어 프로세서에 의해 GUI(115') 내에 각각의 테두리 내에서 렌더링되는 GUI 요소들의 예들이며, 따라서 각각의 테두리는 3개의 둥근 코너(130)를 갖고, 나머지 코너는 콜-아웃(call-out)으로서 형상화된다. 이 경우, 테두리는 연속적이며, 콜-아웃 형상의 코너를 제외한 테두리의 일부의 곡률도 연속적이다. 테두리의 곡률은 테두리를 표현하는 기하 함수의 2차 도함수로부터 결정된다는 점에 유의한다.
도 1a는 둥근 코너(130)의 근처에 GUI 요소에 대한 테두리의 줌인 뷰를 추가로 나타낸다. 여기서, 참조를 위해 데카르트 좌표계가 제공된다. 테두리의 이 부분은 테두리의 제1 직선 변(132)의 일부, 둥근 코너(130), 및 제1 직선 변(132)에 인접하는, 테두리의 제2 직선 변(134)의 일부를 포함한다. 이 예는 테두리의 좌하 코너를 나타내므로, 제1 직선 변(132)은 x축을 따라 (제2 직선 변(134)의 동쪽에 위치하고, 도 1a에 도시되지 않은) 테두리의 우하 코너로부터 지점 C까지 연장한다. 또한, 제2 직선 변(134)은 y축을 따라 (제1 직선 변(132)의 북쪽에 위치하고, 도 1a에 도시되지 않은) 테두리의 좌상 코너로부터 지점 D까지 연장한다. 코너 부분(130)으로도 지칭되는 둥근 코너(130)는 제1 및 제2 직선 변들(132, 134)을 함께 연결하며, 지점 C로부터 지점 D까지 연장한다. 더욱이, 코너 부분(130)은 제1 직선 변(132), 코너 부분(130) 및 제2 직선 변(134)을 포함하는 테두리의 부분이 연속적이고 연속적인 곡률을 갖도록 형상화된다.
코너 부분(130)은 제1 비원형 부분(138) 및 제2 비원형 부분(139)을 포함한다. 더욱이, 제1 및 제2 비원형 부분들(138, 139)은 제1 및 제2 비원형 부분들(138, 139)의 근단들이 공통 곡률을 갖고 원단들이 0의 곡률을 갖도록 형상화되고 배열된다. 도 1a에 도시된 예에서, 제1 비원형 부분(138)은 지점 C로부터 지점 A까지 연장하며, 제2 비원형 부분(139)은 지점 B로부터 지점 D까지 연장한다. 제1 비원형 부분(138)(또는 제2 비원형 부분(139))의 곡률은 제1 비원형 부분(138)을 표현하는 기하 함수(또는 제2 비원형 부분(139)을 표현하는 다른 기하 함수)의 2차 도함수로부터 결정된다는 점에 유의한다.
선택적으로, 코너 부분(130)은 제1 및 제2 비원형 부분들(138, 139)을 함께 연결하는 원형 부분(136)을 추가로 포함한다. 도 1a에 도시된 예에서, 원형 부분(136)은 지점 A로부터 지점 B까지 연장하며, 공통 곡률에 대응하는 반경("r")을 갖는 원호일 수 있다.
제1 비원형 부분(138)은 그의 단부 지점 C에서 0의 곡률을 갖도록 형상화되며, 여기서 이는 제1 직선 변(132)에 연결된다. 제1 비원형 부분(138)의 곡률은 제1 직선 변(132)의 0의 곡률과 일치하므로, 테두리는 지점 C에서 연속적인 곡률을 갖는다. 더욱이, 지점 C에서의 테두리의 곡률의 반경은 무한 값을 갖는다. 또한, 제1 비원형 부분(138)의 곡률은 연속적으로 변하여, 제1 비원형 부분(138)의 단부 지점 A에서 최대 절대 곡률 값에 도달하도록 구성된다. 전술한 바와 같이, 제1 비원형 부분(138)에 대한 지점 A에서의 최대 절대 곡률 값은 제2 비원형 부분(139)에 대한 지점 B에서의 절대 곡률 값과 동일하다. 더욱이, 지점 A에서의 테두리의 곡률 반경은 최소 값("r")을 갖는다.
제2 비원형 부분(139)은 제2 비원형 부분(139)의 단부 지점 B에서 최대 절대 곡률 값을 갖도록 형상화된다. 전술한 바와 같이, 제2 비원형 부분(139)에 대한 지점 B에서의 최대 절대 곡률 값은 제1 비원형 부분(138)에 대한 지점 A에서의 절대 곡률 값과 동일하다. 더욱이, 지점 B에서의 테두리의 곡률 반경은 최소 값("r")을 갖는다. 또한, 제2 비원형 부분(139)의 곡률은 연속적으로 변하여, 제2 비원형 부분(139)의 단부 지점 D에서 0이 되도록 구성된다. 제2 비원형 부분(139)은 그의 단부 지점 D에서 제2 직선 변(134)에 연결된다. 제2 비원형 부분(139)의 곡률은 제2 직선 변(134)의 0의 곡률과 일치하므로, 테두리는 지점 D에서 연속적인 곡률을 갖는다. 더욱이, 지점 D에서의 테두리의 곡률 반경은 무한 값을 갖는다.
일부 구현예들에서, 지점 A로부터 지점 B까지 연장하는 원형 부분(136)은 코너 부분(130)에 대한 최대 절대 곡률 값, 즉 제1 비원형 부분(138)에 대한 지점 A 및 제2 비원형 부분(139)에 대한 지점 B에서의 공통 절대 곡률 값과 동일한 일정한 곡률 값을 갖는 원호에 의해 표현된다. 이와 달리, 원형 부분(136)에 대한 곡률 반경은 코너 부분(130)에 대한 최소 반경, 즉 제1 비원형 부분(138)에 대한 지점 A 및 제2 비원형 부분(139)에 대한 지점 B에서의 공통 곡률 반경 값과 동일한 "r"의 일정한 값을 갖는다.
더욱이, 제1 및 제2 비원형 부분들(138, 139)에 의해 표현되는 둥근 코너(130)의 비원형 분율("f")은 1 이상의 유한 (0이 아닌) 값을 가질 수 있다. 도 1a에 예시된 예에서, 둥근 코너(130)의 비원형 분율은 f ≒ 0.67이다. 즉, 제1 비원형 부분(138)의 길이(AC)와 제2 비원형 부분(139)의 길이(BD)의 합은 둥근 코너(130)의 길이(CD)의 약 2/3에 해당한다. 이 경우, 원형 부분(136)의 길이(AB)는 둥근 부분(130)의 길이(CD)의 약 1/3에 해당한다.
도 1b는 도 1a에 예시된 시스템에 의해 렌더링되는 GUI 요소에 대한 테두리의 둥근 코너의 다른 예(130-b)를 나타낸다. 도 1b에 예시된 예에서, 둥근 코너(130-b)의 비원형 분율(fb)은 fb = 1이다. 즉, 둥근 코너(130)(CD)는 (C로부터 A까지 연장하는) 제1 비원형 부분(138-b) 및 (A로부터 D까지 연장하는) 제2 비원형 부분(139-b)으로 구성된다. 이 경우, 둥근 코너(130-b)는 원형 부분을 갖지 않거나, 대안적으로 둥근 코너(130-b)의 원형 부분은 하나의 지점 A로 소실되었다(collapsed).
도 1c는 도 1a에 예시된 시스템에 의해 렌더링되는 GUI 요소에 대한 테두리의 둥근 코너의 또 다른 예(130-c)를 나타낸다. 도 1c에 예시된 예에서, 둥근 코너(130-c)의 비원형 분율(fc)은 fc ≒ 0.9이다. 즉, 제1 비원형 부분((138-c)의 길이(AC)와 제2 비원형 부분(139-c)의 길이(BD)의 합은 둥근 코너(130-c)의 길이(CD)의 약 9/10에 해당한다. 이 경우, 원형 부분(136-c)의 길이(AB)는 둥근 코너(130-c)의 길이(CD)의 약 1/10에 해당한다.
도 1d는 상이한 유형의 둥근 코너(130-d)를 갖는 GUI 요소에 대한 테두리의 일부를 나타낸다. 둥근 코너(130-d)는 제1 및 제2 직선 변들(132, 134)을 함께 연결하도록 배열되며, 지점 A로부터 지점 B까지 연장한다. 그러나, 이 경우, 둥근 코너(130-d)는 유한 (무한대가 아닌) 반경("r")을 갖는 원호(136-d)로서 형상화된다. 이러한 방식으로, 제1 직선 변(132)은 일정한 0의 곡률을 가져서, 지점 A의 우측의 테두리의 곡률은 0이다. 원호(136-d)는 일정한 유한 (0이 아닌) 곡률을 가져서, 지점 A의 좌측에 대한 테두리의 곡률은 0이 아니며, 유한 곡률 반경("r")에 대응한다. 따라서, 둥근 코너(130-d)를 갖는 테두리는 지점 A에서 불연속적인 곡률을 갖는다. 유사하게, 제2 직선 변(134)은 일정한 0의 곡률을 가져서, 지점 B 위의 테두리의 곡률은 0이다. 원호(136-d)는 일정한 유한 (0이 아닌) 곡률을 가져서, 지점 B 아래의 테두리의 곡률은 0이 아니고, 유한 곡률 반경("r")에 대응한다. 따라서, 둥근 코너(130-d)를 갖는 테두리는 또한 지점 B에서 불연속적인 곡률을 갖는다.
이제, 도 1a, 도 1b 및 도 1c에 예시된 것들과 같이 연속적인 곡률을 갖는 테두리들을 생성하고 렌더링하기 위한 시스템들 및 기술들이 설명된다.
도 2는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리를 렌더링하는 데 사용되는 시스템(200)의 일례의 블록도이다. 일부 구현예들에서, 시스템(200)은 하드웨어에서 하나 이상의 특수 목적 칩으로서 구현된다. 다른 구현예들에서, 시스템(200)은 하나 이상의 범용 칩(예로서, 중앙 처리 유닛, 그래픽 처리 유닛 또는 둘 모두)에 의해 실행되는 소프트웨어에서 구현된다. 일부 구현예들에서, 시스템(200)은 하드웨어와 소프트웨어의 조합으로서 구현된다. 시스템(200)은 도 1a와 관련하여 전술한 시스템(100)과 연계하여 동작할 수 있다. 일부 구현예들에서, 시스템(200)은 시스템(100)의 일부일 수 있다.
시스템(200)은 코너 생성기 모듈(210) 및 테두리 렌더러(renderer) 모듈(230)을 포함한다. 코너 생성기 모듈(210)은 입력 데이터(205)를 수신하거나 액세스하고, GUI 요소에 대한 연속적인 곡률을 갖는 테두리에 대한 코너 부분 데이터(215)를 생성하도록 구성된다. 도 2에 예시된 예에서, 입력 데이터(205)는 코너 부분의 최대 곡률에 대응하는 곡률 반경(r) 및 코너 부분의 비원형 분율 0 < f ≤ 1을 포함한다.
입력 데이터(205)에서 참조되는 비원형 분율이 1보다 작을 때, 즉 f < 1일 때, 코너 생성기 모듈(210)은 제1 및 제2 비원형 부분들 및 원형 부분을 포함하는 코너 부분에 대한 데이터(215)를 생성한다. 원형 부분은 제1 비원형 부분을 통해 코너 부분에 인접하는 테두리의 제1 직선 변에 그리고 제2 비원형 부분을 통해 코너 부분에 인접하는 테두리의 제2 직선 변에 연결된다. 원형 부분의 반경은 입력 데이터(205)에서 참조되는 곡률 반경과 동일하다. 제1 및 제2 비원형 부분들의 곡률들은 0으로부터 입력 데이터(205)에서 참조되는 곡률 반경에 대응하는 최대 곡률 값까지 계속 증가한다. 이러한 방식으로, (i) 제1 직선 변, (ii) 코너 부분 데이터(215)에 대응하는 코너 부분 및 (iii) 제2 직선 변을 포함하는 테두리의 일부는 연속적인 곡률을 갖는다. 예를 들어, 비원형 분율이 f ≒ 0.67일 때, 코너 생성기 모듈(210)은 도 1a와 관련하여 전술한 코너 부분(130)과 같은 코너 부분에 대한 데이터(215)를 생성한다. 다른 예로서, 비원형 분율이 f ≒ 0.9일 때, 코너 생성기 모듈(210)은 도 1c와 관련하여 전술한 코너 부분(130-c)과 같은 코너 부분에 대한 데이터(215)를 생성한다.
비원형 분율이 1과 동일할 때, 즉 f = 1일 때, 코너 생성기 모듈(210)은 코너 부분에 인접하는 테두리의 제1 직선 변에 연결된 제1 비원형 부분 및 코너 부분에 인접하는 테두리의 제2 직선 변에 연결된 제2 비원형 부분으로 구성되는 코너 부분에 대한 데이터(215)를 생성한다. 제1 및 제2 비원형 부분들의 곡률들은 0으로부터 입력 데이터(205)에서 참조되는 곡률 반경에 대응하는 최대 곡률 값까지 계속 증가한다. 이 경우, 제1 및 제2 비원형 부분들은 코너 부분의 곡률이 최대 곡률 값을 갖는 지점에서 연결된다. 이러한 방식으로, (i) 제1 직선 변, (ii) 코너 부분 데이터(215)에 대응하는 코너 부분 및 (iii) 제2 직선 변을 포함하는 테두리의 일부는 연속적인 곡률을 갖는다. 예를 들어, 비원형 분율이 f = 1일 때, 코너 생성기 모듈(210)은 도 1b와 관련하여 전술한 코너 부분(130-b)과 같은 코너 부분에 대한 데이터(215)를 생성한다.
도 1a, 도 1b 및 도 1c를 다시 참조하면, 제2 비원형 부분들(139, 139-b, 139-c) 각각은 각각의 코너 부분(130, 130-b, 130-c)에 인접하는 제1 및 제2 직선 변들(132, 134)에 의해 형성되는 각도의 2등분선에 대한 각각의 제1 비원형 부분(138, 138-b, 138-c)의 거울 대칭 사례라는 점에 유의한다. 따라서, 코너 생성기 모듈(210)은 코너 부분의 제1 비원형 부분에 대응하는 코너 부분 데이터(215)의 제1 서브세트를 생성한다. 제1 비원형 부분에 대응하는 코너 부분 데이터(215)의 제1 서브세트를 생성하기 위해 코너 생성기 모듈(210)에 의해 사용될 수 있는 프로세스의 일례가 도 3a 및 도 3b와 관련하여 아래에 설명된다. 이어서, 코너 생성기 모듈(210)은 제1 비원형 부분에 대응하는 코너 부분 데이터(215)의 생성된 제1 서브세트에 거울 대칭 변환(mirror transformation)을 적용하여 코너 부분의 제2 비원형 부분에 대응하는 코너 부분 데이터(215)의 제2 서브세트를 생성할 수 있다. 거울 대칭 변환의 대칭축은 제1 및 제2 직선 변들(132, 134) 사이의 각도의 2등분선이다.
일부 구현예들에서, 코너 부분의 제1 및 제2 비원형 부분들은 B-스플라인 곡선들이다. 일부 경우들에서, B-스플라인 곡선들은 불균일 유리 기저 스플라인(NURBS) 곡선들이다. 다른 경우들에서, B-스플라인 곡선들은 베지어 곡선들이다. 이러한 구현예들에서, 코너 생성기 모듈(210)에 의해 생성되는 코너 부분 데이터(215)는 코너 부분의 제1 및 제2 비원형 부분들에 대응하는 B-스플라인 곡선들에 대한 제어 지점들의 각각의 세트를 포함한다. 예를 들어, 도 3a 및 도 3b는 (i) 제1 비원형 부분에 대응하는 제1 3차 베지어 곡선의 제1 제어 지점들 및 (ii) 제2 비원형 부분에 대응하는 제2 3차 베지어 곡선의 제2 제어 지점들을 생성하기 위해 코너 생성기 모듈(210)에 의해 실행되는 프로세스의 태양들을 도시한다.
다른 구현예들에서, 코너 부분의 제1 및 제2 비원형 부분들은 (코르뉴(Cornu) 나선들로도 알려진) 오일러 나선들이다. 이 경우, 코너 생성기 모듈(210)에 의해 생성되는 코너 부분 데이터(215)는 둥근 코너의 제1 및 제2 비원형 부분들에 대응하는 오일러 나선들의 부분들에 대한 제어 지점들의 각각의 세트를 포함한다.
일부 구현예들에서, 코너 생성기 모듈(210)은 둥근 코너의 원형 부분에 대응하는 코너 부분 데이터(215)의 서브세트를 입력 데이터(205)에서 참조되는 곡률 반경과 동일한 반경을 갖는 원호에 대한 제어 지점들로서 생성한다. 다른 구현예들에서, 코너 생성기 모듈(210)은 둥근 코너의 원형 부분에 대응하는 코너 부분 데이터(215)의 다른 서브세트를 입력 데이터(205)에서 참조되는 곡률 반경과 동일한 곡률을 갖는 원호를 근사화하는 베지어 곡선에 대한 제어 지점들로서 생성한다.
테두리 렌더러 모듈(220)은 코너 생성기 모듈(210)에 의해 생성된 코너 부분 데이터(215)를 수신 또는 액세스하고, GUI 요소에 대한 연속적인 곡률을 갖는 테두리를 렌더링하도록 구성된다. 테두리 렌더러 모듈(220)은 N번의 반복을 갖는 루프를 포함하며, N번의 반복 각각은 테두리의 N개의 둥근 코너들 중 하나 및 테두리의 인접하는 직선 변의 렌더링에 대응한다.
예를 들어, 제1 반복 동안, 테두리 렌더러 모듈(220)은 제1 비원형 부분에 대응하는 코너 부분 데이터(215)의 제1 서브세트를 사용하여 제1 둥근 코너의 제1 비원형 부분을 렌더링한다. 이어서, 테두리 렌더러 모듈(220)은 원형 부분에 대응하는 코너 부분 데이터(215)의 제2 서브세트를 사용하여 제1 둥근 코너의 원형 부분을 렌더링한다. 이어서, 테두리 렌더러 모듈(220)은 제2 비원형 부분에 대응하는 코너 부분 데이터(215)의 제3 서브세트를 사용하여 제1 둥근 코너의 제2 비원형 부분을 렌더링한다. 제1 둥근 코너가 렌더링되면, 테두리 렌더러 모듈(220)은 제1 반복 동안 제1 둥근 코너에 인접하는 테두리의 제1 직선 변을 렌더링할 수 있다.
제2 반복 동안, 테두리 렌더러 모듈(220)은 제1 비원형 부분에 대응하는 코너 부분 데이터(215)의 제1 서브세트를 변환(예로서, 병진 이동 및 회전)한 후, 변환된 제1 서브세트를 사용하여 제2 둥근 코너의 제1 비원형 부분을 렌더링한다. 이어서, 테두리 렌더러 모듈(220)은 원형 부분에 대응하는 코너 부분 데이터(215)의 제2 서브세트를 변환(예로서, 병진 이동 및 회전)한 후, 변환된 제2 서브세트를 사용하여 제2 둥근 코너의 원형 부분을 렌더링한다. 이어서, 테두리 렌더러 모듈(220)은 제2 비원형 부분에 대응하는 코너 부분 데이터(215)의 제3 서브세트를 변환(예로서, 병진 이동 및 회전)한 후, 변환된 제3 서브세트를 사용하여 제2 둥근 코너의 제2 비원형 부분을 렌더링한다. 제2 둥근 코너가 렌더링되면, 테두리 렌더러 모듈(220)은 제2 반복 동안 제2 둥근 코너에 인접하는 테두리의 제2 직선 변을 렌더링할 수 있다.
기타, 나머지 반복들은 제1 및 제2 반복들과 관련하여 전술한 것과 유사한 방식으로 수행될 수 있다. 루프의 종료 시에, 테두리 렌더러 모듈(220)은 GUI 요소에 대한 연속적인 곡률을 갖는 테두리의 렌더링을 완료한다.
도 3a 및 도 3b는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리의 코너를 라운딩하는 데 사용되는 정보를 생성하기 위한 프로세스(300)의 태양들을 나타낸다. 일부 구현예들에서, 프로세스(300)는 도 2와 관련하여 전술한 코너 생성기 모듈(210)에 의해 실행될 수 있다. 이 경우, 코너 생성기 모듈(210)은 프로세스(300)를 입력 데이터(205)에 적용하고, GUI 요소에 대한 연속적인 곡률을 갖는 테두리에 대한 코너 부분 데이터(215)를 출력한다. 일부 구현예들에서, 프로세스(300)는 도 1a와 관련하여 전술한 시스템(100)과 관련하여 실행될 수 있다. 이 경우, 컴퓨터 시스템(105)은 프로세스(300)를 적용하여, GUI 요소들의 연속적인 곡률을 갖는 테두리들에 대한 코너 부분들(130, 130-b, 130-c)을 렌더링하는 데 사용되는 정보를 생성한다.
도 3a는 프로세스(300)의 흐름도이다. 310에서, GUI 요소에 대한 테두리의 코너 부분의 반경("r")에 대한 사양 및 코너 부분의 비원형 분율("f")에 대한 사양이 수신된다. 곡률 반경("r")의 지정된 값은 코너 부분의 제1 및 제2 비원형 부분들의 최대 곡률을 결정한다. 비원형 분율("f")의 지정된 값은 코너 부분의 제1 및 제2 비원형 부분들의 조합된 길이를 결정한다.
이러한 입력 값들 중 하나 또는 둘 모두는 프로세스(300) 전에 또는 동시에 실행되는 다른 프로세스에 의해 지정될 수 있다. 대안적으로 또는 추가로, 이러한 입력 값들 중 하나 또는 둘 모두는 설계 사양의 일부로서 사전에 지정될 수 있다. 지정되는 곡률 반경의 값은 GUI 요소의 테두리가 디스플레이 디바이스 상에 렌더링되는 배율에 의존할 수 있다. 예를 들어, 테두리의 코너의 라운딩 비율이 주어지면, 테두리의 줌인 뷰에 대해서는 큰 곡률 반경이 지정되는 반면, 테두리의 줌아웃 뷰에 대해서는 작은 곡률 반경이 지정된다. 다른 예로서, 코너 부분의 비원형 분율은 GUI들의 사용자들에게 가장 즐거운 둥근 코너의 모양을 결정하기 위해 수집된 경험 데이터에 기초하여 지정될 수 있다. 예를 들어, 사용자들은 코너 부분의 비원형 분율이 0.3인 둥근 코너들의 모양을 선호하는 것으로 결정될 수 있으며, 따라서 310에서 이 값이 코너 부분의 비원형 분율로서 지정될 것이다.
320에서, (i) 자신의 단부 지점들 사이의 중간에 위치하는 지점에서 지정된 반경에 대응하는 최대 곡률, (ii) 단부 지점들에서의 0의 곡률 및 (iii) 코너 부분의 지정된 비원형 분율의 길이와 동일한 길이를 갖는 제1 베지어 곡선이 결정된다. 도 3b는 코너 부분을 렌더링하기 위한 데이터를 생성하는 데 사용되는 기하 구조를 나타낸다. 라인(312)이 코너 부분의 제1 직선 변에 대응하는 것으로 가정한다. 여기서, 라인(312)은 x축을 따라 연장한다. 제1 베지어 곡선(B1, 322)은 제어 지점들 {P1,P2,P3,P4}를 갖는 3차 베지어 곡선이다.
제1 베지어 곡선(B1, 322)의 단부 지점들 P1 및 P4는 각각 라인(312) 및 라인(314) 상에 위치하여, 제1 베지어 곡선(B1, 322)은 지점 P1에서 라인(312)에 그리고 지점 P4에서 라인(314)에 접한다. 제어 지점들 P2 및 P3가 중첩되고, 라인(312) 상에 위치할 때, 제1 베지어 곡선(B1, 322)은 지점 K에서 원(323)에 접하며, 양 지점 P1 및 P4에서의 곡률은 0이다. 이러한 방식으로, 제1 베지어 곡선(B1, 322)의 최대 곡률은 제1 베지어 곡선(B1, 322)의 중앙에 있는 지점 K에서 발생한다. 지점 K에서의 곡률의 변화율은 0이다. 더욱이, 원(323)이 "r"의 지정된 반경과 동일한 반경을 갖도록 조정될 때(양끝 화살표로 표시됨), 지점 K에서의 최대 곡률의 값은 지정된 곡률 반경("r")에 대응한다.
라인들(312, 314)에 의해 형성된 각도의 2등분선은 지점 K를 통해(여기서, 곡률은 최대 값을 가짐) 그리고 원(323)의 중심 지점 O를 통해 중첩하는 제어 지점들 P2 및 P3를 통과하여, 단부 지점들 P1 및 P4는 2등분선에 대해 서로 거울 대칭이다. 게다가, 단부 지점들 P1 및 P4의 좌표들은 P1으로부터 P4까지의 제1 베지어 곡선(B1, 322)의 길이가 둥근 코너의 비원형 부분의 지정된 분율("f")에 의해 설정되는 길이 제약들을 충족시키도록 조정된다(양끝 화살표로 표시됨).
330에서, 제2 베지어 곡선이 제1 베지어 곡선의 절반으로서 생성되어, 제2 베지어 곡선은 하나의 단부에서 0의 곡률을 갖고, 나머지 단부에서 지정된 반경에 대응하는 곡률을 갖는다. 도 3b에 예시된 예에서, 제1 베지어 곡선(B1, 322)은 지점 K에서 제1 절반(342) 및 제2 절반(344)으로 절단된다. 제1 절반(342)은 지점 P1으로부터 지점 K까지 연장하는 제2 베지어 곡선(B2, 342)이며, (i) 제2 베지어 곡선(B2, 342)의 곡률이 단부 지점 P1에서 0이고; (ii) 제2 베지어 곡선(B2, 342)의 곡률이 나머지 단부 지점 K에서 최대이고, 지정된 곡률 반경("r")에 의해 결정되며; (iii) 제2 베지어 곡선(B2, 342)의 길이가 둥근 코너의 비원형 부분의 길이의 절반에 대응하는 것을 충족시킨다. 이러한 방식으로, 제2 베지어 곡선(B2, 342)은 둥근 코너의 제1 비원형 부분을 표현한다.
단계 330의 출력은 제2 베지어 곡선(B2, 342)의 제어 지점들 {Q1,Q2,Q3,Q4}의 제1 세트이다. 제어 지점 Q1은 단부 지점 P1이고, 제어 지점 Q4는 단부 지점 K이다. 나머지 제어 지점들 Q2 및 Q3는 도 4c와 관련하여 후술하는 바와 같이 라인(312)을 따라 위치한다. 제2 베지어 곡선(B2, 342)의 제어 지점들 {Q1,Q2,Q3,Q4}는 예를 들어 GUI 요소에 대한 테두리의 둥근 코너의 제1 비원형 부분을 렌더링하기 위해 테두리 렌더러 모듈(220)에 의해 사용될 수 있다.
340에서, 제1 및 제2 직선 변들 사이의 각도의 2등분선에 대한 제1 베지어 곡선의 절반의 거울 대칭 사례로서 제3 베지어 곡선이 생성되어, 제3 베지어 곡선은 하나의 단부에서 0의 곡률을 그리고 나머지 단부에서 지정된 반경에 대응하는 곡률을 갖는다. 단계 330에서 둥근 코너의 제1 비원형 부분이 제2 베지어 곡선(B2, 342)으로 결정되면, 둥근 코너의 제2 비원형 부분은 하기 방식으로 결정될 수 있다. 제2 베지어 곡선(B2, 342)은 둥근 코너에 인접하는 제1 및 제2 직선 변들 사이의 각도의 2등분선에 대해 거울 대칭이다. 제2 베지어 곡선(B2, 342)의 거울 대칭 사례는 제3 베지어 곡선(B3)(도 3b에 도시되지 않음)이다. 구성에 의해, 제3 베지어 곡선(B3)은 다음을 충족시키는데, 즉 (i) 제3 베지어 곡선(B3)의 곡률은 하나의 단부 지점에서 0이고; (ii) 제3 베지어 곡선(B3)의 곡률은 나머지 단부 지점에서 최대이고, 지정된 곡률 반경("r")에 의해 결정되며; (iii) 제3 베지어 곡선(B3)의 길이는 둥근 코너의 비원형 부분의 길이의 절반에 대응한다. 이러한 방식으로, 제3 베지어 곡선(B3)은 둥근 코너의 제2 비원형 부분을 표현한다.
단계 340의 출력은 제3 베지어 곡선(B3)의 제어 지점들 {R1,R2,R3,R4}의 제2 세트이다. 제어 지점 R1은 둥근 코너의 곡률이 최대 값을 갖는 단부 지점이며, 제어 지점 R4는 둥근 코너의 곡률이 0인 나머지 단부 지점이다. 나머지 제어 지점들 R2 및 R3는 도 4c와 관련하여 후술하는 바와 같이 테두리의 제2 직선 변을 따라 위치한다. 제3 베지어 곡선(B3)의 제어 지점들 {R1,R2,R3,R4}는 예를 들어 GUI 요소에 대한 테두리의 둥근 코너의 제2 비원형 부분을 렌더링하기 위해 테두리 렌더러 모듈(220)에 의해 사용될 수 있다.
제2 베지어 곡선(B2, 342)의 제어 지점들 {Q1,Q2,Q3,Q4}의 제1 세트 및 제3 베지어 곡선(B3)의 제어 지점들 {R1,R2,R3,R4}의 제2 세트는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리를 위해 코너 생성기 모듈(210)에 의해 출력되는 코너 부분 데이터(215)의 서브세트를 형성한다.
도 4a 및 도 4b는 GUI 요소에 대한 연속적인 곡률을 갖는 테두리의 코너를 렌더링하는 데 사용되는 시스템(400)의 일례의 블록도를 나타낸다. 일부 구현예들에서, 시스템(400)은 시스템(200) 또는 시스템(100)과 연계하여 동작할 수 있다. 일부 구현예들에서, 시스템(400)의 하나 이상의 모듈 또는 서브모듈은 프로세스(300)의 적어도 일부를 수행하는 데 사용될 수 있다.
일부 구현예들에서, 시스템(400)은 제1 및 제2 입력 모듈들(402, 408), 둥근 코너의 제1 및 제2 비원형 부분들을 생성하도록 구성되는 제1 생성기 모듈(404), 둥근 코너의 원형 부분을 생성하도록 구성되는 제2 생성기 모듈(406), 및 둥근 코너들 및 연속적인 곡률을 갖는 테두리를 렌더링하도록 구성되는 렌더러 모듈(410)을 포함한다. 도 4a 및 도 4b에 도시된 예들에서, 제1 및 제2 생성기 모듈들(404, 406) 및 렌더러 모듈(410)은 코드로서 구현된다. 다른 구현예들에서, 시스템(400)의 하나, 일부 또는 전체 모듈은 하드웨어(예로서, 특수화된 칩들) 또는 하드웨어와 소프트웨어의 조합들에서 구현될 수 있다.
제1 입력 모듈(402)은 둥근 코너의 최대 곡률에 대응하는 곡률 반경 "rad" 및 둥근 코너의 비원형 분율 0 < rndPrc ≤ 1을 포함하는 입력 데이터를 수신하도록 구성된다.
제1 생성기 모듈(404)은 제1 입력 모듈(402)로부터 입력 데이터를 수신하고, 둥근 코너의 비원형 부분들과 연관된 제1 데이터 세트(412)를 출력한다. 제1 생성기 모듈(404)에 의해 출력되는 제1 데이터 세트(412)는 둥근 코너의 비원형 부분들을 렌더링하는 데 사용되는 3차 베지어 곡선들에 대한 4개의 제어 지점의 좌표들을 포함한다. 제2 생성기 모듈(406)은 제1 입력 모듈(402)로부터 입력 데이터를 수신하고, 둥근 코너의 원형 부분과 연관된 제2 데이터 세트(414)를 출력한다. 일부 구현예들에서, 제2 생성기 모듈(406)에 의해 출력되는 제2 데이터 세트(414)는 둥근 코너의 원형 부분을 근사화하는 데 사용되는 3차 베지어 곡선에 대한 2개의 "내부" 제어 지점의 좌표들이다. 다른 구현예들에서, 제2 생성기 모듈(406)에 의해 출력되는 제2 데이터 세트(414)는 입력 반경 "rad"와 동일한 반경을 갖는 원호에 대한 제어 지점들의 좌표들이며, 둥근 코너의 원형 부분을 렌더링하는 데 사용된다.
도 4c는 둥근 코너(430)의 근처의 GUI 요소의 테두리의 줌인 뷰를 나타내며, 렌더러 모듈(410)이 생성된 제1 및 제2 데이터 세트들(412, 414)을 어떻게 사용하여 둥근 코너(430)를 렌더링하는지를 나타내기 위해 사용된다. 테두리의 이 부분은 테두리의 제1 직선 변(432)의 일부, 둥근 코너(430) 및 테두리의 제2 직선 변(434)의 일부를 포함한다. 이 예는 테두리의 좌하 코너를 나타내므로, 제1 직선 변(432)은 x축을 따라 (제2 직선 변(434)의 동쪽에 위치하고 도 4c에 도시되지 않은) 테두리의 우하 코너로부터 지점 Q1까지 연장한다. 또한, 제2 직선 변(434)은 y축을 따라 (제1 직선 변(432)의 북쪽에 위치하고 도 4c에 도시되지 않은) 테두리의 좌상 코너로부터 지점 R4까지 연장한다. 둥근 코너(430)는 제1 및 제2 직선 변들(432, 434)을 함께 연결하며, 지점 Q1으로부터 지점 R4까지 연장한다. 더욱이, 둥근 코너(430)는 제1 직선 변(432), 둥근 코너(430) 및 제2 직선 변(434)을 포함하는 테두리의 부분이 연속적이고 연속적인 곡률을 갖도록 형상화된다.
둥근 코너(430)는 지점 Q1으로부터 지점 Q4까지 연장하는 제1 비원형 부분(438) 및 지점 R1으로부터 지점 R4까지 연장하는 제2 비원형 부분(439)을 포함한다. 코너 부분(430)은 지점 Q4로부터 지점 R1까지 연장하고 제1 및 제2 비원형 부분들(438, 439)을 함께 연결하는 원형 부분(436)을 추가로 포함한다.
도 4c에 도시된 예에서, 제1 비원형 부분(438)은 제어 지점들 {Q1,Q2,Q3,Q4}를 갖는 제1 3차 베지어 곡선이다. 제1 생성기 모듈(404)은 제어 지점들 {Q1(aa,0),Q2(bb,0),Q3(cc,0),Q4(dd,ee)}의 좌표들(412)을 결정하여, 제1 3차 베지어 곡선(438)은 (i) 단부 지점 Q1에서의 곡률이 0이고; (ii) 곡률이 단부 지점 Q4에서 최대이고, 입력 곡률 반경 "rad"에 의해 결정되며; (iii) 지점 Q1으로부터 지점 Q4까지의 곡선(438)의 길이가 입력 비원형 분율 "rndPrc"에 따라 둥근 코너(430)의 총 비원형 부분의 길이의 절반에 대응하는 것을 충족시킨다.
또한, 도 4c에 도시된 예에서, 제2 비원형 부분(439)은 제어 지점들 {R1,R2,R3,R4}를 갖는 제2 3차 베지어 곡선이다. 제2 3차 베지어 곡선(439)에 대한 제어 지점들은 제1 및 제2 직선 변들(432, 434) 사이의 각도의 2등분선 "MO"에 대한 제1 3차 베지어 곡선(438)의 제어 지점들 {Q1,Q2,Q3,Q4}의 거울 대칭 사례이다. 여기서, 데카르트 좌표계의 원점은 지점 M(0,0)에 있다. 이 경우, 제어 지점들 {Q1,Q2,Q3,Q4}의 거울 대칭 사례는 제2 3차 베지어 곡선(439)의 제어 지점들 {R1(ee,dd),R2(0,cc),R3(0,bb),R4(0,aa)}이다. 이러한 방식으로, 제2 3차 베지어 곡선(439)은 (i) 곡률이 단부 지점 R1에서 최대이고, 입력 곡률 반경 "rad"에 의해 결정되며; (ii) 단부 지점 R4에서의 곡률이 0이고; (iii) 지점 R1으로부터 지점 R4까지의 곡선(439)의 길이가 입력 비원형 분율 "rndPrc"에 따라 둥근 코너(430)의 총 비원형 부분의 길이의 절반에 대응하는 것을 충족시킨다.
또한, 도 4c에 도시된 예에서, 원형 부분(436)은 제어 지점들 {S1,S2,S3,S4}를 갖는 제3 3차 베지어 곡선이다. 여기서, 제3 3차 베지어 곡선(436)의 단부 제어 지점들 S1(dd,ee) 및 S4(ee,dd)는 각각 제1 및 제2 3차 베지어 곡선들(438, 439)의 일치하는 단부 제어 지점들 Q4 및 R1이다. 더욱이, 제2 생성기 모듈(406)은 (도 4c에 도시되지 않은) 제3 3차 베지어 곡선(436)의 "내부" 제어 지점들 S2(gg,ff) 및 S3(ff,gg)의 좌표들(414)을 결정한다. 이러한 방식으로, 제3 3차 베지어 곡선(436)은 입력 곡률 반경 "rad"와 동일한 반경을 갖는 원호를 근사화하며, 제1 및 제2 비원형 부분들(438, 439)을 함께 연결한다.
이제, 도 4b를 참조하면, 제2 입력 모듈(408)은 테두리의 폭 "ww" 및 높이 "hh"를 포함하는 추가적인 입력 데이터를 수신하도록 구성된다. 렌더러 모듈(410)은 제2 입력 모듈(408)로부터 추가적인 입력 데이터, 제1 생성기 모듈(404)로부터 둥근 코너의 비원형 부분들과 연관된 제1 데이터 세트(412), 및 제2 생성기 모듈(406)로부터 둥근 코너의 원형 부분과 연관된 제2 데이터 세트(414)를 수신한다.
렌더러 모듈(410)의 서브모듈(416)은 테두리의 좌하 코너를 렌더링한다. 이것은 본 명세서에서 도 4c를 참조하여 설명된다. 지점 Q1(aa,0)로부터 시작하여, 서브모듈(416)은 둥근 좌하 코너(430)의 제1 비원형 부분(438)을 제어 지점들 {Q1(aa,0),Q2(bb,0),Q3(cc,0),Q4(dd,ee)}를 갖는 3차 베지어 곡선으로서 렌더링한다. 이어서, 서브모듈(416)은 둥근 좌하 코너(430)의 원형 부분(436)을 제어 지점들 {Q4(dd,ee),(gg,ff),(ff,gg),R1(ee,dd)}를 갖는 3차 베지어 곡선으로서 렌더링한다. 이어서, 서브모듈(416)은 둥근 좌하 코너(430)의 제2 비원형 부분(439)을 제어 지점들 {R1(dd,ee),R2(0,cc),R3(0,bb),R4(0,aa)}를 갖는 3차 베지어 곡선으로서 렌더링한다.
렌더러 모듈(410)의 서브모듈(417)은 테두리의 좌측 라인(434)을 렌더링한다. 지점 R4(0,aa)로부터 시작하여, 서브모듈(417)은 좌측 라인(434)을 테두리의 좌상 코너의 제1 지점까지 연장시킨다.
렌더러 모듈(410)의 서브 모듈(420)은 서브모듈(416)과 관련하여 전술한 것과 유사한 방식으로 좌상 코너를 렌더링한다. 둥근 좌상 코너의 제1 비원형 부분, 원형 부분 및 제2 비원형 부분에 대응하는 3차 베지어 곡선들의 제어 지점들은 좌하 코너와 연관된 제어 지점들에 대해 적절히 (y축을 따라 hh만큼) 병진 이동되고, (페이지에 수직인 z축에 대해 90°만큼 시계 방향으로) 회전된다. 렌더러 모듈(410)의 서브모듈(421)은 테두리의 상부 라인을 렌더링한다. 서브모듈(421)은 상부 라인을 테두리의 우상 코너의 제1 지점까지 연장시킨다.
렌더러 모듈(410)의 서브모듈(424)은 서브모듈(416)과 관련하여 전술한 것과 유사한 방식으로 우상 코너를 렌더링한다. 둥근 우상 코너의 제1 비원형 부분, 원형 부분 및 제2 비원형 부분에 대응하는 3차 베지어 곡선들의 제어 지점들은 좌상 코너와 연관된 제어 지점들에 대해 적절히 (x축을 따라 ww만큼) 병진 이동되고, (z축에 대해 90°만큼 시계 방향으로) 회전된다. 렌더러 모듈(410)의 서브모듈(425)은 테두리의 우측 라인을 렌더링한다. 서브모듈(425)은 우측 라인을 테두리의 우하 코너의 제1 지점까지 연장시킨다.
렌더러 모듈(410)의 서브모듈(428)은 서브모듈(416)과 관련하여 전술한 것과 유사한 방식으로 우하 코너를 렌더링한다. 둥근 우하 코너의 제1 비원형 부분, 원형 부분 및 제2 비원형 부분에 대응하는 3차 베지어 곡선들의 제어 지점들은 우상 코너와 연관된 제어 지점들에 대해 적절히 (y축을 따라 hh만큼) 병진 이동되고, (z축에 대해 90°만큼 시계 방향으로) 회전된다. 렌더러 모듈(410)의 서브모듈(429)은 테두리의 하부 라인(432)을 렌더링한다. 서브모듈(429)은 하부 라인(432)을 테두리의 좌하 코너의 지점 Q1까지 연장시킨다.
렌더러 모듈(410)의 서브모듈들에 의해 수행되는 동작들은 전술한 바와 같이 순차적으로, 또는 다수의 프로세서(예로서, 단일 하드웨어 프로세서의 다수의 스레드, 또는 다수의 하드웨어 프로세서)가 이용 가능한 경우에는 동시에 수행될 수 있다.
도 5는 도 1 내지 도 4와 관련하여 전술한 기술들에 따라 동작하는 컴퓨터 시스템(500)의 일례의 블록도이다. 컴퓨터 시스템(500)은 메모리 인터페이스(502), 하나 이상의 데이터 프로세서, 이미지 프로세서 및/또는 프로세서(504), 및 주변 장치 인터페이스(506)를 포함할 수 있다. 메모리 인터페이스(502), 하나 이상의 프로세서(504) 및/또는 주변 장치 인터페이스(506)는 별개의 컴포넌트들일 수 있거나 하나 이상의 집적 회로에 통합될 수 있다. 프로세서들(504)은 하나 이상의 애플리케이션 프로세서(AP) 및 하나 이상의 베이스밴드 프로세서(BP)를 포함할 수 있다. 애플리케이션 프로세서들 및 베이스밴드 프로세서들은 하나의 단일 프로세스 칩 내에 통합될 수 있다. 예를 들어, 컴퓨터 시스템(500) 내의 다양한 컴포넌트들은 하나 이상의 통신 버스 또는 신호 라인에 의해 결합될 수 있다.
다수의 기능을 가능하게 하기 위해 센서들, 디바이스들 및 서브시스템들이 주변 장치 인터페이스(506)에 결합될 수 있다. 예를 들어, 컴퓨터 시스템(500)의 방위, 조명 및 근접 기능들을 가능하게 하기 위해 모션 센서(510), 조명 센서(512) 및 근접 센서(514)가 주변 장치 인터페이스(506)에 결합될 수 있다. 지리적 위치 확인(geopositioning)을 제공하기 위해 로케이션 프로세서(515)(예를 들어, GPS 수신기)가 주변 장치 인터페이스(506)에 연결될 수 있다. 자북의 방향을 결정하는 데 사용될 수 있는 데이터를 제공하기 위해 전자 자력계(516)(예를 들어, 집적 회로 칩)가 또한 주변 장치 인터페이스(506)에 연결될 수 있다. 따라서, 전자 자력계(516)는 전자 나침반으로 사용될 수 있다. 컴퓨터 시스템(500)의 움직임의 방향 및 속도 변화를 결정하는 데 사용될 수 있는 데이터를 제공하기 위해 가속도계(517)가 또한 주변 장치 인터페이스(506)에 연결될 수 있다.
카메라 서브시스템(520) 및 광 센서(522), 예를 들어, 전하 결합 소자(CCD) 또는 상보형 금속 산화물 반도체(CMOS) 광 센서는 사진 및 비디오 클립의 녹화와 같은 카메라 기능들을 가능하게 하기 위해 이용될 수 있다.
통신 기능들은 무선 주파수 수신기들 및 송신기들 및/또는 광(예를 들어, 적외선) 수신기들 및 송신기들을 포함할 수 있는 하나 이상의 무선 통신 서브시스템(524)을 통하여 가능해질 수 있다. 통신 서브시스템(524)의 구체적인 설계 및 구현은 컴퓨터 시스템(500)이 동작하도록 의도되어 있는 통신 네트워크(들)에 좌우될 수 있다. 예를 들어, 컴퓨터 시스템(500)은 GSM 네트워크, GPRS 네트워크, EDGE 네트워크, Wi-Fi 또는 WiMax 네트워크 및 블루투스 네트워크 상에서 동작하도록 설계된 통신 서브시스템들(524)을 포함할 수 있다. 특히, 무선 통신 서브시스템들(524)은 컴퓨터 시스템(500)이 다른 무선 디바이스들에 대한 기지국으로 구성될 수 있도록 호스팅 프로토콜들을 포함할 수 있다.
음성 인식, 음성 복제, 디지털 녹음 및 전화 기능과 같은 음성 지원 기능들을 가능하게 하기 위해 오디오 서브시스템(526)이 스피커(528) 및 마이크(530)에 결합될 수 있다.
I/O 서브시스템(540)은 터치 표면 제어기(542) 및/또는 기타 입력 제어기(들)(544)를 포함할 수 있다. 터치 표면 제어기(542)는 터치 표면(546)(예로서, 터치 스크린 또는 터치 패드)에 결합될 수 있다. 터치 표면(546) 및 터치 표면 제어기(542)는, 예를 들어, 용량성, 저항성, 적외선, 및 표면 음파 기술들뿐만 아니라, 터치 표면(546)과의 하나 이상의 접촉점을 결정하기 위한 기타 근접 센서 어레이들 또는 기타 요소들을 포함하지만 이들로 제한되지 않는 복수의 터치 감응성 기술들 중 임의의 기술을 사용하여 접촉 및 움직임 또는 그의 중단을 검출할 수 있다.
기타 입력 제어기(들)(544)가 하나 이상의 버튼, 로커 스위치(rocker switch), 지동륜(thumb-wheel), 적외선 포트, USB 포트, 및/또는 포인터 디바이스, 예컨대 스타일러스와 같은 기타 입력/제어 디바이스들(548)에 결합될 수 있다. 하나 이상의 버튼(미도시)은 스피커(528) 및/또는 마이크(530)의 볼륨 제어를 위한 업/다운 버튼을 포함할 수 있다.
일부 구현예에서, 제1 지속 기간 동안 버튼을 누르면 터치 표면(546)의 잠김이 풀릴 수 있고; 제1 지속 기간보다 긴 제2 지속 기간 동안 버튼을 누르면 컴퓨터 시스템(500)의 전원이 켜지거나 꺼질 수 있다. 사용자는 하나 이상의 버튼의 기능을 사용자 지정(customize)할 수 있다. 터치 표면(546)은, 예를 들어, 가상 또는 소프트 버튼들 및/또는 키보드, 예컨대 터치 감응 디스플레이 상의 소프트 키보드를 구현하는 데 또한 사용될 수 있다.
일부 구현예들에서, 컴퓨터 시스템(500)은 MP3, AAC, 및 MPEG 파일들과 같이 녹음된 오디오 파일들 및/또는 녹화된 비디오 파일들을 프리젠테이션할 수 있다. 일부 구현예들에서, 컴퓨터 시스템(500)은 아이팟(iPod™)과 같은 MP3 플레이어의 기능을 포함할 수 있다. 따라서, 컴퓨터 시스템(500)은 아이팟과 호환되는 핀 커넥터를 포함할 수 있다. 기타 입력/출력 및 제어 디바이스들이 또한 사용될 수 있다.
메모리 인터페이스(502)가 메모리(550)에 결합될 수 있다. 메모리(550)는 고속 랜덤 액세스 메모리 및/또는 비휘발성 메모리, 예컨대 하나 이상의 자기 디스크 저장 디바이스, 하나 이상의 광 저장 디바이스, 및/또는 플래시 메모리(예를 들어, NAND, NOR)를 포함할 수 있다. 메모리(550)는 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS, 또는 임베디드 운영 체제, 예컨대 VxWorks와 같은 운영 체제(552)를 저장할 수 있다. 운영 체제(552)는 기본 시스템 서비스들을 처리하기 위한 그리고 하드웨어 종속 작업들을 수행하기 위한 명령어들을 포함할 수 있다. 일부 구현예들에서, 운영 체제(552)는 커널(예를 들어, UNIX 커널)을 포함할 수 있다.
메모리(550)는 또한 하나 이상의 추가 디바이스, 하나 이상의 컴퓨터 및/또는 하나 이상의 서버와의 통신을 가능하게 하는 통신 명령어들(554)을 저장할 수 있다. 메모리(550)는 그래픽 사용자 인터페이스 처리를 가능하게 하는 그래픽 사용자 인터페이스 명령어들(556); 센서 관련 처리 및 기능들을 가능하게 하는 센서 처리 명령어들(558); 전화 관련 프로세스들 및 기능들을 가능하게 하는 전화 명령어들(560); 전자 메시징 관련 프로세스들 및 기능들을 가능하게 하는 전자 메시징 명령어들(562); 웹 브라우징 관련 프로세스들 및 기능들을 가능하게 하는 웹 브라우징 명령어들(564); 미디어 처리 관련 프로세스들 및 기능들을 가능하게 하는 미디어 처리 명령어들(566); 글로벌 내비게이션 위성 시스템(GNSS)(예로서, GPS) 및 내비게이션 관련 프로세스들 및 명령어들을 가능하게 하는 GPS/내비게이션 명령어들(568); 카메라 관련 프로세스들 및 기능들을 가능하게 하는 카메라 명령어들(570); 자력계 데이터 및 캘리브레이션 명령어들(572)을 포함할 수 있다. 메모리(550)는 또한 기타 소프트웨어 명령어들(미도시), 예컨대 보안 명령어들, 웹 비디오 관련 프로세스들 및 기능들을 가능하게 하는 웹 비디오 명령어들, 및/또는 웹 쇼핑 관련 프로세스들 및 기능들을 가능하게 하는 웹 쇼핑 명령어들을 저장할 수 있다. 일부 구현예들에서, 미디어 처리 명령어들(566)은 오디오 처리 관련 프로세스들 및 기능들과 비디오 처리 관련 프로세스들 및 기능들을 각각 가능하게 하는 오디오 처리 명령어들 및 비디오 처리 명령어들로 나누어진다. 활성화 레코드 및 IMEI(International Mobile Equipment Identity) 또는 유사한 하드웨어 식별자가 또한 메모리(550)에 저장될 수 있다.
메모리(550)는 도 1 내지 도 4와 관련하여 전술한 바와 같은 코너 생성 명령어들 및 데이터(574) 및 테두리 렌더링 명령어들 및 데이터(576)를 포함할 수 있다. 예를 들어, 코너 생성 명령어들(574)은 프로세스(300)에 또는 코드 모듈들(404, 406)에 대응한다. 또한, 메모리(550)는 도 1a 내지 도 1c 및 도 2 또는 도 4b와 관련하여 전술한 바와 같은 테두리 렌더링 명령어들(576)을 포함한다. 더구나, 코너 라운딩 데이터(574)는 제1 및 제2 비원형 부분들, 및 선택적인 코너(215)의 원형 부분을 포함하며, 테두리 렌더링 데이터(576)는 예를 들어 테두리(235) 및 다른 테두리{416, 417, 420, 421, 424, 425, 428, 429}를 포함한다.
위에 확인된 명령어들 및 애플리케이션들 각각은 전술한 하나 이상의 기능을 수행하기 위한 명령어들의 세트에 대응할 수 있다. 이들 명령어들은 별개의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없다. 메모리(550)는 추가의 명령어들 또는 더 소수의 명령어들을 포함할 수 있다. 더욱이, 컴퓨터 시스템(500)의 다양한 기능들은 하나 이상의 신호 처리 및/또는 특수 용도의 집적 회로들에서 구현되는 것을 포함하여, 하드웨어로 및/또는 소프트웨어로 구현될 수 있다.
본 명세서에서 설명되는 본 발명 및 기능 동작들의 구현예들은 디지털 전자 회로에서, 유형적으로 구현되는 컴퓨터 소프트웨어 또는 펌웨어에서, 본 명세서에서 개시되는 구조들 및 이들의 구조적 균등물들을 포함하는 컴퓨터 하드웨어에서, 또는 이들 중 하나 이상의 조합들에서 구성될 수 있다. 본 명세서에서 설명되는 본 발명의 구현예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의한 실행을 위해 또는 그의 동작을 제어하기 위해 유형의 비휘발성 프로그램 캐리어 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구성될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 인공적으로 생성된 전파 신호, 예를 들어 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로 송신할 정보를 인코딩하도록 생성되는 기계 생성된 전기, 광 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스 또는 이들 중 하나 이상의 조합일 수 있다.
용어 "데이터 처리 장치"는 예를 들어 프로그래밍가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 기계를 포함한다. 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)을 포함할 수 있다. 장치는 하드웨어에 더하여 해당 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들의 하나 이상의 조합을 구성하는 코드를 또한 포함할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로서 지칭되거나 설명될 수도 있는) 컴퓨터 프로그램은 컴파일 또는 해석 언어, 또는 선언 또는 절차 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 프로그램, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 대응할 필요는 없다. 프로그램은 다른 프로그램들 또는 데이터(예로서, 마크업 언어 문서 내에 저장된 하나 이상의 스크립트)를 유지하는 파일의 일부 내에, 해당 프로그램에 전용화된 단일 파일 내에, 또는 다수의 협력 파일(예로서, 하나 이상의 모듈, 서브프로그램 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 사이트에 배치되거나 다수의 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에서 설명되는 프로세스들 및 논리 흐름들은 입력 데이터 상에 작용하여 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능 컴퓨터에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)에 의해 수행될 수 있으며, 장치는 또한 특수 목적 논리 회로, 예를 들어 FPGA 또는 ASIC으로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들 또는 둘 모두, 또는 임의의 다른 종류의 중앙 처리 유닛을 포함하며, 예를 들어 그들에 기초할 수 있다. 일반적으로, 중앙 처리 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 본질적인 요소들은 명령어들을 수행 또는 실행하기 위한 중앙 처리 유닛 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크를 포함하거나, 그들로부터 데이터를 수신하거나, 그에게 데이터를 전송하거나, 둘 모두를 행하도록 기능적으로 결합될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요는 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어 단지 몇몇 예로서 이동 전화, 개인 휴대 단말기(PDA), 이동 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 디바이스(예로서, USB(universal serial bus) 플래시 드라이브) 내에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하는 데 적합한 컴퓨터 판독가능 매체들은 예를 들어 반도체 메모리 디바이스, 예로서 EPROM, EEPROM 및 플래시 메모리 디바이스; 자기 디스크, 예로서 내장형 하드 디스크 또는 이동식 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 그 안에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에서 설명되는 본 발명의 구현예들은 사용자에게 정보를 표시하기 위한 디스플레이 디바이스, 예로서 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예로서 마우스 또는 트랙볼을 갖는 컴퓨터 상에 구성될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 디바이스들도 사용될 수 있으며; 예를 들어 사용자에게 제공되는 피드백은 임의의 형태의 지각 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 그로부터 문서들을 수신함으로써; 예를 들어 사용자의 클라이언트 디바이스 상의 웹 브라우저로부터 수신되는 요청들에 응답하여 웹페이지들을 이 웹 브라우저로 전송함으로써, 사용자와 상호작용할 수 있다.
본 명세서에서 설명되는 본 발명의 구현예들은 백엔드 컴포넌트, 예를 들어 데이터 서버를 포함하거나, 미들웨어 컴포넌트, 예를 들어 애플리케이션 서버를 포함하거나, 프론트엔드 컴포넌트, 예를 들어 사용자가 본 명세서에서 설명되는 본 발명의 구현예와 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하거나, 하나 이상의 그러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템 내에 구성될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크("LAN") 및 광역 네트워크("WAN"), 예로서 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있으며, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
본 명세서는 많은 구체적인 구현 세부 사항을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 발명의 범주에 대한 제한으로서 해석되지 않아야 하며, 오히려 특정 발명들의 특정 구현예들에 고유할 수 있는 특징들의 설명들로서 해석되어야 한다. 개별 구현예들과 관련하여 본 명세서에서 설명되는 소정 특징들은 또한 단일 구현예 내에 조합하여 구성될 수 있다. 이와 달리, 단일 구현예와 관련하여 설명되는 다양한 특징들은 다수의 구현예 내에 개별적으로 또는 임의의 적합한 하위 조합으로 구성될 수 있다. 더욱이, 위에서 특징들은 소정의 조합들에서 동작하는 것으로 설명되거나, 심지어 처음에 그와 같이 청구될 수 있지만, 청구되는 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 제거될 수 있으며, 청구되는 조합은 하위 조합 또는 하위 조합의 변형과 관련될 수 있다.
유사하게, 도면들에는 동작들이 특정 순서로 도시되지만, 이것은 바람직한 결과들을 달성하기 위해 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나, 모든 예시된 동작들이 수행되어야 하는 것을 요구하는 것으로 이해되지 않아야 한다. 소정 상황들에서는, 다중 작업 및 병렬 처리가 유리할 수 있다. 더욱이, 전술한 구현예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서 그러한 분리를 요구하는 것으로 이해되지 않아야 하며, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품 내에 함께 통합되거나 다수의 소프트웨어 제품 내에 패키징될 수 있다는 것을 이해해야 한다.
본 발명의 특정 구현예들이 설명되었다. 다른 구현예들은 하기 특허청구범위의 범주 내에 있다. 예를 들어, 특허청구범위에 열거된 동작들은 상이한 순서로 수행될 수 있고, 여전히 바람직한 결과들을 달성할 수 있다. 일례로서, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 소정 구현예들에서는 다중 작업 및 병렬 처리가 유리할 수 있다.

Claims (1)

  1. 제1항에 기재된 방법.
KR1020160131354A 2013-06-07 2016-10-11 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링 KR20160135681A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/913,368 US9396565B2 (en) 2013-06-07 2013-06-07 Rendering borders of elements of a graphical user interface
US13/913,368 2013-06-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140063213A Division KR101666961B1 (ko) 2013-06-07 2014-05-26 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링

Publications (1)

Publication Number Publication Date
KR20160135681A true KR20160135681A (ko) 2016-11-28

Family

ID=52005088

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140063213A KR101666961B1 (ko) 2013-06-07 2014-05-26 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링
KR1020160131354A KR20160135681A (ko) 2013-06-07 2016-10-11 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020140063213A KR101666961B1 (ko) 2013-06-07 2014-05-26 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링

Country Status (2)

Country Link
US (1) US9396565B2 (ko)
KR (2) KR101666961B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014205632A1 (en) * 2013-06-24 2014-12-31 Adobe Systems Incorporated Gravity point drawing method
KR102530765B1 (ko) 2016-09-09 2023-05-11 삼성디스플레이주식회사 표시장치, 구동장치, 및 표시장치의 구동방법
CN111462215B (zh) * 2020-04-01 2023-10-20 北京小米移动软件有限公司 图形的处理方法、装置及存储介质
CN113643410B (zh) * 2021-08-24 2024-01-23 凌云光技术股份有限公司 一种用于定位椭圆弧曲线的gui图形控件设计方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665554A (en) 1983-07-13 1987-05-12 Machine Vision International Corporation Apparatus and method for implementing dilation and erosion transformations in digital image processing
EP0395224A3 (en) * 1989-04-26 1991-01-02 General Motors Corporation A feature based method of designing automotive panels
US5119309A (en) * 1989-04-26 1992-06-02 General Motors Corporation Feature based method of designing automotive panels
US5428733A (en) 1991-12-16 1995-06-27 Apple Computer, Inc. Method of calculating dimensions and positioning of rectangular balloons
JP2970238B2 (ja) 1992-08-04 1999-11-02 松下電器産業株式会社 積層セラミックコンデンサの製造方法
US5754179A (en) 1995-06-07 1998-05-19 International Business Machines Corporation Selection facilitation on a graphical interface
US7620527B1 (en) 1999-05-10 2009-11-17 Johan Leo Alfons Gielis Method and apparatus for synthesizing and analyzing patterns utilizing novel “super-formula” operator
JP3829972B2 (ja) 2000-03-06 2006-10-04 サイテック株式会社 3次元cadシステム
US7873916B1 (en) 2004-06-22 2011-01-18 Apple Inc. Color labeling in a graphical user interface
US7461343B2 (en) 2004-11-08 2008-12-02 Lawrence Kates Touch-screen remote control for multimedia equipment
US8244051B2 (en) 2006-03-15 2012-08-14 Microsoft Corporation Efficient encoding of alternative graphic sets
WO2008024869A2 (en) 2006-08-23 2008-02-28 Mental Images Gmbh Computer graphics methods and systems for generating images with rounded corners
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
WO2008067621A2 (en) 2006-12-04 2008-06-12 Tassent E. Corporation Belgium Bvba Method and apparatus for representing the layout of a website
US8315479B1 (en) 2008-02-26 2012-11-20 Adobe Systems Incorporated Slicing and scaling figures
US9844898B2 (en) 2011-09-30 2017-12-19 Apple Inc. Mirror feature in devices
US20130174097A1 (en) * 2011-12-29 2013-07-04 Gregg Wernecke Co-located user interface controls
CA2789827C (en) * 2012-01-19 2017-06-13 Research In Motion Limited Virtual keyboard providing an indication of received input
US8867789B2 (en) * 2013-01-14 2014-10-21 Cyberlink Corp. Systems and methods for tracking an object in a video

Also Published As

Publication number Publication date
KR101666961B1 (ko) 2016-10-17
US9396565B2 (en) 2016-07-19
US20140362089A1 (en) 2014-12-11
KR20140143697A (ko) 2014-12-17

Similar Documents

Publication Publication Date Title
JP6031600B2 (ja) 3d相互作用のマルチタッチジェスチャ認識の曖昧性除去
US9110561B2 (en) Context sensitive actions
US9996212B2 (en) User terminal apparatus and controlling method thereof
RU2666279C2 (ru) Пользовательское оконечное устройство и способ управления им
US11042294B2 (en) Display device and method of displaying screen on said display device
EP4332725A2 (en) Context sensitive actions in response to touch input
US9619019B2 (en) Display apparatus with a plurality of screens and method of controlling the same
KR20160135681A (ko) 그래픽 사용자 인터페이스의 요소들의 테두리들의 렌더링
US20130179816A1 (en) User terminal apparatus and controlling method thereof
US20140062917A1 (en) Method and apparatus for controlling zoom function in an electronic device
US20140059501A1 (en) Screen display control method of electronic device and apparatus therefor
KR102329124B1 (ko) 영상 표시 장치 및 영상 표시 방법
KR102598082B1 (ko) 영상 표시 장치, 모바일 장치 및 그 동작방법
JP6249652B2 (ja) タッチ機能制御方法及びその電子装置
CN106168894B (zh) 一种内容显示方法及移动终端
US9489069B2 (en) Method for controlling display scrolling and zooming and an electronic device thereof
KR102098258B1 (ko) 콘텐츠 편집 방법 및 이를 구현하는 전자기기
EP2811391A1 (en) Method for transforming an object based on motion, gestures or breath input and electronic device thereof
JP4680319B1 (ja) 座標情報更新装置および座標情報生成装置
US20130346892A1 (en) Graphical user interface element expansion and contraction using a rotating gesture
US9146666B2 (en) Touch sensor navigation
JP2016114857A (ja) 情報処理装置、その制御方法、プログラム、及び記憶媒体
KR101992314B1 (ko) 포인터 제어 방법 및 그 전자 장치
TW201702906A (zh) 基於環境適應性地提供時間相關資料的方法與電子裝置
KR20140029109A (ko) 전자 장치에서 줌 기능을 제어하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Withdrawal due to no request for examination