KR101071011B1 - 3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템 - Google Patents

3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템 Download PDF

Info

Publication number
KR101071011B1
KR101071011B1 KR1020057022004A KR20057022004A KR101071011B1 KR 101071011 B1 KR101071011 B1 KR 101071011B1 KR 1020057022004 A KR1020057022004 A KR 1020057022004A KR 20057022004 A KR20057022004 A KR 20057022004A KR 101071011 B1 KR101071011 B1 KR 101071011B1
Authority
KR
South Korea
Prior art keywords
building block
dimensional
candidate
computer
connection
Prior art date
Application number
KR1020057022004A
Other languages
English (en)
Other versions
KR20060013407A (ko
Inventor
로니 쉬러
올가 팀센코
나오미 클라크
피터 액커
Original Assignee
레고 에이/에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 레고 에이/에스 filed Critical 레고 에이/에스
Publication of KR20060013407A publication Critical patent/KR20060013407A/ko
Application granted granted Critical
Publication of KR101071011B1 publication Critical patent/KR101071011B1/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H9/00Special methods or compositions for the manufacture of dolls, toy animals, toy figures, or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)

Abstract

2차원적인 커서의 이동에 의해 3차원의 가상 빌딩 블록 모델을 조작하는 컴퓨터에 의한 실행 방법이며, 상기 가상 빌딩 블록 모델은, 연결 규칙에 따라 가상 빌딩 블록을 다른 가상 빌딩 블록과 연결하기 위한 다수의 연결 요소를 가지는 복수의 가상 빌딩 블록을 포함하며, 상기 방법은, 상기 구조물의 투영을 표시하는 2차원 컴퓨터 디스플레이 영역에서 커서의 이동에 의해 제1 가상 빌딩 블록의 2차원적인 투영이 구조물에 연결되도록 위치시키고 결과적으로 2차원 위치 좌표를 만드는 단계와, 상기 2차원 위치 좌표로부터 3차원 좌표계에서 제1 가상 빌딩 블록의 다수의 3차원 후보 위치를 결정하는 단계와, 연결 규칙 및 소정의 위치 평가 규칙에 기초하여 상기 후보 위치들 중의 하나를 선택하는 단계와, 선택된 후보 위치에서 상기 구조물에 제1 빌딩 블록을 연결하는 단계를 포함한다.
빌딩 블록, 연결 요소, 투영, 후보 위치

Description

3차원 대상물의 디지털 표시를 조작하기 위한 방법 및 시스템 {METHOD AND SYSTEM FOR MANIPULATING A DIGITAL REPRESENTATION OF A THREE-DIMENSIONAL OBJECT}
본 발명은 3차원 대상물의 디지털 표시를 조작하는 것에 관한 것이다. 더욱 상세하게는, 본 발명은 2차원적인 커서의 이동에 의해 3차원의 가상 빌딩 블록 모델을 컴퓨터에 의해 실행하는 조작에 관한 것이다. 복수의 가상 빌딩 블록을 포함하는 가상 빌딩 블록 모델은 연결 규칙에 따라 가상 빌딩 블록을 다른 가상 빌딩 블록과 연결하기 위한 다수의 연결 요소를 각각 포함한다.
가상 현실을 컴퓨터로 모델링하는 것은 실제 대상물의 모델을 생성하고, 그 모델을 조작하고, 컴퓨터 시스템에서 실제 대상물의 모델을 다루는 작업이다.
첫째로, 가상 현실의 모델링은 현실 세계에서 실제로 실행되기 전에 아이디어를 시각화하는 것을 가능하게 한다는 점에서 흥미로운 주제이다. 가상 현실 모델이 쉽게 수정된다면, 실제 대상물을 개발하고 수정하는 과정에서 현실 세계에서 동일한 과정을 실행하는 경우와 비교하여 많은 시간이 절약될 수 있다. 실제 세계에서 대상물을 페인트하는 단순 작업은 몇 시간이 걸릴 수 있으나, 컴퓨터는 몇 초 이내에 모델에 새로운 색상을 적용할 수 있다.
둘째로, 가상 현실의 모델링은, 현실 세계에서 존재하는 대상물의 모델을 컴퓨터를 통해 생성하고, 그 모델을 시각화하고 조작하는 것을 가능하게 한다는 점에서 흥미있다. 따라서, 대상물 모델은 다른 목적, 예를 들어 진보된 문서 작업의 목적을 위해 저장될 수 있다.
컴퓨터에 의한 가상 현실 모델링에 대한 많은 가능한 적용예가 존재하지만, 특별한 적용예는 오락이나 교육용 가상 현실 모델링을 사용하는 것이다.
실제의 구성 놀이 세트의 모델링 개념은 다양한 종류가 공지되어 있다. 특히, 모듈을 이용한 개념이나 모듈과 유사한 개념이 매우 인기가 있다. 전형적으로, 이러한 개념들은 미리 제조된 요소들의 모듈에 따라 소정의 방식으로 서로를 연결할 수 있는 미리 제조된 요소들의 세트를 제공한다. 이런 구성 놀이 세트의 예로써 레고라는 이름으로 구입 가능한 플라스틱 쌓기 놀이 세트가 있다.
컴퓨터 상에서 3차원 대상물이나 화면의 표시를 조작할 때, 3차원 상에서의 대상물의 위치, 선택, 이동이 2차원 상에서 동작하는 입력 장치, 예를 들어 마우스 패드 상에서 컴퓨터 마우스의 2차원적인 이동에 의해 실행된다는 점이 일반적인 문제이다. 또한, 컴퓨터의 디스플레이 영역도 또한 2차원적이다. 특히, 컴퓨터 스크린의 2차원 디스플레이 영역 상에서 선택된 모든 위치는, 선택된 2차원 위치에 대응되는 2차원 디스플레이 영역에 투영을 가지는 3차원 공간에서 복수의 위치에 대응된다. 사용자의 의도에 대응될 수 있는 하나의 위치를 결정하는 것이 문제이다.
비록 3차원 컴퓨터 그래픽에서 대상물을 조작하는데 더욱 적합한 컴퓨터 인 터페이스 장치를 개발하는데 상당한 노력을 해왔지만, 여전히 이런 도구는 아직 널리 사용되지 않고 있으며, 특히 홈 엔터테인먼트, 교육 등에서 사용되는 컴퓨터 시스템과 연결되어 있지 않다.
가상 빌딩 블록을 배치하는 공지된 구성 게임은 대상물의 이동과 회전의 자유도 및 다른 대상물과 연결하는 방법의 면에서 일반적으로 제한되어 있다.
미국특허 제6,426,745호는 마우스로 3차원 그래픽 대상물을 조작하는 방법을 기술하는데, 여기서 3차원 이동은 한번에 한 평면이나 한 방향으로 이동을 제한함으로써 실행되고 이에 따라 제한된 이동의 연속, 예를 들어 3차원 좌표계에서 x방향으로 이동하고, y방향으로 이동하고, 마지막으로 z방향으로 이동하는 것에 의해 3차원 이동을 실행한다.
위 종래 기술의 문제점은, 3차원 화면에서 빌딩 블록을 위치시키고 기존 사용자 인터페이스와 3차원 구조물을 연결시키는 것이 고도의 기술과 훈련을 필요로 하는 귀찮은 과정이라는 점이다. 특히, 아이들은 충분한 운동 기술 또는 오랜 조작 과정을 실행하는데 필요한 인내심이 아직 발달하지 않았기 때문에, 아이들과 10대들의 오락 및 교육상 이것은 문제이다. 따라서, 가상 구성 게임에서 아이들은 곧 흥미를 잃을 수 있다.
본 발명은 2차원적인 커서의 이동에 의해 3차원의 가상 빌딩 블록 모델을 조작하는 컴퓨터에 의한 실행 방법에 의해 해결되는데, 상기 가상 빌딩 블록 모델은, 연결 규칙에 따라 가상 빌딩 블록을 다른 가상 빌딩 블록과 연결하기 위한 다수의 연결 요소를 가지는 복수의 가상 빌딩 블록을 포함하며,
상기 방법은, 3차원 좌표계에서 다수의 상기 가상 빌딩 블록을 포함하는 구조물의 디지털 표시를 제공하는 단계와, 상기 구조물의 투영을 표시하는 2차원 컴퓨터 디스플레이 영역에서 커서의 이동에 의해 제1 가상 빌딩 블록의 2차원적인 투영이 구조물에 연결되도록 위치시키고 결과적으로 2차원 위치 좌표를 만드는 단계와, 상기 2차원 위치 좌표로부터 3차원 좌표계에서 제1 가상 빌딩 블록의 다수의 3차원 후보 위치를 결정하는 단계와, 연결 규칙 및 소정의 위치 평가 규칙에 기초하여 상기 후보 위치들 중의 하나를 선택하는 단계와, 선택된 후보 위치에서 상기 구조물에 제1 빌딩 블록을 연결하는 단계를 포함한다.
따라서, 3차원의 가상 빌딩 블록 모델을 조작하는 효율적인 실행 방법은, 사용자에게 직관적인 방법으로 2차원 디스플레이 영역에서의 위치를 대응되는 3차원적인 위치로 결정하고 이에 따라 사용자가 3차원의 가상 구조물을 더욱 쉽게 조작할 수 있게 함으로써 제공된다. 사용자는 2차원 스크린 영역 내에서 새로운 빌딩 블록을 간단히 위치시키고, 이에 따라 새로운 빌딩 블록의 좌표를 두 빙향으로 고정할 수 있다. 이때, 2차원적인 위치와 일치하는 복수의 가능한 3차원의 위치 중 적합한 하나는 다수의 연결 규칙과 위치 평가 규칙에 따라 자동으로 결정된다.
특히, 소정의 위치 평가 규칙에 따라 다수의 후보 위치 중 하나를 선택함으로써, 상기 방법은 사용자의 의도와 일치할 수 있는 3차원 화면에서의 위치에 빌딩 블록을 위치시키게 된다.
또한, 연결 요소에 대한 연결 규칙과 일치하지 않는 위치가 거부된다는 점이 다른 장점이다. 예를 들어, 연결 시스템에는 상당히 다양한 연결 요소, 구체적으로 다른 형태 및/또는 크기의 투영, 투영의 하나에 대응되고 결합하는 다른 형태의 캐비티가 있을 수 있다.
새로운 빌딩 블록이 2차원의 위치와 일치하는 3차원의 위치에 있다고 가정하고 새로운 빌딩 블록의 연결 요소에 가까운 후보 연결 요소를 선택함으로써, 그리고 후보 연결 요소와 유효한 연결이 가능한지를 테스트함으로써, 컴퓨터 스크린 상의 새로운 빌딩 블록의 2차원 위치는 3차원 모델 내에서 3차원 위치로 정확하게 결정된다. 또한, 유효하지 않은 연결을 야기하는 2차원-3차원 결정, 예를 들어 다른 형태의 캐비티와 투영의 결합은 연결 규칙에 따라 방지된다.
따라서, 가상 빌딩 블록은 대응되는 현실의 구성 세트의 실제적인 제한과 일치하고 이에 따라 가상 구성 게임의 교육 가치를 향상시킬 수 있다는 장점이 있다. 특히, 가상 구성은 빌딩 블록의 동일 형태로부터 현실 모델을 구성함으로써 실제 모델로 연속적으로 변환될 수 있다.
상기 방법은 이동과 연결에 있어서 상당한 자유도를 제공하는 장점을 갖는다. 예를 들어, 빌딩 블록은 어떤 방향으로든 위치되고 연결될 수 있다. 특히, 다른 빌딩 블록과 수평 방향과 수직 방향 양쪽의 연결이 가능하다. 또한, 빌딩 블록은 수직이나 수평 축으로 회전되지 않을지라도 정확히 위치해 있다.
그래픽 표시의 위치는, 포인팅 장치처럼 적합한 입력 장치를 거쳐 사용자로부터 수신된 제어 명령에 의해 제어되는 것이 바람직하다. 예를 들어, 위치는 표준 커서 조작 기술, 구체적으로 "드랙 앤드 드롭" 조작, "클릭 앤드 릴리스" 조작 등으로 실행될 수 있다.
바람직한 실시예에서, 다수의 3차원 후보 위치를 결정하는 단계는 3차원 좌표계에서 제1 가상 빌딩 블록의 다수의 후보 방향을 결정하는 단계를 더 포함한다. 회전된 빌딩 블록의 후보 위치를 얻기 위해 제1 빌딩 블록을 회전함으로써, 사용자에 의해 제어된 2차원 위치는 3차원 위치 및 3차원 방향으로 결정되고 이에 따라 2차원 스크린 영역에 하나의 커서 제어를 기초로 3차원 화면에서의 위치의 모든 6개의 자유도를 결정할 수 있다. 제1 빌딩 블록의 회전이 사용자에 의해 선택된 방향 주위로 소정의 공간 각으로 제한될 때, 빌딩 블록의 주위에서 완전한 플리핑(flipping)과 같은 혼란스러운 회전은 방지되고 이에 따라 사용자의 방향성 상실은 방지된다. 본 실시예에서, 사용자가 가상 빌딩 블록의 방향을 선택함으로써, 방향성은 달성될 수 있다.
바람직한 실시예에서, 상기 방법은 2차원 디스플레이 영역에서 제1 가상 빌딩 블록의 연결 요소의 투영 주위의 소정 인접부 내에 투영을 가지는, 상기 구조물의 다수의 후보 연결 요소를 결정하는 단계와, 연결 규칙 및 소정의 위치 평가 규칙에 기초하여 상기 후보 연결 요소들 중 하나를 선택하는 단계와, 제1 가상 빌딩 블록과 상기 구조물 사이의 연결이 연결 규칙에 의해 유효한 경우에 적어도 선택된 후보 연결 요소를 거쳐서 제1 가상 빌딩 블록을 구조물에 연결하는 단계를 더 포함한다.
따라서, 감지는 위치 및 개별 연결 요소의 특성에 의존하기 때문에, 후보 위치를 감지하는 컴퓨터에 의한 효율적인 방법이 제공된다. 또한, 사용자의 의도에 가장 대응될 수 있는 3차원 위치를 선택하기 위한 효율적인 선택 메커니즘이 제공된다.
평가가 하나 이상의 아래 평가 규칙을 포함할 때, 연결 요소의 특정한 바람직한 평가가 제공된다.
- 가상 카메라 위치로부터의 그들의 거리에 대해 후보 연결 요소를 평가하는 것.
- 현재 카메라 위치로부터 보이지 않는 후보 연결 요소를 버리는 것.
- 제1 가상 빌딩 블록의 대응하는 연결 요소의 2차원 투영까지의 후보 연결 요소들의 2차원 투영의 거리에 대하여 후보 연결 요소를 평가하는 것.
특히, 신뢰성 있는 3차원 위치는 평가 규칙이 가상 카메라 위치로부터의 거리의 조합 및 제1 가상 빌딩 블록의 대응 연결 요소의 2차원 투영까지 2차원 투영의 각각의 거리에 기초하여 달성된다.
바람직한 실시예에서, 각각의 가상 빌딩 블록에 대해 상기 구조물의 디지털 표시는 가상 빌딩 블록의 적어도 하나의 표면에 대응되는 다수의 균일 그리드를 포함하고, 각각의 균일 그리드는 다수의 그리드 포인트를 포함하며, 각각의 그리드 포인트는 연결 요소를 나타낸다. 따라서, 빌딩 블록이 다수의 연결 요소를 가지고 다른 형태의 연결 요소를 가진다 하더라도, 3차원 위치의 올바른 결정과 다수의 다른 빌딩 블록의 올바른 상호 연결을 가능하게 하는 시스템의 프레임워크가 제공된다.
제1 가상 빌딩 블록의 연결 요소의 투영 주위에 상기 소정의 인접부는, 대응하는 균일 그리드의 인접 그리드 포인트 사이의 거리에 대응되는 직경과 같은 직선 치수를 가지는 것이 바람직하다. 따라서, 사용자에게 명확하고 예측 가능한 3차원 위치와 빌딩 블록의 연결을 가능하게 하는, 정확하고 정제된 사용자에 의해 제어된 위치가 제공된다.
또한, 바람직한 실시예가 종속항에 개시되어 있다.
본 발명은 위 아래에서 기술되는 방법, 데이터 처리 시스템 및 생산 수단을 포함하는 다른 방법에 의해 실행될 수 있으며, 여기서 생산 수단은 처음에 언급된 방법과 연관되어 하나 이상의 장점을 제공하며 처음에 언급된 방법과 연관되어 기술된 바람직한 실시예와 대응되는 하나 이상의 바람직한 실시예를 가진다.
위, 아래에서 기술되는 본 방법의 구성은 소프트웨어로 실행될 수 있으며, 데이터 처리 시스템 또는 컴퓨터 실행 도구의 실행에 의해 야기된 다른 처리 수단으로 실행될 수 있다. 상기 도구는 저장 매체나 컴퓨터 네트워크를 통한 다른 컴퓨터로부터 램과 같은 메모리에 저장된 프로그램 코드 수단일 수 있다. 이와 달리, 기술된 구성은 소프트웨어나 소프트웨어의 조합 대신에 하드웨어 회로에 의해 실행될 수 있다.
본 발명은 또한 상기 프로그램이 컴퓨터 상에서 실행될 때, 위 아래에 기술된 방법의 모든 단계를 실행하기 위한 프로그램 코드 수단을 포함하는 컴퓨터 프로그램에 관한 것이다. 컴퓨터 프로그램은 컴퓨터 판독 저장 매체, 운반 파동 등으로 구현된 데이터 신호로 구체화될 수 있다.
본 발명은 또한 상기 컴퓨터 프로그램이 컴퓨터 상에서 실행될 때, 위 아래에 기술된 방법을 실행하기 위한 컴퓨터 판독 매체에 저장된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품에 관한 것이다.
본 발명은 바람직한 실시예 및 도면을 참조하여 이하에서 상세히 설명된다.
도1a 및 도1b는 기하학적 대상물의 컴퓨터 판독 모델을 생성하고 조작하기 위한 데이처 처리 시스템을 도시한다.
도2는 가상 빌딩 블록 시스템의 그래픽 사용자 인터페이스를 도시한다.
도3a 내지 도3d는 빌딩 블록 및 이의 연결 요소의 예를 도시한다.
도4a 및 도4b는 실제 빌딩 블록의 디지털 표시의 실시예를 도시한다.
도4c는 연결 포인트 주위에 체적 요소의 실시예를 도시한다.
도5는 3차원에 빌딩 블록을 위치시키고, 화면에 이미 존재하는 빌딩 블록의 구조물에 빌딩 블록을 연결하는 과정의 흐름 개략도를 도시한다.
도6a 및 도6b는 이미 놓인 빌딩 블록의 상면에 새로운 빌딩 블록을 위치시키는 실시예를 도시한다.
도7a 및 도7b는 스크린에 그래픽 표시의 약간 다른 2차원 위치로부터 야기된 빌딩 블록의 두 위치를 도시한다.
도8은 일시적인 3차원 위치에서 새로운 빌딩 블록의 연결성 검증의 하위 과정에 대한 실시예의 흐름 개략도를 도시한다.
도9a 및 도9b는 회전을 포함하는 빌딩 블록의 연결을 도시한다.
도1a 및 도1b는 기하학적 대상물의 컴퓨터 판독 모델을 생성하고 조작하기 위한 데이처 처리 시스템을 도시한다.
도1a는 컴퓨터 시스템의 실시예의 개략도를 도시한다. 컴퓨터 시스템은 디스플레이(120), 키보드(121), 마우스(122), 터치 패드, 트랙 볼, 광 펜, 터치 스크린 등과 같은 다른 포인팅 장치를 포함하는 적당히 프로그램된 컴퓨터(101), 예를 들어 개인용 컴퓨터를 포함한다.
101로 표시된 컴퓨터 시스템은 가상 빌딩 블록 모델의 설계, 저장, 조작, 셰어링을 용이하게 하도록 구성되어 있다. 컴퓨터 시스템(101)은 단독 시스템으로 또는 클라이언트/서버 시스템에서 클라이언트로 사용될 수 있다.
도1b는 컴퓨터에 의해 판독 가능한 가상 빌딩 블록 모델을 생성하고 조작하기 위는 데이터 처리 시스템의 블록 개략도를 도시한다. 컴퓨터(101)는 부분적으로는 일시 기억용으로 작동되고 부분적으로는 영구 기억용으로 작동될 수 있는 메모리(102), 예를 들어 램과 하드 디스크를 포함한다. 메모리는, 각각 중앙 처리 장치(103)에 의해 실행될 수 있는 모델 코드 번역기(107), 모델 코드 생성기(108), UI 사건 조작기(109), 모델링 적용기(110) 상에 저장한다. 또한, 메모리는 내부에 모델 데이터(111), 즉 실제 대상물, 구체적으로 가상 빌딩 블록 모델의 디지털 표시를 나타내는 데이터 구조물의 세트를 저장한다. 가상 빌딩 모델을 저장하기 위한 데이터 포맷의 예가 미국특허 제6,389,375호에 개시되어 있다.
코드 번역기(107)는 모델을 정의하는 코드, 즉 모델의 빌딩 블록의 데이터 구조를 나타내는 코드를 읽고 해석하도록 되어 있다. 바람직한 실시예에서, 코드 번역기(107)는 모델을 판독하고, 모델을 컴퓨터 디스플레이 상에 표시용 기존 그래픽 포맷으로 변환하도록 구성되어 있다.
UI 사건 조작기(109)는 사용자 인터페이스와의 사용자의 상호 작용을 코드 생성기(108)에 의해 인식될 수 있는 적당한 사용자 명령으로 변환할 수 있도록 구성되어 있다. 가능하고 판독가능한 명령은, 요소의 라이브러리로부터 빌딩 블록을 얻는 단계, 다른 빌딩 블록에 연결되도록 빌딩 블록을 놓는 단계, 빌딩 블록을 해제시키는 단계, 빌딩 블록을 버리는 단계, 빌딩 블록, 한 그룹의 빌딩 블록을 회전함으로써 조작하는 단계를 포함한다. 각각의 명령과 함께, 각각의 파라미터, 예를 들어 디스플레이 좌표계에 대한 커서 좌표, 빌딩 블록의 형태 등과 관련이 있을 수 있다.
코드 생성기(108)는 사용자의 명령에 대응하여 모델의 데이터 구조물을 수정하도록 구성되어 있다. 동시 또는 연속된 작업으로서, 코도 번역기는 코드 생성기의 결과를 표시하도록 실행될 수 있다.
모델링 적용기(110)는 메모리, 파일, 사용자 인터페이스 등을 제어하도록 구성되어 있다.
사용자(105)는, 컴퓨터 스크린에 표시된 그래픽 사용자 인터페이스와 키보드 및/또는 포인팅 장치와 같은 하나 이상의 입력 장치를 포함하는 것이 바람직한, 사용자 인터페이스(106)에 의해 컴퓨터 시스템(101)과 상호작용할 수 있다.
모델, 기하학적 모양 또는 다른 데이터를 로드하고 저장하거나 통신하기 위해, 컴퓨터 시스템은 입/출력 장치(I/O)(104)를 포함한다. 입/출력 장치는 다른 형태의 저장 매체 및 다른 형태의 컴퓨터 네트워크, 예를 들어 인터넷에 인터페이스로 사용될 수 있다. 또한, 입/출력 장치(I/O)(104)는 다른 사용자와 상호작용으로 모델을 교환하도록 사용될 수 있다.
메모리(102), 중앙 처리 장치(103), 사용자 인터페이스(106), 입/출력 장치(I/O)(104) 사이의 데이터 교환은 데이터 버스(112)에 의해 실행될 수 있다.
도2는 가상 빌딩 블록 시스템의 그래픽 사용자 인터페이스를 도시한다.
사용자 인터페이스는 기부 플레이트(202) 및 다수의 상호 연결된 가상 빌딩 블록(204)을 포함하는 3차원 구조물(203)을 구비한 3차원 화면을 도시한 디스플레이 영역(201) 포함한다. 화면은 소정의 관측점으로부터 도시된다. 이하에서, 카메라가 디스플레이 영역에서 도시된 그래픽 사진에 대응되는 실제 구조물의 사진을 기록할 수 있는 위치에 대응될 때, 관측점은 (가상) 카메라 위치로 언급될 것이다.
각각의 빌딩 블록(204)은 빌딩 블록을 선택하기 위해 컴퓨터 마우스로 클릭함으로써 실행될 수 있는 그래픽 사용자 인터페이스의 능동 요소에 대응된다. 일 실시예에서, 선택된 가상 빌딩 블록은 외관이 변한다. 예를 들어, 선택된 빌딩 블록은 색상, 구조 등을 변화시킬 수 있다. 즉, 이는 선택된 빌딩 블록 주위에서 경계 상자를 보여줌으로써 부각될 수 있다. 사용자는 선택된 빌딩 블록을 조작할 수 있는데, 예를 들어 색상과 같은 속성을 바꾸고, 제거하고, 복사하여 붙이는 작업을 실행하고, 다른 위치로 이동시킬 수 있다.
사용자 인터페이스는 또한 사용자에 의해 선택될 수 있는 다수의 다른 빌딩 블록(206)을 포함하는 파렛트 패널(205)을 포함한다. 예를 들어, 사용자는 마우스 로 빌딩 블록(206)의 하나를 클릭하고, 이에 따라 빌딩 블록을 선택하고, 구조물(203) 또는 기부 플레이트(202)에 연결하기 위해 선택된 빌딩 블록을 디스플레이 영역(201)으로 끌어당길 수 있다.
사용자 인터페이스는 또한 각종 기능이나 도구를 활성화하기 위한 다수의 메뉴 버튼(208)을 구비한 메뉴 바(207)를 포함한다. 예를 들어, 도구 바(tool bar)는 가상 카메라 위치를 변경하기 위한 회전 도구를 포함하여, 사용자가 다른 방향으로부터 빌딩 영역을 볼 수 있게 할 수 있다. 메뉴 바는 3차원 화면으로 줌인 또는 줌아웃을 위한 줌 도구를 포함할 수 있다. 도구의 다른 예는 다른 빌딩 블록의 세트를 각각 포함하는 다른 파렛트(205)를 선택하기 위한 파렛트 도구, 구조물의 부분을 채색하기 위한 컬러링 도구, 빌딩 블록을 지우기 위한 지우개 도구를 포함한다.
메뉴 바(207)는 또한 모델을 저장하고, 이전 저장된 모델을 열고, 모델 이미지를 인쇄하는 가능, 도움 기능과 같은 기본 기능을 제공할 수 있다.
도3a 내지 도3d는 빌딩 블록 및 이의 연결 요소의 예를 도시한다.
도3a는 빌딩 블록(301)의 사시도를 도시한다. 빌딩 블록(301)은 다른 빌딩 블록의 대응 구멍, 예를 들어 다른 빌딩 블록의 바닥면 구멍과 결합할 수 있는 8개의 노브(303a 내지 303h)를 구비한 상면(302)을 가진다. 마찬가지로, 빌딩 블록(301)은 대응 구멍을 구비한 바닥면(미도시함)을 포함한다. 빌딩 블록(301)은 또한 다른 연결 요소를 포함하지 않는 측면(304)을 포함한다.
일반적으로, 연결 요소는 다른 종류의 연결 요소, 예를 들어 커넥터, 리셉 터, 혼합 요소로 나누어질 수 있다. 커넥터는 다른 빌딩 블록의 리셉터에 의해 수용되며 이에 따라 빌딩 블록 사이에서 연결을 제공할 수 있는 연결 요소이다. 예를 들어, 커넥터는 다른 요소의 부분 사이에서 구멍 등으로 끼워질 수 있다. 리셉터는 다른 빌딩 블록의 커넥터를 수용할 수 있는 연결 요소이다. 혼합 요소는 다른 빌딩 블록의 조화되는 연결 요소의 형태에 따라 리셉터와 커넥터 양쪽으로 기능하는 부품이다.
도3b는 아래로부터 도시된 빌딩 블록(310)의 사시도를 도시한다. 빌딩 블록(310)은 직사각형이 아닌 상면 및 바닥면을 가진다. 바닥면은 하나 이상의 다른 빌딩 블록, 예를 들어 도3a의 빌딩 블록(301)의 대응 노브를 수용하기 위한 구멍(311, 312, 313)을 포함한다. 구멍은 코너(316, 317)뿐만 아니라 제2 핀(315), 모서리(314)에 의해 형성된다. 따라서, 모든 상기 요소의 특성은 빌딩 블록(310)의 바닥면의 연결 특성을 결정한다.
도3c는 빌딩 블록(321)과 연결되고 이에 따라 조합된 빌딩 블록을 형성하는 빌딩 블록(320)을 도시한다. 빌딩 블록(320)은 다른 빌딩 블록의 대응 구멍에 끼워지는 상면에 노브(322)를 포함한다. 그러나, 도3c에 도시된 것처럼, 다른 형태의 연결이 달성될 수도 있다. 노브 사이의 간극(323)은 블록(321)의 측면(324)과 같이 다른 연결부의 리셉터로 기능한다. 실제 빌딩 블록에서, 이 특성은 간극의 치수 및 빌딩 블록(321)의 치수, 즉 측면의 폭(325)에 의해 결정된다. 그러나 디지털 표시에서, 이 특성은 이하에서 상세히 설명되는 것처럼 균일 그리드에 연결 포인트의 대응 속성에 의해 나타내진다.
도3d는 두 개의 빌딩 블록(331 및 332)을 도시한다. 빌딩 블록(331)은 상면에 네 개의 노브(333)를 가지고 바닥면(미도시함)에 네 개의 대응 구멍을 가지는 블록이다. 블록(332)은 상호 수직이 아닌 평면을 포함하는 면을 구비한 빌딩 블록의 예이다. 특히, 빌딩 블록(332)은 경사진 면(334)을 가진다. 도3d에 도시된 것처럼, 현재 위치에서 빌딩 블록(331 및 332)은 서로 결합하는 연결 요소를 가지고 있지 않기 때문에 연결되어 있지 않다.
상기 빌딩 블록은 가능한 빌딩 블록의 예로서 기능한다는 것이 이해될 것이다.
도4a 내지 도4c는 실제 빌딩 블록의 디지털 표시의 실시예를 도시한다. 실제 빌딩 블록의 디지털 표시는, 디지털 표시가 빌딩 블록의 속성을 나타내는 컴퓨터의 메모리에 저장된 데이터 구조물을 포함한다. 본 실시예에 따르면, 빌딩 블록의 연결 요소는 본질적으로 형태, 연결 특성 등이 다를 수 있다. 그러나, 빌딩 블록에 연결 요소의 위치는 규칙을 따른다.
빌딩 블록은 이와 관련된 다수의 평면, 예를 들어 빌딩 블록의 경계 상자의 표면에 의해 형성된 평면을 가진다. 빌딩 블록의 연결 요소는 이 평면에 위치하여, 각 연결 요소는 이와 관련된 축을 가진다. 동일 평면상에 있는 모든 연결 요소의 축은 인접 그리드 포인트 사이에 고정된 거리를 가진 균일 그리드, 예를 들어 직교 그리드의 각각의 그리드 포인트, 소위 노트에 대응된다. 빌딩 블록과 연관된 평면은 빌딩 블록의 상면 및 바닥면에 대응되는 다수의 수평 평면 및 빌딩 블록의 측면에 대응되는 다수의 수직 평면을 형성함으로써 서로에게 쌍으로 평행한 것이 바람직하다. 인접 그리드 포인트 사이의 거리는 모든 수평 평면 사이에서 동일한 것이 바람직하다. 일 실시예에서, 수직 평면에서 인접 그리드 포인트 사이의 거리는 수평 평면에서 인접 그리드 포인트 사이의 거리와 다르다.
도4a 및 도4b는, 데이터 구조물의 실시예가 도3a의 빌딩 블록(301)의 속성을 기술하는 방법을 개략적으로 도시한다. 도4a 및 도4b에서, 빌딩 블록(301)은 대응되는 상면과 바닥면의 직교 그리드(405 및 406)가 각각 도시되어 있다. 도4a는 빌딩 블록의 사시도를 도시하고 도4b는 빌딩 블록의 상면도를 도시한다. 도4a 및 도4b에서, 빌딩 블록(301)의 측면에 있는 그리드는 도시되어 있지 않다. 빌딩 블록의 실시예, 예를 들어 빌딩 블록(301)은 일부 면, 예를 들어 측면에 연결 요소를 가지고 있지 않다. 빌딩 블록의 다른 실시예는 모든 측면에 연결 요소를 가질 수 있다.
직교 그리드는 연결 그리드로 지칭되며, 그리드 포인트는 연결 포인트로 언급된다. 연결 포인트는 원(407a 내지 407k)에 의해 예시된 것처럼 원에 의해 도시되어 있다. 따라서, 연결 포인트(407a 내지 407h)는 노브(303a 내지 303h)에 각각 대응된다. 측면(304)이 어떤 연결 요소도 가지고 있지 않기 때문에, 정의하는데 어떤 연결 그리드도 필요하지 않다. 대체 실시예에서, 빈 리셉터만 단지 포함하는 연결 그리드는 측면, 즉 다른 연결 요소와 연결되지도 거부하지도 않는 리셉터로 정의될 수 있다.
빌딩 블록의 디지털 표시는 내부 직각 좌표계(408)에 의하여 기술된다. 좌표계의 선택, 특히 원점의 위치와 축의 방향의 선택은 적절한 관례에 따라 선택될 수 있다. 따라서, 대응되는 데이터 구조물에서, 3차원의 빌딩 블록의 위치와 방향은 외부 좌표계, 예를 들어 다른 빌딩 블록이나 일반적인 "공통" 좌표계에 의하여 좌표계(408)의 원점 좌표와 축 방향에 의해 표시될 수 있다.
도4a에 도시된 것처럼, 균일 그리드에 위치한 연결 포인트에 의한 빌딩 블록의 연결 요소의 표시는 실제 연결 요소 상에 연결 요소의 실제 위치에 대한 임의의 제한을 부가한다. 그리드(405)는 노브(303)가 연장되는 빌딩 블록의 상면 평면에 위치한다. 도4a 및 도4b의 실시예에서, 그리드 포인트는 정사각형 그리드에 위치하며, 각각의 정사각형은 임의의 길이 단위(LU)의 5 x 5 단위의 치수를 가진다. 따라서, 이 형상에서, 연결 요소는 대응 정사각형 그리드에 위치하고 빌딩 블록의 평면에서 연결 요소 사이의 거리는 10LU의 배수이다. 도4의 실시예에서, 빌딩 블록의 상면 및 하면은 직사각형이며, 20LU x 40LU의 치수를 가지며 인접 연결 요소는 10LU의 거리로 이격되어 있다. 한편, 수직 방향으로, 연결 요소는 12LU의 거리로 이격되어 있다.
연결 포인트의 위치는 빌딩 블록의 내부 좌표계(408)에 의하여 정의되어 있다. 각각의 그리드 포인트는 또한 이와 관련된 방향을 가지며, 연결 요소는 대응되는 연결 요소와 이 방향으로 결합할 수 있다. 그리드 포인트의 방향은 평면에 직교하며, 경계 상자를 지지하는데, 즉 도4b에서 도면의 평면을 가리킨다.
일 실시예에서, 연결 포인트의 그리드를 나타내는 데이터 구조물은 각각의 연결 포인트에 대하여 좌표계(408)에 대한 연결 포인트의 좌표, 연결 요소의 방향 및 연결 형태를 포함한다.
일 실시예에서, 빌딩 블록을 나타내는 데이터 구조물은 빌딩 블록, 위치를 기술하는 데이터 구조물, 빌딩 블록의 경계 상자의 방향과 치수, 각각의 그리드와 대응되는 연결 포인트를 기술하는 다수의 데이터 구조물을 포함한다. 연결 포인트의 그리드를 의미하는 데이터 구조물은 이하를 포함한다.
- 로컬 그리드 좌표계의 원점으로 사용되는 그리드 포인트의 좌표계(408)에 대한 좌표. 그리드(405)의 예에서, 그리드 포인트(307i)는 좌표 P0=(-5, 12, -15) LU를 가지는 원점으로 사용된다.
- 연결 요소의 방향. 그리드(405)의 예에서, 이 방향은 (0, 1, 0)인데, 즉 좌표계(408)의 y축 방향이다.
- x 및 y축 방향으로 그리드 포인트의 수. 그리드(405)의 예에서, 각각 nx=9, nz=5이다.
- 대응 연결 포인트의 연결 속성은 각각 포함하는 nx x nz 데이터 구조물의 배열. 각각의 그리드 포인트의 데이터 구조물은 연결 포인트의 연결 형태, 예를 들어 구멍, 모서리, 노브 등을 포함한다.
일 실시예에서, 각각의 연결 포인트는 또한 연결 포인트 주위에서 인접부를 형성하는 관련된 체적 요소를 가지고 있다.
도4c는 연결 포인트 주위에서 체적 요소의 예를 도시한다. 일 실시예에서, 각각의 연결 포인트는 연결 포인트에서 중심을 가진 구와 연관을 가진다. 도4c에서, 이는 빌딩 블록(301)의 연결 그리드(405)의 연결 포인트(407g 및 407j)에 의해 예시된다. 연결 포인트(407g 및 407j)에 있어서, 대응되는 구(410g 및 410j)가 각각 나타나 있다. 구는 도4a 및 도4b의 예에서 인접 연결 포인트 사이의 거리의 반, 예를 들어 2.5LU의 반경을 가진다. 대체 실시예에서, 구는 작거나 클 수 있으며, 인접 구와의 사이에서 절단되거나 간극이 있을 수 있으며, 이에 따라 미세 오차에 대한 위치 방법의 민감성을 제어할 수 있다는 것이 이해될 것이다.
다른 종류의 체적 요소가 또한 사용될 수 있다. 예를 들어, 체적 요소는 연결 포인트(407c) 주위에서 원통(410c)으로 예시된 것처럼 연결 요소 주위에서 원통형일 수 있다. 본 실시예에서, 원통은 2.5LU의 반경을 가지며, 5LU의 길이를 가진다. 또한, 체적 요소의 예는 큐브, 타원형 등을 포함한다.
일 실시예에서, 연결 요소의 다른 형태는 다른 체적 요소, 예를 들어 다른 반경 및/또는 다른 높이, 다른 기하학적 형상과 같은 다른 크기의 체적 요소와 관련이 있을 수 있다. 일 실시예에서, 연결 포인트를 나타내는 데이터 구조물은 또한 관련된 체적 요소의 형태 및/또는 치수를 특정 짓는 하나 이상의 파라미터를 포함할 수 있다.
디스플레이, 예를 들어 컴퓨터 스크린에 빌딩 블록을 그래픽으로 나타낼 때, 경계 체적, 좌표계, 체적 요소, 그리드는 도시될 필요가 없다. 그래픽 표시는 빌딩 블록 자체의 그래픽 렌더링을 포함하는 것이 바람직하다.
이하에서, 3차원 구조물을 포함하는 새로운 빌딩 블록을 화면에 위치시키는 방법이 더욱 상세히 설명된다. 도5, 도6a 및 도6b가 참조된다.
도5는 3차원에 빌딩 블록을 위치시키고, 화면에 이미 존재하는 빌딩 블록의 구조물에 빌딩 블록을 연결하는 과정의 흐름 개략도를 도시한다.
단계(501)에서, 새로운 빌딩 블록은, 팔레트에서 빌딩 블록을 선택하고, 빌딩 블록의 그래픽 표시를 마우스 이동에 의해 2차원 디스플레이 영역에서 사용자 선택 위치로 이동시킴으로써 화면에 놓여 있는데, 여기서 2차원 디스플레이 영역은 3차원 화면의 2차원 투영을 나타낸다. 일 실시예에서, 마우스의 이동이 GUI 사건 조작기에 의해 감지된 것처럼 적어도 소정 시간 동안 멈출 때, 과정은 단계(503)에서 진행된다.
도6a 및 도6b는 미리 놓인 빌딩 블록의 상면에 새로운 빌딩 블록을 위치시키는 실시예를 도시한다. 새로운 빌딩 블록(601)은 상면(621) 및 바닥면(622)를 가지는 경계 상자(620)로 도시되며, 각각의 면은 위에 기술된 것처럼 연결 그리드의 603으로 표시된 다수의 연결 포인트를 포함한다. 유사하게, 이전에 놓인 빌딩 블록(602)은 604로 표시된 다수의 연결 포인트를 가진다. 빌딩 블록(601 및 602)의 측면의 연결 그리드와 연결 포인트는 도6a에 도시되어 있지 않다. 본 실시예에서, 3차원 화면은 이전에 놓인 단지 하나의 빌딩 블록(602)을 포함한다.
도6a는 2차원 디스플레이 좌표계(630)에 대응되는, 컴퓨터 스크린의 2차원 디스플레이 영역(600)에 보이는 빌딩 블록(601 및 602)의 2차원 투영을 도시한다.
도6b는 디스플레이 영역(600)에서 2차원 투영과 3차원 디스플레이 좌표계(640)에서 빌딩 블록(601 및 602)의 3차원 위치 사이의 관계를 도시한다. 새로운 빌딩 블록(601)이 스크린(600)에 놓일 때, 2차원 좌표계(630)에서의 좌표는 결정되고, 투영(601a)을 산출하는 임의의 3차원 위치는 점선의 투영 라인(631)에 의해 도시된 것처럼 이 투영과 일치한다. 따라서, 스크린 상에 빌딩 블록의 사용자에 의해 제어된 위치는 디스플레이 영역에 직교하는 3차원 치수에 관한 정보를 제공하지 못한다. 도6b에서, 투영은 평행 투영이며, 즉 투영 라인(631)은 서로에 대해 평행하며 투영 표면(600)으로부터 무한히 떨어진 가상 카메라 위치(632)에 대응된다.
도5를 다시 참조하면, 단계(503)에서 과정은 새로운 빌딩 블록의 연결 포인트의 투영의 소정 인접부 내에 2차원 투영을 가지는 화면에서 이미 존재하는 빌딩 블록 (또는 기부 평면)에 속하는 연결 포인트가 있는지를, 새로운 빌딩 블록의 연결 포인트 각각에 대해 결정한다. 일 실시예에서, 디스플레이 영역에서 연결 요소 주위의 원은 새로운 빌딩 블록의 각각의 연결 요소에 대해 결정된다. 유사하게, 화면에서 이미 결정된 연결 요소의 대응되는 원이 결정된다. 이 원 중에서 어느 것이라도 새로운 빌딩 블록의 연결 요소의 원과 겹친다면, 대응되는 연결 요소는 후보 연결 요소로 선택된다.
도6a에서, 이 단계는 새로운 빌딩 블록(601)의 연결 포인트(605)로 도시된다. 참조 번호(606)는 연결 요소(605) 주위의 원을 지시한다. 유사하게, 참조 번호(608, 610, 612)는 원(605)과 겹쳐지는 빌딩 블록(602)의 연결 요소(607, 609, 611) 각각의 원을 지시한다. 따라서, 본 실시예에서, 연결 요소(607, 609, 611)는 후보 연결 요소로 결정된다. 본 실시예에서는, 또한 연결 요소가 선택될 수 있다. 그러나, 이 원은 도6b에 도시되어 있지 않다.
원(606, 608, 610, 612)은 연결 요소(605, 607, 609, 611) 각각의 주위에서 대응되는 원의 투영에 대응된다. 대체 실시예에서, 다른 형태의 체적 요소의 투영 은 어떤 연결 요소가 새로운 빌딩 블록의 연결 요소의 인접부에서 투영을 가지는지를 결정하는데 사용될 수 있다. 또한, 체적 요소의 예가 위 도4c와 관련하여 기술된다. 구를 사용할 때, 구의 투영은 관점과 상관없이 항상 원이기 때문에 대응되는 투영의 결정은 특히 효율적이다.
바람직한 실시예에서, 원의 직경은 각각의 그리드에서 인접 연결 포인트 사이의 거리에 대응된다.
또한, 일 실시예에서, 후보 연결 요소의 탐색은 화면에서 미리 존재하는 빌딩 블록의 연결 요소의 하위 세트로 제한되고, 이에 따라 탐색을 완료하는데 걸리는 시간 및 후보 연결 요소의 결과적인 리스트 크기를 줄일 수 있다. 예를 들어, 탐색은 다른 연결 요소에 이미 연결되지 않은 연결 요소로 제한될 수 있다. 일 실시예에서, 탐색은 적합한 연결 속성을 가지는 연결 요소, 즉 이하에서 상세히 설명되는 것처럼 새로운 빌딩 블록의 연결 요소에 실제로 연결될 수 있는 연결 요소로 제한된다.
단계(503)는 화면에서 미리 존재하는 빌딩 블록의 후보 연결 요소의 리스트(520)이 된다. 따라서, 후보 연결 요소의 3차원 좌표가 알려진다. 일 실시예에서, 리스트(520)에 있는 각 엔트리는 화면에 미리 존재하는 빌딩 블록의 후보 연결 요소의 3차원 좌표를 포함하고, 식별기는 대응 빌딩 블록을 식별하고, 식별기 및/또는 좌표는 새로운 빌딩 블록의 대응 연결 요소를 식별한다.
단계(505)에서, 후보 연결 요소의 리스트(520)는 소정의 평가 규칙에 따라 후보 연결 요소를 평가함으로써 분류된다.
일 실시예에서, 후보 연결 요소는 가상 카메라로부터의 연결 요소들의 거리, 즉 디스플레이 영역(600)에 대응되는 투영 평면으로부터 연결 요소들의 상대적인 거리 및 후보 위치와 사용자에 의해 선택된 평면의 2차원 거리, 즉 새로운 빌딩 블록의 그래픽 표시 위치로부터 후보 위치의 디스플레이 영역에 투영의 변위에 따라서 평가된다. 예를 들어, 후보 위치를 카메라 위치에 더욱 근접시키기 위한 연결 요소는 더 높게 평가될 것인데, 즉 사용자에 의해 의도된 위치에 더 잘 대응될 수 있다. 마찬가지로, 3차원에서 사용자에 의해 선택된 위치로부터의 변위가 큰 후보 연결 포인트는 더 낮게 평가될 것이다.
일 실시예에서, 순서는 위 조건들에 부가되거나 대체되는 다른 기준에 따라 실행된다. 이 위치 평가 기준의 예는 하나 이상의 아래 기준을 포함한다.
- 카메라 위치로부터의 상대적인 위치
- 사용자에 의해 선택된 2차원 위치로부터의 변위
- 후보 연결 요소와 연결하기 위해 빌딩 블록의 필요 회전각
- 시인성 테스트, 예를 들어 후보 연결 요소가 현재 카메라 위치로부터 보인는지 여부. 일 실시예에서, 현재 위치로부터 보이지 않는 후보 연결 요소는 리스트에서 버려진다.
일 실시예에서, 몇몇 또는 모든 상기 기준은 위의 조건들이 각각의 가중치로 기여하는 비용 함수를 정의함으로써 조합되어 사용될 수 있다. 다른 실시예에서, 평가는 상기 규칙들 중의 하나, 구체적으로 필요한 2차원 변위에 따라 우선 실행된다. 둘 또는 그 이상의 후보 연결 요소가 동일하게 평가된다면, 그들 사이에 구별 을 위해 다른 규칙, 예를 들어 카메라로부터의 상대적인 거리, 필요 회전 등이 이용될 수 있다.
따라서, 소정 후보 연결 요소의 평가는 완성되고, 정렬된 리스트(520)는 상기 기준에 따라 정렬된 리스트에 대응된다. 이때, 정렬된 리스트(520)는 위의 위치 평가 규칙에 기초하여 버려지지 않은 모든 후보 연결 요소를 포함한다.
단계(508)에서, 정렬된 리스트(520)가 비어 있는지가 결정된다. 만약 리스트가 비어 있다면, 즉 새로운 빌딩 블록의 연결 요소에 충분히 작게 투영된 거리를 가지는 연결 요소가 없다면, 3차원 평면은 거부되고(단계 509), 즉 과정은 종결되며 그렇지 않으면 과정은 단계(510)에서 계속된다.
과정이 3차원 평면(단계 509)을 거부함으로써 종결된다면, 시각적 표시를 제공함으로써 사용자에게 표시되는 것이 바람직하다. 예를 들어, 마우스 이동에 대응되어 이동하는 빌딩 블록의 그래픽 표시는, 아직 놓이지 않은 빌딩 블록을 지시하는 형태로 도시할 수 있다. 3차원 위치가 발견될 때만, 그래픽 표시는 변환되고 이에 따라 완결되는 위치를 사용자에게 나타낸다. 예를 들어, 3차원 위치가 성공적으로 완결되지 않는 한, 빌딩 블록은 투명하게 도시되거나 및/또는 시인성 경계 상자 및/또는 블링킹(blincking) 및/또는 다른 적절한 형태로 나타낼 수 있다.
단계(510)에서, 높은 평가를 받은 후보 연결 요소가 선택되고, 새로운 빌딩 블록은 선택된 후보 연결 포인트 및 새로운 빌딩 블록의 대응되는 연결 포인트가 일치하도록 3차원 좌표계에 놓인다. 따라서, 가장 높은 평가에 따른 후보 위치가 선택된다. 이 위치는 일시적이고 컴퓨터 스크린 상에 아직 표시되지 않는다는 것 이 이해될 것이다.
단계(511)에서, 과정은 연결이 소정 연결 규칙에 따라 되었는지를 확인하는데, 예를 들어 새로운 빌딩 블록의 이 포인트와 다른 연결 포인트에서 연결 요소는 새로운 빌딩 블록이 연결되는 빌딩 블록의 연결 요소와의 연결이 가능하게 하는지를 확인한다. 이하에서 상세히 설명할 실시예인 이 테스트는 연결 검증이라고 지칭된다. 바람직한 실시예에서, 이 단계는 새로운 빌딩 블록이 후보 연결 요소에 연결될 때 카메라 위치로부터 보이는지 또는 존재하는 구조물에 의해 완전히 방해받았는지를 확인한다. 만약 연결이 거부되거나 빌딩 블록이 보이지 않는다면, 일시적인 3차원 위치는 거부되고 과정은 단계(512)에서 계속된다. 만약 과정이 연결을 확인하는데 성공한다면, 과정은 단계(513)에서 계속된다.
단계(512)에서, 연결이 거부되는 후보 연결 포인트는 정렬 리스트(520)에서 제거되고, 과정은 단계(508)로 되돌아오며, 가능하다면 다음 후보 연결 포인트가 선택된다.
단계(513)에서, 연결 테스트가 성공적이라면, 3차원 위치는 인정되는데, 즉 구조물의 그래픽 표시는 인정 위치에서 새로운 빌딩 블록을 "잡음"으로써 그리고 빌딩 블록의 외관을 변화함으로써 갱신된다. 일 실시예에서, 사용자는 마우스로 빌딩 블록을 클릭하고 위치 과정을 완결함으로써 위치를 인정할 수 있다. 만약, 사용자가 다른 위치로 빌딩 블록을 놓기를 원한다면, 사용자는 빌딩 블록을 클릭하지 않고 단순히 마우스를 이동하여, 새로운 빌딩 블록의 외관을 원래 외관으로 복귀시키고 빌딩 블록을 2차원 디스플레이 영역에서 다른 위치로 이동할 수 있다.
과정은 일 세트의 데이터 구조물을 유지하고, 각 데이터 구조물은 도4a 및 도4b와 관련하여 기술한 것처럼 3차원 화면 내에 놓인 빌딩 블록을 표시한다. 새로운 빌딩 블록의 3차원 위치를 인정할 때, 과정은 데이터 구조물의 일부로 새로운 빌딩 블록에 대응되는 데이터 구조물의 새로운 예를 추가함으로써 데이터 구조물을 갱신한다.
도7a 및 도7b는 스크린에 그래픽 표시의 약간 다른 2차원 위치로부터 야기된 도6a 및 도6b의 새로운 빌딩 블록의 두 위치를 도시한다. 도7a에서, 빌딩 블록(701)은 구조물(702)의 상면에 놓여 있다. 한편, 도7b에서는 빌딩 블록(701)이 구조물(702) 뒤의 기부 평판(703)에 놓여 있다. 따라서, 새로운 빌딩 블록의 2차원 위치를 약간 조정하는 것은, 사용자가 3차원 화면에서 두 개의 다른 위치 사이에서 식별하는 것을 가능하게 한다. 도7a 및 도7b는 또한 구조물(702)의 빌딩 블록(704)과 비교하여 사용자에 의해 조작되는 동안 새로운 빌딩 블록(701)의 다른 외관을 도시한다.
도8은 일시적인 3차원 위치에서 새로운 빌딩 블록의 연결 확인의 하위 과정의 일 실시예에 대한 흐름 개략도를 도시한다. 따라서, 과정은 새로운 빌딩 블록이 존재하는 구조물의 적어도 하나의 다른 빌딩 블록에 연결될 수 있는지를 확인한다. 다른 빌딩 블록은 제2 빌딩 블록으로 지칭된다.
초기 단계(801)에서, 과정은 붕괴 감지 및 시인성 테스트를 실행하는데, 즉 새로운 빌딩 블록이 화면에서 미리 존재하는 다른 빌딩 블록을 분할하는지 및 새로운 빌딩 블록이 기존 구조물에 의해 방해받고 현재 카메라 위치로부터 안보이는지 를 시험한다. 붕괴 감지는 적합한 붕괴 감지 방법, 바람직하게는 빌딩 블록의 경계 체적에 기초한 붕괴 감지 방법에 의해 실행될 수 있다. 이런 알고리즘의 예가 데이빗 에이치 어블리의 "3차원 게임 엔진 디자인"(모건 카우프만사, 2001)에 의해 개시되어 있다. 마찬가지로, 시인성 테스트도 종래에 알려진 적합한 방법에 의해 실행될 수 있다. 만약 유효하지 않은 분할이 발견되면, 즉 빌딩 블록의 경계 체적이 분할되면 또는 만약 빌딩 블록이 현재 카메라 위치로부터 보이지 않는다면, 이 지점 및 방향에서 빌딩 블록의 위치는 거부된다. 만약 빌딩 블록이 적어도 부분적으로 보이고 유효한 분할이 발견된다면, 즉 경계 체적이 아니라 경계 박스의 표면의 적어도 일부분이 분할된다면, 과정은 단계(802)에서 계속된다.
단계(802)에서, 경계 상자의 표면의 감지된 분할에 속하는 새로운 빌딩 블록과 제2 빌딩 블록의 모든 연결 지점이 결정된다. 이미 연결되지 않은 연결 포인트는 고려될 필요가 없다. 이 연결 포인트는 적절한 연결 포인트로 지칭된다.
단계(803)에서, 새로운 빌딩 블록의 제1의 적절한 연결 포인트, 즉 임의의 선택 연결 포인트가 선택된다.
단계(804)에서, 새로운 빌딩 블록의 선택된 연결에서 과정은 선택된 연결 포인트와 동일한 좌표를 가지는 제2 빌딩 블록의 적절한 연결 포인트가 있는지를 체크한다. 일 실시예에서, 빌딩 블록이 개별 체적 기준 그리드에 놓이고 모든 좌표는 임의의 길이 단위의 배수인 경우, 좌표의 정확한 조화가 요구될 수 있다. 연속 또는 연속과 유사한 기준 좌표계에서, 그리드 포인트는 소정 한계 내에서 일치하는 것이 요구될 수 있다.
만약 조화 연결 포인트가 발견되지 않는다면, 과정은 단계(814)에서 계속된다.
단계(814)에서, 선택된 연결 포인트의 소정 인접부 내에서 다른 적절한 연결 포인트가 있는지가 감지된다. 예를 들어, 두 인접 연결 요소 사이의 거리가 10LU인 일 실시예에서, 소정 인접부는 (x, y, z)에서 선택 연결 지점 주위의 큐브 (x ± 5LU, y ± 5LU, z ± 5LU)로 선택될 수 있다. 만약 선택된 연결 포인트의 소정 인접부 내에서 다른 적절한 연결 포인트가 존재한다면, 두 개의 빌딩 블록의 연결은 거부되고(단계 811), 알고리즘은 종결된다. 따라서, 본 실시예에서 그리드 포인트가 균일 그리드로 놓여 있다면, 빌딩 블록의 유효하지 않은 위치가 효과적으로 검출될 수 있다. 만약 제2 빌딩 블록의 적절한 연결 포인트와의 부조화가 새로운 빌딩 블록의 적절한 연결 포인트의 하나에서 발견된다면, 새로운 빌딩 블록의 남은 연결 포인트는 체크될 필요가 없으며 이에 따라 검출 과정의 속도를 증가시킨다.
만약 단계(814)에서 모순되는 적절한 연결 포인트가 발견되지 않는다면, 과정은 단계(809)에서 계속된다.
만약 조화 연결 포인트가 단계(804)에서 발견된다면, 선택된 연결 포인트의 소정 인접부 내, 즉 (x, y, z)에서 선택 연결 포인트 주위의 큐브 (x ± 5LU, y ± 5LU, z ± 5LU)에서 다른 적절한 연결 포인트가 있는지가 감지되는 경우에 과정은 단계(805)에서 계속된다. 만약 다른 연결 포인트가 소정 인접부에서 발견된다면, 위치는 거부되고(단계 811), 그렇지 않으면 과정은 단계(806)에서 계속된다.
대체 실시예에서, 위의 제한은 필요 없을 수 있다. 또한, 다른 실시예에서 위 제한은 임의의 연결 형태로 한정될 수도 있다.
단계(806)에서, 과정은 선택 연결 지점 및 검출된 조화 연결 포인트가 대향 방향을 갖는지를 검출하는데, 즉 관련 축이 공통 라인을 따라 있다면 대향 방향이 있는 것이다. 따라서, 단지 결합하기에 적합한 상대적인 방향으로 위치한 연결 요소만 단지 허가된다.
대체 실시예에서, 위 제한은 연결 요소가 방향의 범위를 인정하는 실시예에서 방향의 범위를 허용함으로써 완화될 수 있다.
만약 연결 포인트의 상대적인 방향이 수용된다면, 과정은 단계(807)에서 계속되고 그렇지 않으면 위치는 거부된다(단계 811).
단계(807)에서, 선택된 연결 포인트와 대응되는 검출 조화 연결 요소의 연결 형태가 비교된다. 일 실시예에서, 각각의 연결 요소는 관련된 연결 형태, 예를 들면 노브, 홀, 에지, 코너, 힌지, 핀, 작은 핀 등을 가진다. 과정은 메모리에 저장된 연결 테이블(813)에 접근한다. 연결 테이블은 모든 연결 형태의 연결 유형을 포함하며, 연결 형태의 특정한 쌍이 두 개의 빌딩 블록의 연결에 어떻게 영향을 미치는지를 나타낸다. 예를 들어, 연결 형태의 모든 쌍은 "옳은", "틀린", "빈" 연결 형태와 관련될 수 있다. 연결 형태 "옳은"은 연결이 유효하고 대응 연결 요소가 두 개의 빌딩 블록을 연결하도록 결합시키는 것, 예를 들어 노브가 대응 구멍과 결합하는 것을 가리킨다. 연결 형태 "틀린"은 연결이 허락되지 않는다는 것을 가리킨다. 예들 들어, 노브와 노브 사이의 연결은 가능하지 않다. 연결을 제공할 수 없을 뿐만 아니라 연결을 불가능하게 하도록 한다. 마지막으로, 연결 형태 "빈"은 연결을 막는 것이 아무 것도 없지만 실제로 연결되어 있지 않다는 것을 가리킨다. 예를 들어, 이는 구멍과 구멍의 경우이다. 따라서, 연결 포인트의 주어진 쌍에 있어서, 과정은 저장된 연결 테이블(813)로부터 대응되는 연결 형태를 후퇴시킬 수 있다.
하위 단계(808)에서, 연결성의 결과가 "틀린"인지 즉 대응 연결 형태 사이에 어떤 유효한 연결도 가능하지 않은지가 테스트 된다. 만약 연결 결과가 "틀린"이면 새로운 빌딩 블록의 위치는 거부되고(단계 811), 그렇지 않으면 연결 결과는 저장되고 과정은 단계(809)에서 계속된다.
단계(809)에서, 새로운 빌딩 블록의 모든 적절한 연결 요소가 처리되었는지가 테스트 된다. 만약 그렇지 않다면, 아직 처리되지 않은 적절한 연결 포인트가 선택되고(단계 812), 새로 선택된 연결 포인트로 위의 단계(804, 805, 806, 807, 808)를 실행함으로써 처리된다.
만약 새로운 빌딩 블록의 모든 연결 포인트가 처리되고 위치가 거부되지 않는다면, 위치는 수용되고 과정은 단계(810)에서 계속된다. 단계(810)에서, 저장된 연결성의 결과에 기초하여 빌딩 블록이 연결되는 방식과 각각의 데이터 구조물이 이에 따라 갱신되는 방법이 결정된다.
처음에, 모든 연결 결과가 "빈"인지 체크된다. 만약 그렇다면, 즉 어떤 것도 빌딩 블록의 위치를 막지 않고 어떤 연결 요소도 빌딩 블록을 연결하도록 실제로 결합하지 않는다면, 새로운 빌딩 블록은 현재 위치에서 인정된다. 일 실시예에서, 추가 알고리즘은 경계 체적에 기초하여 이 위치에 놓인 실제 빌딩 블록이 쓰러 지는지, 경사지는지를 결정할 수 있으며, 따라서 이 위치를 인정하거나 거부할 수 있다.
그렇지 않다면, 즉 하나 이상의 연결성 결과가 옳다면, 과정은 빌딩 블록이 연결되는 방식, 즉 견고하게 연결되는지 또는 연결이 상대적인 회전이나 이동 등이 가능한지를 결정한다.
일단 데이터 구조물이 갱신되면, 하위 과정은 종결되고 도5의 전체 과정으로 복귀한다.
도9a 및 도9b는 회전을 포함하는 빌딩 블록의 연결을 도시한다. 일 실시예에서, 연결 포인트는 스크린 상에 보이는 새로운 빌딩 블록의 방향, 즉 사용자에 의해 선택된 방향이나 기본 방향에 대해서만 체크한다. 사용자가 빌딩 블록의 회전 후에 새로운 빌딩 블록을 연결하기를 원할 때, 방향은 적합한 사용자 인터페이스 제어, 즉 그래픽 사용자 인터페이스의 메뉴에서 선택될 수 있는 회전 도구, 키보드 명령 등에 의해 조절될 수 있다. 예를 들어, 사용자는 다른 축 주위에서 90도 회전에 대응되는 개별 방향의 시퀀스를 수행하도록 새로운 빌딩 블록을 제어할 수 있다. 예를 들어, 도9a 및 도9b에서 빌딩 블록(901)은 빌딩 블록(901)의 사용자 선택 방향에 따라 구조물(902)에 다른 방식으로 연결된다. 도9a에서, 빌딩 블록(901)은 구조물(902)의 상면에 연결된다. 도9b에서 빌딩 블록(901)은 수직 평면에 위치한 구조물(902)의 노브(903)에 연결된다.
대체 실시예에서, 빌딩 블록의 자동적인 재 방향이 인정된다. 예를 들어, 단계(도5의 510 및 511)에서 후보 위치를 분석할 때, 새로운 빌딩 블록의 다른 회 전은 추가적인 후보 위치로써 고려될 수 있고 실행되는 평가와 이어지는 연결성 검증에 따라 분석될 수 있다. 예를 들어, 새로운 빌딩 블록이 임의의 각도에서 힌지로 연결되는 때, 사용자가 새로운 빌딩 블록을 힌지의 축에 완전히 정렬하는 것은 필요하지 않다. 상기 과정은 회전된 위치를 평가하고, 회전 후 새로운 빌딩 블록을 연결한다. 일 실시예에서, 자동적인 재 방향은 소정의 공간 각도, 예를 들어 45도, 30도 등으로 제한되고 이에 따라 사용자를 혼란시키고 의도되지 않은 결과를 가져오는 큰 회전을 피할 수 있다.
위에 기술된 과정의 다른 장점은, 새로운 빌딩 블록이 놓이고 연결되는 위치에 대해 사용자가 명확한 지시를 받는다는 점이다. 또한, 사용자에 의해 제어되는 것처럼 스크린 상에 새로운 빌딩 블록의 2차원 위치의 사소한 수정은 즉시 실행되고, 이에 따라 부드럽고 자연스러운 작업 흐름이 제공된다.
당업자가 본 발명의 범위 내에서 위 방법의 변형이 가능하다는 것이 이해될 것이다. 예를 들어, 위 단계의 일부 순서가 바뀌고 단계들이 조합될 수 있다.
예를 들어, 3차원 화면에 새로운 빌딩 블록을 놓은 후에, 사용자는 유사한 위치를 탐색하기 위한 탐색을 실행할 수 있다. 일 실시예에서, 탐색 도구는 사용자가 도5의 정렬된 리스트(520)의 위치를 찾도록 하고, 이에 따라 사용자가 가능한 하나의 위치를 선택하게 한다.
대상물의 디지털 표시의 "조작"이라는 용어는 디지털 표시의 사용자에 의해 제어된 조작, 예를 들어 새로운 빌딩 블록의 연결하는 것, 기존 빌딩 블록을 한 위치에서 다른 위치로 이동시키는 것, 3차원 영상에서 빌딩 블록의 위치를 변화시키 는 것 등의 다른 작업을 지칭하는 것으로 여겨진다.

Claims (19)

  1. 2차원적인 커서의 이동에 의해 3차원의 가상 빌딩 블록 모델을 조작하는 컴퓨터에 의한 실행 방법이며,
    상기 가상 빌딩 블록 모델은, 각각이 연결 규칙에 따라 가상 빌딩 블록을 다른 가상 빌딩 블록과 연결하기 위한 다수의 연결 요소를 가지는 복수의 가상 빌딩 블록을 포함하며, 상기 방법은,
    3차원 좌표계에서 다수의 상기 가상 빌딩 블록을 포함하는 구조물의 디지털 표시를 제공하는 단계와,
    상기 구조물의 투영을 표시하는 2차원 컴퓨터 디스플레이 영역에서 커서의 이동에 의해 제1 가상 빌딩 블록의 2차원적인 투영이 구조물에 연결되도록 위치시키고 결과적으로 2차원 위치 좌표를 만드는 단계와,
    상기 2차원 위치 좌표로부터 3차원 좌표계에서 제1 가상 빌딩 블록의 다수의 3차원 후보 위치를 결정하는 단계와,
    연결 규칙 및 소정의 위치 평가 규칙에 기초하여 상기 후보 위치들 중의 하나를 선택하는 단계와,
    선택된 후보 위치에서 상기 구조물에 제1 빌딩 블록을 연결하는 단계를 포함하는 컴퓨터 실행 방법.
  2. 제1항에 있어서, 다수의 3차원 후보 위치를 결정하는 단계는 3차원 좌표계에서 제1 가상 빌딩 블록의 다수의 후보 방향을 결정하는 단계를 더 포함하는 컴퓨터 실행 방법.
  3. 제1항 또는 제2항에 있어서,
    각각이 2차원 디스플레이 영역에서 제1 가상 빌딩 블록의 연결 요소의 투영 주위의 소정 인접부 내에 투영을 가지는, 상기 구조물의 다수의 후보 연결 요소를 결정하는 단계와,
    연결 규칙 및 소정의 위치 평가 규칙에 기초하여 상기 후보 연결 요소 중 하나를 선택하는 단계와,
    제1 가상 빌딩 블록과 상기 구조물 사이의 연결이 연결 규칙에 의해 유효한 경우, 적어도 선택된 후보 연결 요소를 거쳐서 제1 가상 빌딩 블록을 구조물에 연결하는 단계를 더 포함하는 컴퓨터 실행 방법.
  4. 제3항에 있어서, 상기 후보 연결 요소들 중의 하나를 선택하는 단계는, 가상 카메라 위치로부터의 후보 연결 요소의 거리에 대해 후보 연결 요소를 평가하는 단계를 더 포함하는 컴퓨터 실행 방법.
  5. 제3항에 있어서, 상기 후보 연결 요소들 중의 하나를 선택하는 단계는, 현재 가상 카메라 위치로부터 보이지 않는 후보 연결 요소를 버리는 단계를 더 포함하는 컴퓨터 실행 방법.
  6. 제3항에 있어서, 상기 후보 연결 요소들 중의 하나를 선택하는 단계는, 제1 가상 빌딩 블록의 대응하는 연결 요소의 2차원 투영까지의 후보 연결 요소들의 2차원 투영의 거리에 대하여 후보 연결 요소를 평가하는 단계를 더 포함하는 컴퓨터 실행 방법.
  7. 제3항에 있어서, 각각의 가상 빌딩 블록에 대해 상기 구조물의 디지털 표시는 가상 빌딩 블록의 표면들 중 적어도 하나에 대응되는 다수의 균일 그리드를 포함하고, 각각의 균일 그리드는 다수의 그리드 포인트를 포함하며, 각각의 그리드 포인트는 연결 요소를 나타내는 컴퓨터 실행 방법.
  8. 제7항에 있어서, 제1 가상 빌딩 블록의 연결 요소의 투영 주위에 상기 소정의 인접부는, 대응하는 균일 그리드의 인접 그리드 포인트 사이의 거리에 대응되는 직경을 가지는 컴퓨터 실행 방법.
  9. 제1항 또는 제2항에 있어서, 후보 위치의 수를 결정하는 단계는, 회전된 빌딩 블록의 후보 위치를 획득하기 위해 제1 빌딩 블록을 회전시키는 단계를 더 포함하는 컴퓨터 실행 방법.
  10. 제9항에 있어서, 제1 빌딩 블록의 회전은 사용자에 의해 선택된 방향 주위의 소정의 공간 각도로 제한되는 컴퓨터 실행 방법.
  11. 제1항 또는 제2항에 있어서, 제1 가상 빌딩 블록의 사용자에 의해 선택된 방향을 제어하는 사용자 명령을 수신하는 단계를 더 포함하는 컴퓨터 실행 방법.
  12. 제11항에 있어서, 사용자에 의해 선택된 방향은 한 세트의 개별화된 방향들 중의 하나로 제한되는 컴퓨터 실행 방법.
  13. 제1항 또는 제2항에 있어서, 2차원적인 투영은 평행 투영인 컴퓨터 실행 방법.
  14. 컴퓨터 프로그램이 저장된 저장 매체를 포함하는 데이터 처리 시스템이며,
    상기 컴퓨터 프로그램은 상기 프로그램이 데이터 처리 시스템에서 실행될 때 제1항 또는 제2항의 모든 단계를 실행하기 위한 프로그램 코드 수단을 포함하는, 데이터 처리 시스템.
  15. 삭제
  16. 삭제
  17. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체이며,
    상기 컴퓨터 프로그램은 상기 프로그램이 컴퓨터에서 실행될 때 제1항 또는 제2항의 모든 단계를 실행하기 위한 프로그램 코드 수단을 포함하는, 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 저장 매체.
  18. 삭제
  19. 제3항에 있어서, 상기 후보 연결 요소들 중의 하나를 선택하는 단계는,
    가상 카메라 위치로부터의 후보 연결 요소의 거리에 대한 후보 연결 요소를 평가하는 단계와,
    현재 가상 카메라 위치로부터 보이지 않는 후보 연결 요소를 버리는 단계와,
    제1 가상 빌딩 블록의 대응하는 연결 요소의 2차원 투영까지의 후보 연결 요소들의 2차원 투영의 거리에 대하여 후보 연결 요소를 평가하는 단계를 더 포함하는 컴퓨터 실행 방법.
KR1020057022004A 2003-05-20 2005-11-18 3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템 KR101071011B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DKPA200300759 2003-05-20
DKPA200300759 2003-05-20
PCT/DK2004/000341 WO2004104811A2 (en) 2003-05-20 2004-05-13 Method and system for manipulating a digital representation of a three-dimensional object

Publications (2)

Publication Number Publication Date
KR20060013407A KR20060013407A (ko) 2006-02-09
KR101071011B1 true KR101071011B1 (ko) 2011-10-06

Family

ID=33462050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022004A KR101071011B1 (ko) 2003-05-20 2005-11-18 3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템

Country Status (10)

Country Link
US (1) US7755620B2 (ko)
EP (1) EP1625488A2 (ko)
JP (1) JP4418468B2 (ko)
KR (1) KR101071011B1 (ko)
CN (1) CN100340960C (ko)
CA (1) CA2524031C (ko)
HK (1) HK1090720A1 (ko)
NO (1) NO337287B1 (ko)
PL (1) PL378138A1 (ko)
WO (1) WO2004104811A2 (ko)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596473B2 (en) 2003-05-20 2009-09-29 Interlego Ag Method of constructing a virtual construction model
US7480597B2 (en) 2003-05-20 2009-01-20 Lego A/S Method, system and storage medium for generating virtual brick models
US7467154B2 (en) 2005-06-29 2008-12-16 Microsoft Corporation Producing a locally optimal path through a lattice by overlapping search
WO2011017393A1 (en) 2009-08-04 2011-02-10 Eyecue Vision Technologies Ltd. System and method for object extraction
US20080036758A1 (en) * 2006-03-31 2008-02-14 Intelisum Inc. Systems and methods for determining a global or local position of a point of interest within a scene using a three-dimensional model of the scene
US8374829B2 (en) 2007-03-16 2013-02-12 Lego A/S Automatic generation of building instructions for building element models
US20100138793A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Discrete objects for building virtual environments
US9092110B2 (en) * 2008-12-16 2015-07-28 Cadence Design Systems, Inc. Method and system for implementing a user interface with ghosting
US8255807B2 (en) * 2008-12-23 2012-08-28 Ganz Item customization and website customization
JP5782431B2 (ja) * 2009-05-27 2015-09-24 オブロング・インダストリーズ・インコーポレーテッド 空間動作システムと共に用いるための空間マルチモード制御デバイス
US8647621B2 (en) 2009-07-27 2014-02-11 Fina Biosolutions, Llc Method of producing protein-carbohydrate vaccines reduced in free carbohydrate
US20110029904A1 (en) * 2009-07-30 2011-02-03 Adam Miles Smith Behavior and Appearance of Touch-Optimized User Interface Elements for Controlling Computer Function
US9595108B2 (en) 2009-08-04 2017-03-14 Eyecue Vision Technologies Ltd. System and method for object extraction
CA2774114C (en) * 2009-10-02 2018-07-31 Lego A/S Connectivity depended geometry optimization for real-time rendering
EP2333683A1 (en) * 2009-11-06 2011-06-15 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
EP2333682B1 (en) * 2009-11-06 2020-05-20 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
BR112012014882B1 (pt) 2009-12-17 2022-05-31 Fina Biosolutions, Llc Processo de conjugação de carboidratos na preparação de vacinas conjugadas e suas respectivas vacinas ou agentes diagnósticos
US20110165939A1 (en) * 2010-01-05 2011-07-07 Ganz Method and system for providing a 3d activity in a virtual presentation
CN102771126A (zh) * 2010-02-24 2012-11-07 夏普株式会社 图像编码装置、图像解码装置及数据结构
CA2790268A1 (en) * 2010-02-24 2011-09-01 Nippon Telegraph And Telephone Corporation Multiview video encoding method, multiview video decoding method, multiview video encoding apparatus, multiview video decoding apparatus, and program
JP5223062B2 (ja) * 2010-03-11 2013-06-26 株式会社ジオ技術研究所 3次元地図描画システム
JP2011205513A (ja) * 2010-03-26 2011-10-13 Aisin Seiki Co Ltd 車両周辺監視装置
AU2010351576B2 (en) 2010-04-23 2014-08-14 FinaBioSolutions, LLC Simple method for simultaneous removal of multiple impurities from culture supernatants to ultralow levels
US8836719B2 (en) 2010-04-23 2014-09-16 Ganz Crafting system in a virtual environment
KR101379188B1 (ko) * 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
CN102907099A (zh) * 2010-05-20 2013-01-30 星河通信株式会社 适用利用选择性运动检索区域的运动补偿方法的视频压缩编码装置及解码装置和用于运动补偿的选择性运动检索区域的决定方法
US20130064302A1 (en) * 2010-05-20 2013-03-14 Galaxia Communications Co., Ltd. Video compression coding device and decoding device applied with motion compensation technique using selective reference frame, and method for determining selective reference frame for motion compensation
CN102004623B (zh) * 2010-11-29 2013-02-27 深圳市九洲电器有限公司 一种三维图像显示装置及方法
CN102614658A (zh) * 2011-01-29 2012-08-01 无锡爱睿芯电子有限公司 交互式电子积木系统
ES2718654T3 (es) 2011-02-22 2019-07-03 Sun Patent Trust Procedimiento de codificación de imagen, procedimiento de descodificación de imagen, dispositivo de codificación de imagen, dispositivo de descodificación de imagen y dispositivo de codificación / descodificación de imagen
KR101954461B1 (ko) * 2011-02-22 2019-03-05 타지반 투 엘엘씨 필터 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치
WO2012135843A1 (en) * 2011-03-31 2012-10-04 Tetris Holding, Llc Systems and methods for manipulation of objects
WO2012160055A1 (en) 2011-05-23 2012-11-29 Lego A/S A toy construction system for augmented reality
CN103702726B (zh) * 2011-05-23 2016-01-13 乐高公司 玩具搭建系统、产生构建指令的方法和数据处理系统
WO2013004720A1 (en) 2011-07-05 2013-01-10 Lego A/S Method and system for designing and producing a user-defined toy construction element
CN107197262B (zh) 2011-07-19 2018-10-23 太格文-Ii有限责任公司 解码方法以及解码装置
WO2013038950A1 (ja) * 2011-09-13 2013-03-21 富士フイルム株式会社 立体撮像装置
US20130107029A1 (en) * 2011-10-26 2013-05-02 Mysnapcam, Llc Systems, methods, and apparatus for monitoring infants
US9237358B2 (en) 2011-11-08 2016-01-12 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US9392235B2 (en) 2011-11-18 2016-07-12 Google Technology Holdings LLC Explicit way for signaling a collocated reference picture for video coding
KR101606661B1 (ko) 2011-11-18 2016-03-25 모토로라 모빌리티 엘엘씨 고효율 비디오 코딩(hevc)을 위한 병치된 화상을 시그널링하기 위한 명시적 방법
KR101662139B1 (ko) 2011-11-18 2016-10-10 구글 테크놀로지 홀딩스 엘엘씨 고효율 비디오 코딩을 위한 움직임 정보의 효율적인 저장
US9467694B2 (en) 2011-11-21 2016-10-11 Google Technology Holdings LLC Implicit determination and combined implicit and explicit determination of collocated picture for temporal prediction
US9639959B2 (en) * 2012-01-26 2017-05-02 Qualcomm Incorporated Mobile device configured to compute 3D models based on motion sensor data
US20130235038A1 (en) * 2012-03-06 2013-09-12 Benjamin Michael Tkacheff Method for Preselecting Three-Dimensional Space for Triggering Automated Construction of a Three-Dimensional Structure
US9210425B2 (en) 2012-04-11 2015-12-08 Google Technology Holdings LLC Signaling of temporal motion vector predictor (MVP) flag for temporal prediction
WO2013154674A1 (en) 2012-04-11 2013-10-17 Motorola Mobility Llc Evaluation of signaling of collocated reference picture for temporal prediction
US9319681B2 (en) 2012-07-18 2016-04-19 Google Technology Holdings LLC Signaling of temporal motion vector predictor (MVP) enable flag
US9854138B2 (en) * 2012-09-20 2017-12-26 Gyrus Acmi, Inc. Fixed pattern noise reduction
JP5903023B2 (ja) * 2012-10-04 2016-04-13 株式会社ジオ技術研究所 立体視地図表示システム
JP2014102685A (ja) * 2012-11-20 2014-06-05 Sony Corp 情報処理装置、情報処理方法及びプログラム
US9500526B2 (en) * 2013-02-01 2016-11-22 Dicon Fiberoptics Inc. High-throughput and high resolution method for measuring the color uniformity of a light spot
JP6193135B2 (ja) * 2014-01-21 2017-09-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
EP3098782B1 (en) 2014-01-21 2021-06-16 Sony Interactive Entertainment Inc. Information processing device and information processing method
JP6027554B2 (ja) 2014-01-21 2016-11-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法
US10583354B2 (en) 2014-06-06 2020-03-10 Lego A/S Interactive game apparatus and toy construction system
US10646780B2 (en) 2014-10-02 2020-05-12 Lego A/S Game system
KR101653878B1 (ko) * 2014-10-29 2016-09-05 중앙대학교 산학협력단 3차원 형상의 모델링을 위한 블록 및 사용자 단말기와 이를 이용한 3차원 형상의 모델링 방법
GB2532075A (en) 2014-11-10 2016-05-11 Lego As System and method for toy recognition and detection based on convolutional neural networks
CN104616554B (zh) * 2015-02-25 2016-03-16 朱琳莉 虚拟积木系统
US10223589B2 (en) * 2015-03-03 2019-03-05 Cognex Corporation Vision system for training an assembly system through virtual assembly of objects
US20170232354A1 (en) * 2015-03-19 2017-08-17 Edwin N. Arboleda Play Mat System
WO2016153080A1 (ko) * 2015-03-20 2016-09-29 주식회사 와이즈게코 블록을 이용한 3차원 프린터용 모델링 도구
US10552550B2 (en) * 2015-09-26 2020-02-04 Intel Corporation Technologies for physical programming
KR101758781B1 (ko) 2016-01-25 2017-07-17 (주)버블블록 조립식 블록 기초판 및 조립식 블록 기초판 조립체
US10275222B2 (en) 2016-03-15 2019-04-30 Intel Corporation Technologies for physical programming
US10102768B2 (en) * 2016-03-19 2018-10-16 Fujitsu Limited Behavior variability and complexity modeling using a construction toy
US10074205B2 (en) 2016-08-30 2018-09-11 Intel Corporation Machine creation of program with frame analysis method and apparatus
US10773179B2 (en) * 2016-09-08 2020-09-15 Blocks Rock Llc Method of and system for facilitating structured block play
CN108339284B (zh) * 2017-01-25 2020-03-10 智高实业股份有限公司 连接积木
CN107029424A (zh) * 2017-05-10 2017-08-11 北京派希教育科技有限公司 一种用于增强现实的积木搭建系统及方法
CN110189580A (zh) * 2018-02-23 2019-08-30 洪荣昭 空间能力评测方法及系统
USD844394S1 (en) 2018-03-29 2019-04-02 Kraft Foods Group Brands Llc Mold
US10894342B2 (en) 2018-03-29 2021-01-19 Kraft Foods Group Brands Llc System and method for molding comestible building blocks
CN109407945B (zh) * 2018-11-08 2021-08-27 山东数字人科技股份有限公司 一种基于vr的三维拼图实现方法和三维拼图系统
CN109615691B (zh) * 2018-11-27 2022-10-28 中国科学技术大学 积木模型生成系统
KR102019629B1 (ko) * 2019-02-15 2019-09-06 박성이 양방향 체결돌기를 갖는 레고식 블록 조립체
US20220198086A1 (en) * 2019-04-15 2022-06-23 Fastbrick Ip Pty Ltd Method and system for designing a block sequence for use in ordering blocks for placement during construction
AU2020259905A1 (en) * 2019-04-15 2021-11-11 Fastbrick Ip Pty Ltd Method and system for designing block layouts for use in block placement during construction
CN110211243B (zh) * 2019-06-06 2023-12-01 北京悉见科技有限公司 Ar设备及其实体标注方法
CN110992472A (zh) * 2019-12-06 2020-04-10 广东邦宝益智玩具股份有限公司 一种积木3d模型智能搭建系统的构建方法
US11393153B2 (en) * 2020-05-29 2022-07-19 The Texas A&M University System Systems and methods performing object occlusion in augmented reality-based assembly instructions
CN111832104B (zh) * 2020-06-24 2023-07-28 深圳市万翼数字技术有限公司 三维设备模型的建立方法及相关设备
WO2023157320A1 (ja) * 2022-03-03 2023-08-24 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理方法、および情報処理装置
CN117337206A (zh) * 2022-03-03 2024-01-02 任天堂株式会社 信息处理系统、信息处理程序、信息处理方法以及信息处理装置
WO2023157321A1 (ja) * 2022-03-03 2023-08-24 任天堂株式会社 情報処理システム、情報処理プログラム、情報処理方法、および情報処理装置
CN114896812A (zh) * 2022-06-08 2022-08-12 深圳千帜科技有限公司 一种积木打印的自动排版方法、设备、存储介质及系统
US20240165520A1 (en) * 2022-08-09 2024-05-23 Reuven Bakalash Build and Design-an Integrated-Reality Educational Gaming Application
US20240050854A1 (en) * 2022-08-09 2024-02-15 Reuven Bakalash Integrated Reality Gaming

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1047017A2 (en) 1999-04-23 2000-10-25 Mitsubishi Denki Kabushiki Kaisha Concurrently interacting objects expressed in multiple worlds

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694142A (en) * 1993-06-21 1997-12-02 General Electric Company Interactive digital arrow (d'arrow) three-dimensional (3D) pointing
US5463722A (en) * 1993-07-23 1995-10-31 Apple Computer, Inc. Automatic alignment of objects in two-dimensional and three-dimensional display space using an alignment field gradient
US5757361A (en) * 1996-03-20 1998-05-26 International Business Machines Corporation Method and apparatus in computer systems to selectively map tablet input devices using a virtual boundary
US6426745B1 (en) * 1997-04-28 2002-07-30 Computer Associates Think, Inc. Manipulating graphic objects in 3D scenes
US6629065B1 (en) * 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
US6389375B1 (en) * 1999-01-22 2002-05-14 Interlego Ag Virtual reality modelling
WO2000043959A2 (en) * 1999-01-22 2000-07-27 Lego A/S Virtual reality modelling
US6438922B1 (en) * 1999-09-24 2002-08-27 Delefevre Patrick Method of designing a building for maximum compatability with modular forms
US20020196250A1 (en) * 2001-06-20 2002-12-26 Gateway, Inc. Parts assembly for virtual representation and content creation
ES2277106T3 (es) 2002-10-11 2007-07-01 Lego A/S Procedimiento para generar un modelo legible por ordenador.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1047017A2 (en) 1999-04-23 2000-10-25 Mitsubishi Denki Kabushiki Kaisha Concurrently interacting objects expressed in multiple worlds

Also Published As

Publication number Publication date
HK1090720A1 (en) 2006-12-29
CN100340960C (zh) 2007-10-03
WO2004104811A2 (en) 2004-12-02
NO20055872L (no) 2006-02-09
US20070063997A1 (en) 2007-03-22
JP4418468B2 (ja) 2010-02-17
NO337287B1 (no) 2016-02-29
CN1791850A (zh) 2006-06-21
CA2524031C (en) 2015-07-07
CA2524031A1 (en) 2004-12-02
US7755620B2 (en) 2010-07-13
WO2004104811A3 (en) 2005-05-12
EP1625488A2 (en) 2006-02-15
JP2007500906A (ja) 2007-01-18
KR20060013407A (ko) 2006-02-09
PL378138A1 (pl) 2006-03-06

Similar Documents

Publication Publication Date Title
KR101071011B1 (ko) 3차원 대상물의 디지털 표시를 조작하기 위한 방법 및시스템
KR100970790B1 (ko) 컴퓨터 판독가능한 모델을 생성하는 방법
EP2714223B1 (en) Generation of building instructions for construction element models
US7979251B2 (en) Automatic generation of building instructions for building element models
US6628279B1 (en) System and method for three-dimensional modeling
US20110246949A1 (en) Methods and System for Modifying Parameters of Three Dimensional Objects Subject to Physics Simulation and Assembly
Onstott AutoCAD 2017 and AutoCAD LT 2017: Essentials
Byrnes AutoCAD 2012 for Dummies
Oh et al. A system for desktop conceptual 3D design
Mackie et al. Desktop and immersive tools for residential home design
Cline Fusion 360 for Makers
Tickoo NX 8.5 for Designers
Chittaro et al. 3d object arrangement for novice users: the effectiveness of combining a first-person and a map view
Azevedo Framework for creating augmented reality (AR) experiences
Oh Desktop 3D conceptual design systems
Han A Concurrent Physical and Digital Modeling Environment/Exploring Tactile and Parametric Interactions in Design Modeling
HAN et al. Mellon University 1luhan9061@ gmail. com 2dcardoso@ cmu. edu
Salzman et al. Constraint Based 3D Scene Construction
Samuel et al. Practical Unigraphics NX2 Modeling for Engineers
Yeung Creation of 3D model from 2D floor plan
Dias et al. Urban Sketcher: Creating Urban Scenery Using Multimodal Interfaces on Large Screen Displays
Azmi A Natural Interface for 3D Manipulation
Mapes et al. Three-dimensional (3D) object manipulation techniques: immersive versus nonimmersive interfaces

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170922

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 8