KR20230050143A - 도면 공간 탐색 방법 및 장치 - Google Patents
도면 공간 탐색 방법 및 장치 Download PDFInfo
- Publication number
- KR20230050143A KR20230050143A KR1020210133476A KR20210133476A KR20230050143A KR 20230050143 A KR20230050143 A KR 20230050143A KR 1020210133476 A KR1020210133476 A KR 1020210133476A KR 20210133476 A KR20210133476 A KR 20210133476A KR 20230050143 A KR20230050143 A KR 20230050143A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- polygon
- room
- polygons
- wall
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004891 communication Methods 0.000 claims description 10
- 238000002372 labelling Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 82
- 230000008878 coupling Effects 0.000 description 18
- 238000010168 coupling process Methods 0.000 description 18
- 238000005859 coupling reaction Methods 0.000 description 18
- 238000010276 construction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009408 flooring Methods 0.000 description 1
- 239000011121 hardwood Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/187—Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/18—Details relating to CAD techniques using virtual or augmented reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Analysis (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
실시예는 도면 공간 탐색 방법 및 장치에 관한 것으로서, 도면 저작시 도면에서 방에 해당하는 공간을 자동으로 탐색하는 도면 공간 탐색 방법 및 장치를 제공한다.
Description
본 발명의 실시예는 도면 공간 탐색 방법 및 장치에 관한 것으로서, 보다 상세하게는 인테리어 프로그램에서 도면 저작시 방에 해당하는 영역을 자동으로 탐색하는 도면 공간 탐색 방법 및 장치에 관한 것이다.
종래에는 주거 혹은 상업적 공간의 인테리어 디자인의 구축 및 관리를 위해 인테리어 전문가의 현장조사와 고객의 요구를 바탕으로, 오랜 시간 동안 사전 검토 작업이 수행되었다.
그리고, 인테리어 공사는 복잡하고, 다양한 추가요소와 변경사항이 존재한다. 따라서 전문가와 고객이 구체적인 사항을 협의하고 시공 계약을 체결한 후 시공을 진행하더라도 완료된 인테리어가 고객의 예상과는 다를 수 있다. 또한, 국부적인 인테리어 자재에 따라 고객이 느끼는 전체 인테리어 디자인이 달라 보일 수 있다. 또한, 인테리어 완료 이후 가구를 구입하여 배치한 이후에도 인테리어 결과물이 고객의 예상과 다를 수 있다.
따라서, 이러한 인테리어 공사의 시공 리스크를 감소시키기 위해, 고객은 가구를 구입하거나 인테리어 시공 계약을 체결하기 전에 자신의 취향에 따라 인테리어 자재를 인테리어 대상이 되는 가상 공간에 배치하여 가상으로 인테리어 시공이 완료된 공간을 현장감 있게 확인할 필요가 있다.
이러한 고객의 요구를 충족시키기 위해, 가상 현실 기반 인테리어 서비스가 등장하고 있다. 가상 현실 기반 인테리어 서비스는 고객과의 상호작용을 통해 인테리어 공사가 완료된 공간을 가상으로 현장감 있게 제공하고 이와 관련된 인테리어 견적을 제공할 수 있다.
가상 현실 기반 인테리어 서비스를 제공하기 위해서는, 2D 또는 3D상에서 벽에 해당하는 이미지 또는 아이콘을 표시하는 단계가 필수적으로 수반되어야 한다. 더불어, 도면상에서 방에 해당하는 공간을 식별하여, 방의 인테리어에 필요한 가구 및 소품 등을 배치하고 조명 효과 등을 설정하는 단계가 필요하다. 이를 위해서, 도면에서 방에 해당하는 영역을 구분하여 사용자에게 제공하여야 한다.
이하, 도 1을 참조하여 벽 이미지가 도시된 도면의 예시를 설명한다.
도 1은 벽 구조가 표현된 예시도이다.
도시된 바와 같이, 사용자는 가상 현실 기반 인테리어 서비스를 사용함에 있어서, 벽에 해당하는 이미지(10)를 도면상에 설정한다. 그리고, 가상 현실 기반 인테리어 서비스의 사용자는 일반적으로 벽에 해당하는 구조(10)를 이용하여 복수의 방에 해당하는 영역(20)을 설정하고자 한다.
따라서, 가상 현실 기반 인테리어 서비스는 방에 해당하는 영역(20)을 자동으로 탐색하여 방의 인테리어에 관련된 인테리어 설정을 제공할 필요가 있다. 가상 현실 기반 인테리어 서비스를 제공함에 있어서, 방에 해당하는 영역(20)을 자동으로 탐색하지 못한다면, 방의 인테리어에 적합한 설정 및 서비스를 사용자에게 제공하지 못한다는 문제점이 있다.
본 발명의 실시예에 따른 도면 공간 탐색 방법 및 장치는, 사용자가 도면 저작시 방에 해당하는 영역을 탐색하는 방 탐색 방법 및 장치를 제공하기 위한 것이다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 측면에 따른 도면 공간 탐색 방법은, 도면에서 벽의 이미지를 식별하는 단계, 상기 벽 이미지를 구성하는 외곽 노드를 도출하는 단계, 상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하는 단계, 그리고 상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 방 영역 설정 단계를 포함하며, 상기 외곽 노드는 벽의 이미지를 구성하기 위한 꼭지점, 상기 벽 이미지의 교점 및 상기 벽 이미지를 구성하기 위한 기준점 중 어느 하나 이상을 포함한다.
또한, 본 발명의 실시예에 따른 공간을 구성하는 복수의 폴리곤을 도출하는 단계는, 상기 외곽 노드에 라벨링을 수행하는 단계, 상기 외곽 노드 및 깊이 우선 탐색(DFS: Depth-First Search) 알고리즘을 이용하여 상기 공간을 구성하는 복수의 폴리곤을 도출하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 외곽 노드를 도출하는 단계는, 상기 벽 이미지는 벽의 시작 위치 또는 벽의 종료 지점에 대응하는 복수의 기준 노드를 설정하는 단계, 상기 기준 노드 및 미리 설정된 벽 두께 정보를 이용하여 도출된 복수의 외곽 노드를 설정하는 단계를 더 포함한다.
또한, 본 발명의 실시예에 따른 방 영역 설정 단계는, 상기 복수의 폴리곤 중 같은 기준 노드를 이용하여 생성된 폴리곤을 방 영역 후보 폴리곤 그룹으로 구분하는 단계, 상기 방 영역 후보 폴리곤 그룹 중 폴리곤의 넓이가 최대인 폴리곤을 제외하고, 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 단계를 포함한다.
또한, 본 발명의 실시예에 따른 방에 해당하는 영역은, 방의 이름, 방의 종류, 색상 정보, 바닥 정보, 벽지 정보, 높이 정보 중 하나 이상을 포함한다.
또한, 본 발명의 다른 측면에 따른 도면에서 방에 해당하는 공간을 탐색하는 장치는, 도면 저작 프로그램이 저장된 메모리, 그리고 상기 도면 저작 프로그램을 실행하는 프로세서를 포함하며, 상기 프로세서는 상기 도면 저작 프로그램을 실행하여, 도면에서 벽의 이미지를 식별하고, 벽 이미지를 구성하는 외곽 노드를 도출하며, 상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하고, 상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 방 영역 설정하며, 상기 외곽 노드는 벽의 이미지를 구성하기 위한 꼭지점, 상기 벽 이미지의 교점 및 상기 벽 이미지를 구성하기 위한 기준점 중 어느 하나 이상을 포함한다.
본 발명의 실시예에 따른 도면 공간 탐색 방법 및 장치는, 사용자가 도면 저작시 방에 해당하는 영역을 탐색하는 도면 공간 탐색 방법 및 장치를 제공할 수 있다.
도 1은 벽 구조가 표현된 예시도이다.
도 2는 실시예에 따른 도면 공간 탐색 장치의 구조도이다.
도 3은 실시예에 따른 도면 공간 탐색 방법의 흐름도이다.
도 4는 실시예에 따른 폴리곤 설정 방법의 흐름도이다.
도 5는 실시예에 따른 폴리곤 설정 방법의 예시도이다.
도 6은 실시예에 따른 공간 탐색 결과의 예시도 이다.
도 7은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 8은 실시예에 따른 외곽 노드 설정 방법의 흐름도이다.
도 9는 벽이 한 개인 경우 실시예에 따른 벽 이미지 예시도이다.
도 10은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 11은 실시예에 따른 공유 노드의 예시도이다.
도 12는 벽이 두 개인 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 13은 벽이 세 개 이상인 경우 실시예에 따른 결합 노드의 예시도이다.
도 14는 벽이 세 개 이상인 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 15는 외곽 노드의 연결 순서에 따른 벽 이미지의 예시도이다.
도 16은 실시예에 따른 벽 이미지 생성 예시도이다.
도 17은 실시예에 따른 벽 이미지 생성 예시도이다.
도 18은 본 발명의 또 다른 실시예에 따른 도면 공간 탐색 인터페이스 제공 방법의 순서를 도시한 흐름도이다.
도 2는 실시예에 따른 도면 공간 탐색 장치의 구조도이다.
도 3은 실시예에 따른 도면 공간 탐색 방법의 흐름도이다.
도 4는 실시예에 따른 폴리곤 설정 방법의 흐름도이다.
도 5는 실시예에 따른 폴리곤 설정 방법의 예시도이다.
도 6은 실시예에 따른 공간 탐색 결과의 예시도 이다.
도 7은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 8은 실시예에 따른 외곽 노드 설정 방법의 흐름도이다.
도 9는 벽이 한 개인 경우 실시예에 따른 벽 이미지 예시도이다.
도 10은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 11은 실시예에 따른 공유 노드의 예시도이다.
도 12는 벽이 두 개인 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 13은 벽이 세 개 이상인 경우 실시예에 따른 결합 노드의 예시도이다.
도 14는 벽이 세 개 이상인 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 15는 외곽 노드의 연결 순서에 따른 벽 이미지의 예시도이다.
도 16은 실시예에 따른 벽 이미지 생성 예시도이다.
도 17은 실시예에 따른 벽 이미지 생성 예시도이다.
도 18은 본 발명의 또 다른 실시예에 따른 도면 공간 탐색 인터페이스 제공 방법의 순서를 도시한 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '장치'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '장치'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, ' 장치 '는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 ' 장치 '는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 ' 장치 '들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 ' 장치 '들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 ' 장치 '들은 디바이스 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 도 2를 참조하여 실시예에 따른 도면 공간 탐색 장치(1)의 구성을 설명한다.
도 2는 실시예에 따른 도면 공간 탐색 장치의 구성도이다.
도 2를 참조하면, 실시예에 따른 도면 공간 탐색 장치(1)는 메모리(100)와 프로세서(200)를 포함한다. 메모리(100)는 도면 저작 프로그램 및 도면 저작 프로그램과 관련된 데이터를 저장한다. 도면 저작 프로그램은 설명의 편의를 위해 설정된 것으로, 명칭 그 자체로 프로그램의 기능을 제한하는 것은 아니다.
메모리(100)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장장치 및 저장된 정보를 유지하기 위하여 전력을 필요로 하는 휘발성 저장장치를 통칭하는 것으로 해석되어야 한다. 또한, 메모리(100)는 프로세서(200)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 메모리(100)는 저장된 정보를 유지하기 위하여 전력이 필요한 휘발성 저장장치 외에 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
프로세서(200)는 메모리(100)에 저장된 도면 저작 프로그램을 실행한다. 프로세서(200)는 데이터를 제어 및 처리하는 다양한 종류의 장치들을 포함할 수 있다. 프로세서(200)는 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 일 예에서, 프로세서(200)는 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 형태로 구현될 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이 때, 프로세서(200)는 도면 저작 프로그램을 이용하여 도면에서 방에 해당하는 공간을 탐색하여 속성을 부여하기 위한 일련의 데이터 처리 과정을 수행한다. 도면에서 방에 해당하는 공간을 탐색하는 방법은 후술하는 도3 내지 도 6을 참조하여 상세히 설명한다.
또한, 프로세서(200)는 도면 저작 프로그램을 이용하여, 사용자가 설정한 벽 또는 평면도로부터 인식된 벽의 이미지를 도면에 표시하기 위해, 일련의 데이터 처리 과정을 수행한다. 도면 저작 프로그램의 벽 이미지 생성 방법은 후술하는 도 7 내지 도 17을 참조하여 상세히 설명한다.
또한, 실시예에 따른 도면 저작 프로그램은 도면 공간 탐색 및 벽 이미지 생성뿐만 아니라, 벽 이미지 배치 및 편집, 가구 배치, 조명 설정, 넓이 설정 등 가상 현실 기반 인테리어 서비스를 제공하기 위한 프로그램을 포함한다. 따라서, 2D 도면뿐만 아니라 2D 도면에 높이 정보를 적용한 3D 도면에도 적용 가능한 도면 저작 프로그램을 포함할 수 있다.
또한, 본 발명의 실시예에 따른 도면 공간 탐색 장치 (1)는 도면 저작 프로그램을 이용한 가상 현실 기반 인테리어 서비스를 제공하는 서버로서 동작할 수 있다. 한편, 도면 공간 탐색 장치(1)는 제공 도면 저작 프로그램을 이용하여 탐색된 공간을 기반으로, 하여 SaaS(Sofware as a Service) 또는 Iaas(Infrastructure as a Service)와 같은 클라우드 컴퓨팅 서비스 모델에서 동작할 수 있다. 또한, 도면 공간 탐색 장치(1)는 사설(private) 클라우드, 공용(public) 클라우드 또는 하이브리드(hybrid) 클라우드와 같은 형태로 구축될 수 있다.
따라서, 도면 공간 탐색 장치(1)는 도면 저작 프로그램에서 생성된 출력 데이터를 사용자 단말(미도시)에 제공할 수 있다. 사용자 단말은 수신한 데이터를 디스플레이할 수 있으며, 사용자로부터 입력 데이터를 수신하여 도면 저작 프로그램과 상호 작용을 수행할 수 있다.
사용자 단말은 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), 휴대성과 이동성이 보장되는 무선 통신 장치 또는 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 의미할 수 있다. 또한, 도면 공간 속성 부여 장치 (1)는 통신 모듈(미도시)을 포함할 수 있으며, 통신 모듈은 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크를 사용하는 통신 모듈을 포함할 수 있다.
이하, 도 3을 참조하여 실시예에 따른 도면 공간 탐색 방법을 설명한다.
도 3은 실시예에 따른 도면 공간 탐색 방법의 흐름도이다.
도 3을 참조하면, 단계(S1000)에서는 도면에서 벽에 해당하는 이미지(10)를 식별한다. 이 때, 완성된 도면 이미지 파일에서 벽의 이미지를 식별하는 방식과 후술하는 도 7 내지 도 17에 따른 방법에 따라 생성된 벽 이미지를 이용하는 방식이 사용될 수 있다.
완성된 도면 이미지 파일에서 벽을 식별하는 방식으로는, 벽에 해당하는 색상을 이용하여 벽에 해당하는 구성을 식별할 수 있다. 또한, 이미지에 포함된 수학식 또는 기하학적 정보 등을 이용하여 벽에 해당하는 구성을 식별할 수 있다.
단계(S2000)에서는, 벽 이미지(10)를 구성하는 외곽 노드(3100)를 도출한다. 외곽 노드(3100)는 벽의 이미지를 구성하기 위한 꼭지점, 상기 벽 이미지의 교점 및 상기 벽 이미지를 구성하기 위한 기준점 중 어느 하나 이상을 포함한다.
또한, 단계(S2000)에서는, 벽 이미지는 벽의 시작 위치 또는 벽의 종료 지점에 대응하는 복수의 기준 노드(3200)를 설정한다. 그리고, 기준 노드(3200) 및 미리 설정된 벽 두께 정보를 이용하여 복수의 외곽 노드(3100)를 설정할 수 있다.
구체적으로, 벽을 구성하는 두 개의 기준 노드(시작 지점, 종료 지점)을 포함하는 중심 벡터를 생성하고 중심 벡터를 이용하여 복수의 외곽 노드(3100)를 설정한다. 중심 벡터는 벽의 시작 지점과 종료 지점을 연결한 벡터에 대응될 수 있으며, 벽 이미지(10)의 중심선에 대응될 수 있다.
그리고, 중심 벡터를 이용하여 유닛 벡터를 생성한다. 유닛 벡터는 기준 노드 중 어느 하나를 포함하며 중심 벡터에 수직한 방향을 가진다. 즉, 두 개의 기준 노드 각각을 시작 지점으로 하며, 중심 벡터에 수직한 방향으로 형성된다.
따라서, 한 개의 벽 이미지는, 각 기준 노드(3200)에서 두 개의 유닛 벡터가 생성된다. 더불어, 각 기준 노드에서 생성된 두 개의 유닛 벡터는 서로 대칭되는 방향을 가지도록 형성된다. 각 유닛 벡터와 미리 설정된 벽 두께 정보를 이용하여 외곽 노드를 생성한다. 외곽 노드는 유닛 벡터에 벽 두께 값의 절반에 해당하는 스칼라 값을 곱하여 생성될 수 있다.
또한, 기준 노드(3200)는 후술하는 벽 이미지 생성 방법에 따른 기준 노드(310) 및 공유 노드(311)를 포함하는 의미이다. 외곽 노드(3100)는 후술하는 벽 이미지 생성 방법에 따른 외곽 노드(320) 및 결합 노드(321)를 포함하는 의미이다.
외곽 노드(3100)는 벽의 각도, 두께를 고려하여 계산한 2D 벡터로 자신이 포함된 벽 이미지, 위치 좌표, 연결 되어 있는 외곽 노드에 대한 정보를 포함할 수 있다.
단계(S3000)에서는, 외곽 노드(3100)를 이용하여 공간을 구성하는 복수의 폴리곤을 도출한다. 외곽 노드는 벽의 각도, 두께를 고려하여 계산한 2D 벡터로 자신이 포함된 벽 이미지, 위치 좌표, 연결 되어 있는 외곽 노드에 대한 정보를 포함할 수 있다. 따라서, 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출할 수 있으며, 폴리곤을 도출하는 구체적인 방법은 후술하는 도 4 및 도 5를 참조하여 상세히 설명한다.
단계(S4000)에서는, 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정한다. 최외각 폴리곤이란 넓이가 최대인 폴리곤 또는 벽 이미지의 최외각선으로 구성된 폴리곤을 의미할 수 있다.
이하, 도 4 및 도 5를 참조하여 실시예에 따른 폴리곤 설정 방법을 설명한다.
도 4는 실시예에 따른 폴리곤 설정 방법의 흐름도이다.
도 5는 실시예에 따른 폴리곤 설정 방법의 예시도이다.
도 4를 참조하면, 단계(S3100)에서는 외곽 노드(3100)에 라벨링(labeling)을 수행한다. 도 5에 도시된 바와 같이 4개의 벽 이미지(10)가 연결되어 사각형을 형성하는 경우 사각형의 꼭지점에 대응하여 8개의 외곽 노드(3100a~3100h)를 설정할 수 있다. 더불어, 도면 저작 프로그램에 의해 벽 이미지가 생성된 경우에도 도 5와 같이 외곽 노드(3100)가 설정된다. 그리고, 각각의 외곽 노드(3100)에 대하여 고유 id를 부여하거나 번호를 설정하는 등의 방식을 이용하여 라벨링을 수행할 수 있다.
단계(S3200)에서는, 라벨링된 외곽 노드(3100) 및 깊이 우선 탐색(DFS: Depth-First Search) 알고리즘을 이용하여 공간을 구성하는 복수의 폴리곤을 도출한다.
깊이 우선 탐색 알고리즘이란, 맹목적 탐색 방법의 하나로 탐색 트리에 추가된 노드를 선택하고, 추가된 노드에 적용 가능한 동작자 중 하나를 적용하여 트리에 다음 수준(level)의 한 개의 자식 노드를 첨가하며, 첨가된 자식 노드가 목표 노드일 때까지 자식 노드의 추가 과정을 반복해 가는 방식의 알고리즘이다.
따라서, 라벨링된 외곽 노드(3100)를 하나씩 추가하며 외곽 노드를 연결한 폴리곤이 공간을 형성하는 경우를 탐색한다. 따라서, 도 5를 참조하면, [제1 외곽 노드(3100a), 제2 외곽 노드(3100b), 제3 외곽 노드(3100c), 제4 외곽 노드(3100d)] 로 구성된 제1 폴리곤(4000a)과 [제5 외곽 노드(3100e), 제6 외곽 노드(3100f), 제7 외곽 노드(3100g), 제8 외곽 노드(3100h)] 로 구성된 제2 폴리곤(4000b)이 탐색된다.
단계(S3200)에서는, 복수의 폴리곤 중 같은 기준 노드(3200)를 이용하여 생성된 폴리곤을 방 영역 후보 폴리곤 그룹으로 구분한다. 도 5에 도시된 바와 같이 제1 폴리곤(4000a)과 제2 폴리곤(4000b)은 제1 기준 노드(3200a) 내지 제4 기준 노드(3200d)를 공유한다. 따라서, 제1 폴리곤(4000)과 제2 폴리곤(4000b)은 동일한 방 영역 후보 폴리곤 그룹으로 분류된다.
상술한 바와 같이 외곽 노드(3100)는 기준 노드(3200)와 미리 설정된 벽 두께 정보를 이용하여 생성될 수 있다. 따라서, 제1 외곽 노드(3100a) 및 제5 외곽 노드(3100e)는 제1 기준 노드(3200a)를 기준으로 생성되고, 제2 외곽 노드(3100b) 및 제6 외곽 노드(3100f)는 제2 기준 노드(3200b)를 기준으로 생성되며, 제3 외곽 노드(3100c) 및 제7 외곽 노드(3100g)는 제3 기준 노드(3200c)를 기준으로 생성되고, 제4 외곽 노드(3100d) 및 제8 외곽 노드(3100h)는 제4 기준 노드(3200d)를 기준으로 생성된다.
따라서, 제1 폴리곤(4000a)과 제2 폴리곤(4000b)은 제1 기준 노드(3200a) 내지 제4 기준 노드(3200d)로부터 생성된 외곽 노드(3100a~3100h)를 이용하여 생성되므로, 제1 기준 노드(3200a) 내지 제4 기준 노드(3200d)를 공유한다.
또한, 기준 노드(3200)는 벽 이미지의 시작 지점, 종료 지점, 변곡점 및 꼭지점 중 어느 하나에 대응될 수 있다. 따라서, 기준 노드(3200)와 인접한 외곽 노드(3100)를 이용하여 생성된 폴리곤(4000)은 동일한 기준 노드(3200)를 공유하는 것으로 판단될 수 있다.
그러므로, 동일한 기준 노드(3200)를 공유하는 폴리곤(4000)은 동일한 방 영역 후보 폴리곤 그룹으로 분류할 수 있다. 다만, 폴리곤(4000)의 모든 기준 노드(3200)를 공유하지 않고 일부 기준 노드(3200)를 공유하는 경우에도 동일한 방 영역 후보 폴리곤 그룹으로 분류될 수 있다.
단계(S4000)에서는, 방 영역 후보 폴리곤 그룹 중 폴리곤의 넓이가 최대인 폴리곤을 제외하고, 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정한다. 따라서, 제1 폴리곤(4000)과 제2 폴리곤(4000b)은 동일한 방영역 후보 폴리곤 그룹에 속하며, 제2 폴리곤(4000b)이 제1 폴리곤(4000)보다 큰 넓이 값을 가진다. 따라서, 제2 폴리곤(4000b)을 제외한 제1 폴리곤(4000)이 방에 해당하는 공간으로 설정된다.
이하, 도 6을 참조하여 실시예에 따른 공간 탐색 방법 및 결과를 설명한다.
도 6은 실시예에 따른 공간 탐색 결과의 예시도이다.
도 6과 같이 벽 이미지(10)가 배치된 경우, 외곽 노드 설정 단계(S2000) 및 폴리곤 도출 단계(S3000)에 따라 제1 폴리곤(4000a), 제2 폴리곤(4000b), 제3 폴리곤(4000c) 및 제4 폴리곤(4000d)이 도출된다.
그리고, 제1 폴리곤(4000a)은 제1 기준 노드(3200a), 제3 기준 노드(3200c), 제5 기준 노드(3200e), 제6 기준 노드(3200f), 제7 기준 노드(3200g), 제8 기준 노드(3200h), 제9 기준 노드(3200i) 및 제10 기준 노드(3200j)를 포함한다.
또한, 제2 폴리곤(4000b)은 제1 기준 노드((3200a), 제2 기준 노드(3200b), 제3 기준 노드(3200c), 제4 기준 노드(3200d), 제5 기준 노드(3200e), 제6 기준 노드(3200f), 제7 기준 노드(3200g), 제8 기준 노드(3200h)를 포함한다.
제3 폴리곤(4000c)은 제2 기준 노드(3200b), 제6 기준 노드(3200f), 제7 기준 노드(3200g) 및 제10 기준 노드(3200j)를 포함한다.
제 4 폴리곤(4000d)은 제4 기준 노드(3200d), 제5 기준 노드(3200e), 제8 기준 노드(3200h) 및 제9 기준 노드(3200i)를 포함한다.
따라서, 제1 폴리곤(4000a)은 제2 폴리곤(4000b)과 제1 기준 노드(3200a), 제3 기준 노드(3200c), 제5 기준 노드(3200e), 제6 기준 노드(3200f), 제7 기준 노드(3200g), 제8 기준 노드(3200h)를 공유한다. 또한, 제1 폴리곤(4000a)은 제3 폴리곤(4000c)과 제6 기준 노드(3200f), 제7 기준 노드(3200g) 및 제10 기준 노드(3200j)를 공유하며, 제4 폴리곤(4000d)과 제5 기준 노드(3200e), 제8 기준 노드(3200h) 및 제9 기준 노드(3200i)를 공유한다.
그리고, 제2 폴리곤(4000b)은, 제3 폴리곤(4000c)과 제2 기준 노드(3200b), 제6 기준 노드(3200f), 제7 기준 노드(3200g)를 공유하고, 제4 폴리곤(4000d)과 제4 기준 노드(3200d), 제5 기준 노드(3200e) 및 제8 기준 노드(3200h)를 공유한다.
따라서, 제1 폴리곤(4000a) 내지 제 4 폴리곤(4000d)은 기준 노드(3200)를 공유하므로, 동일한 방 영역 후보 폴리곤 그룹으로 분류된다. 그리고, 방 공간 설정 단계(S4000)에서, 최외각 폴리곤인 제2 폴리곤(4000b)을 제외한 제1 폴리곤(4000a), 제3 폴리곤(4000c), 제4 폴리곤(4000d)을 각각 방에 해당하는 영역으로 설정한다.
또한, 방 공간 설정 단계(S4000)에서, 4개의 폴리곤 중 넓이 값이 최대인 제2 폴리곤(4000b)을 제외한 제1 폴리곤(4000a), 제3 폴리곤(4000c), 제4 폴리곤(4000d)을 각각 방에 해당하는 영역으로 설정하는 것도 가능하다.
또한, 방에 해당하는 영역은, 방의 이름, 방의 종류, 색상 정보, 바닥 정보, 벽지 정보, 높이 정보 중 하나 이상을 방의 속성 정보로서 포함할 수 있다. 구체적으로 아래의 표 1과 같은 데이터를 포함할 수 있다.
종류 | 내용 | 데이터 구조 예시 | 디폴트 |
ID | 방 영역을 구별하기 위한 고유 id | ANFKMDOVLFNRHDUAK | random generated UUID |
label | 방의 이름 | xx의 방 | NONE |
type | 방의 타입 | 거실, 주방, 침실, 창고, 베란다 등 | NONE |
floor finish | 방의 바닥에 입혀지는 마감재 정보 | A회사의 장판, 강마루 등의 제품 정보 혹은 페인트 정보 | Gray 색상 |
ceiling finish | 방의 천장에 입혀지는 마감재 정보 | A회사의 벽지 혹은 페인트 정보 | White 색상 |
height | 방 천장의 높이 (unit: mm) | 2600 (2.6m) | 2600 (2.6 m) |
또한, 도 5 및 도 6에는 벽 이미지가 단절되지 않고 일체로 구성되어 있는 예시를 도시하였다. 하지만, 실시예가 이에 한정되는 것은 아니며, 벽 이미지와 더불어 창문 및 문에 해당하는 이미지가 포함된 경우에도 적용 가능하다.
따라서, 방에 해당하는 영역의 속성을 각각 변경할 수 있으며, 이에 따라 사용자에게 자연스러운 가상 현실 기반 인테리어 서비스를 제공하며, 방에 해당하는 영역에 적합한 설정을 제공할 수 있다.
이하, 도 7 내지 도 9을 참조하여 실시예에 따른 벽 이미지 생성 방법을 설명한다.
도 7은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 8는 실시예에 따른 외곽 노드 설정 방법의 흐름도이다.
도 9는 벽이 한 개인 경우 실시예에 따른 벽 이미지 생성 예시도이다.
도 7을 참조하면, 단계(S100)에서는 벽 이미지를 생성하기 위한 기준 노드(310)를 설정한다. 기준 노드(310)는 벽의 시작점 또는 벽의 종료지점에 대응된다. 기준 노드(310)는 사용자가 설정하거나, 벽의 길이 값에 대응하여 설정될 수 있다. 또한, 도면 또는 이미지에서 벽에 해당하는 영역을 식별하고 이에 대응하여 설정될 수 있다.
단계(S200)에서는, 벽 이미지에 대응하는 폴리곤(300)을 생성하기 위한 외곽 노드(320)를 설정한다. 외곽 노드(320)는 기준 노드(310) 및 미리 설정된 벽 두께 정보를 이용하여 도출된다. 외곽 노드(320)는 폴리곤(300)의 꼭지점에 대응될 수 있다. 또한, 도면 또는 이미지에서 벽에 해당하는 영역을 식별하고 꼭지점에 대응하는 영역을 외곽노드(320)로 설정할 수 있다. 외곽 노드(320)를 설정하기 위한 구체적인 방법은 도 8를 참조하여 상세히 설명한다.
단계(S300)에서는, 기준 노드(310)와 외곽 노드(320)를 연결하는 폴리곤(300)을 구성한다. 즉, 기준 노드(310)와 외곽 노드(320)를 포함하는 폴리곤(300)으로서, 폴리곤(300)을 이용하여 벽의 이미지를 도면 또는 컴퓨터 프로그램상에 표시할 수 있다. 기준 노드(310)는 폴리곤(300)의 시작 지점 및 종료 지점과 대응하고, 외곽 노드(320)는 폴리곤(300)의 꼭지점에 대응한다.
컴퓨터 그래픽에서 폴리곤은 삼각형, 사각형 또는 각종 다각형 및 3D 그래픽에서 물체를 표현하기 위해 사용되는 다각형을 의미한다. 특히, 본 발명에서는 벽의 이미지를 나타내기 위해 직사각형으로 설정될 수 있다. 또한, 본 발명의 일 실시예에 따른 각 폴리곤의 결합 과정을 통해 직사각형이 아닌 다양한 형태의 다각형으로 변형될 수 있다. 이에 대해서는 후술하는 도 10 내지 도 17을 참조하여 상세히 설명한다.
이하, 도 8를 참조하여, 외곽 노드(320)를 설정하기 위한 구체적인 방법을 설명한다.
도 8를 참조하면, 단계(S210)에서는 중심 벡터(410)를 설정한다. 중심 벡터(410)는 벽의 폴리곤(300)을 구성하는 두 개의 기준 노드(310)로 구성된 벡터를 의미한다. 따라서, 중심 벡터(410)는 벽의 시작 지점과 종료 지점을 연결한 벡터에 대응될 수 있으며, 폴리곤(300)의 중심선에 대응될 수 있다.
단계(S220)에서는, 중심 벡터를 이용하여 유닛 벡터(420)를 생성한다. 유닛 벡터(420)는 기준 노드(310)를 포함하며 중심 벡터(410)에 수직한 방향을 가진다. 즉, 두 개의 기준 노드(310) 각각을 시작 지점으로 하며, 중심 벡터(410)에 수직한 방향으로 형성된다.
따라서, 한 개의 벽 이미지에 대응하는 폴리곤(300)을 생성하는 경우, 각 기준 노드(310)에서 두 개의 유닛 벡터(420)가 생성된다. 더불어, 각 기준 노드(310)에서 생성된 두 개의 유닛 벡터(420)는 서로 대칭되는 방향을 가지도록 형성된다.
단계(S230)에서는, 유닛 벡터(420)와 미리 설정된 벽 두께 정보를 이용하여 외곽 노드(320)를 생성한다. 구체적으로, 외곽 노드(320)는 유닛 벡터에 벽 두께 값의 절반에 해당하는 스칼라 값을 곱하여 외곽 노드(320)를 생성한다.
따라서, 한 개의 벽을 이미지로 표현하는 경우, 총 4개의 외곽 노드(320)가 생성된다. 외곽 노드(320) 각각은 기준 노드(310) 중 어느 하나로부터 수직한 방향으로 미리 설정된 벽 두께의 절반 값에 해당하는 거리를 가지도록 형성된다.
이하, 도 10 내지 도 12을 참조하여 복수의 벽이 연결된 경우, 실시예에 따른 벽 이미지 생성 방법을 설명한다.
도 10은 실시예에 따른 벽 이미지 생성 방법의 흐름도이다.
도 11은 실시예에 따른 공유 노드의 예시도이다.
도 10및 도 11을 참조하면, 복수의 벽이 연결된 경우, 실시예에 따른 벽 이미지 생성 방법은 폴리곤의 중첩된 부분을 파악하여 결합 노드를 생성한다. 그리고 이에 따라 연결된 부분의 벽 이미지가 자연스럽게 연결되도록 폴리곤(300)을 생성한다.
구체적으로, 단계(S240)에서는, 복수의 폴리곤(300)이 연결되는지 판단한다. 이를 위해서, 제1 폴리곤(300a)에 포함된 제1 중심 벡터(410a)와 제2 폴리곤(300b)에 포함된 제2 중심 벡터(410b)의 교점이 존재하는지 판단한다.
그리고, 제1 중심 벡터(410a)와 제2 중심 벡터(410b)의 교점이 존재하는 경우, 단계(S250)에서 제1 중심 벡터(410a)와 제2 중심 벡터(410b)의 교점을 공유 노드(311)로 설정한다. 따라서, 공유 노드(311)가 존재하는 경우, 제1 폴리곤(300a)과 제2 폴리곤(300b)이 연결된 것으로 판단할 수 있다.
일반적으로 사용자가 실시예에 따른 도면 프로그램을 이용하여 벽 이미지를 생성하는 경우, 사용자는 벽의 시작 지점 및 종료 지점을 선택하므로 이에 대응하여 기준 노드(310)가 설정된다. 하지만, 사용자가 연속하여 연결된 벽 이미지를 생성하는 경우, 복수개의 지점을 선택할 수 있다. 이러한 경우, 복수개의 지점 중 처음 선택된 지점은 시작 시점에 대응되며, 마지막에 선택된 지점은 종료 지점에 대응되고, 시작 지점과 종료 지점을 제외한 나머지 선택 지점은 공유 노드(311)에 대응될 수 있다.
더불어, 실시예에 따른 도면 프로그램에서 사용자가 생성된 벽 이미지의 위치 또는 크기 등을 변경하여 복수의 벽이 연결될 수 있다. 이러한 경우 공유 노드(311)는 복수의 벽 이미지 또는 폴리곤이 연결된 부분 또는 각 벽의 이미지 또는 폴리곤(300)이 중첩된 부분의 중점에 대응될 수 있다. 즉, 벽 이미지에 대응하는 폴리곤(300)의 변곡점 또는 복수의 폴리곤(300)의 굴곡이 발생하는 부분의 중점이 공유 노드(311)에 대응될 수 있다.
공유 노드(311)가 존재하는 경우, 제1 폴리곤(300a)과 제2 폴리곤(300b)의 연결 부분의 자연스러운 벽 이미지를 생성하기 위해, 결합 노드 생성 단계(S260) 및 결합 노드를 이용한 폴리곤 생성 단계를 수행한다.
또한, 공유 노드(311)가 존재하지 않는 경우, 벽 이미지에 대응하는 폴리곤(300)이 개별적으로 존재하는 것으로 판단한다. 따라서, 도 7 내지 도 9를 참조하여 상술한 바와 같이, 기준 노드(310) 및 외곽 노드(320)를 이용하여 생성된 폴리곤(300) 벽 이미지로 사용할 수 있다.
여기서, 제1 폴리곤(300a)과 제2 폴리곤(300b) 및 제1 중심 벡터(410a)와 제2 중심 벡터(410b)는 복수의 폴리곤 및 복수의 폴리곤에 대응되는 중심 벡터를 나타내기 위한 것이다. 따라서, 본 발명의 실시예가 2개의 폴리곤이 존재하는 경우에 한정되는 것은 아니며, 복수의 폴리곤이 존재하는 경우를 포함할 수 있다.
도 12은 두 개의 벽이 연결된 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 10 및 도 12을 참조하여, 결합 노드(321)의 생성 방법을 설명한다.
상술한 바와 같이, 공유 노드(311)가 존재하는 경우, 제1 폴리곤(300a)과 제2 폴리곤(300b)의 연결 부분을 재구성하는 단계를 수행한다. 이를 위해서, 결합 노드를 설정하고 결합 노드를 이용하여 연결 부분의 폴리곤을 재구성한다.
구체적으로, 단계(S260)에서는, 폴리곤(300)의 교점을 결합 노드(321)로 설정할 수 있다. 즉 제1 폴리곤(300a)과 제2 폴리곤(300b)의 교점을 결합 노드(321)로 설정한다. 따라서, 공유 노드(311)가 존재하는 경우, 벽 이미지 또는 벽의 폴리곤(300)은 기준 노드(310), 외곽 노드(320), 공유 노드(311) 및 결합 노드(321) 중 어느 하나 이상을 이용하여 생성된다.
더불어, 결합 노드(321)를 설정하기 위해서 중심 벡터(310)와 평행한 평행선(430a, 430b)을 생성하고, 평행선의 교점을 결합 노드(321)로 설정할 수 있다. 평행선(430a, 430b)은 외곽 노드(320) 중 어느 하나를 포함하며, 중심 벡터(410a, 410b)와 평행한 복수의 평행선(430a, 430b)을 생성하여 복수의 평행선(430a, 430b)의 교점을 도출한다. 그리고 도출된 복수의 평행선(430a, 430b)의 교점을 결합 노드(321)로 설정할 수 있다.
구체적으로, 도 12(a)에 도시된 바와 같이 제1 폴리곤(300a)을 구성하는 외곽 노드(320) 중 내측에 위치된 외곽 노드(321)를 포함하며, 제1 중심 벡터(410a)와 평행한 제1 평행선(430a)을 생성한다. 또한, 제2 폴리곤(300b)을 구성하는 외곽 노드(320) 중 내측에 위치된 외곽 노드(320)를 포함하며, 제2 중심 벡터(410b)와 평행한 제2 평행선(430b)을 생성한다. 그리고 제1 평행선(430a)과 제2 평행선(430b)의 교점을 결합 노드(321a)로 설정할 수 있다.
또한, 도 12(b)에 도시된 바와 같이 제1 폴리곤(310a)을 구성하는 외곽 노드(320) 중 외측에 위치된 외곽 노드(321)를 포함하며, 제1 중심 벡터(410a)와 평행한 제1 평행선(430a)을 생성한다. 또한, 제2 폴리곤(310b)을 구성하는 외곽 노드(320) 중 외측에 위치된 외곽 노드(320)를 포함하며, 제2 중심 벡터(410b)와 평행한 제2 평행선(430b)을 생성한다. 그리고 제1 평행선(430a)과 제2 평행선(430b)의 교점을 결합 노드(321b)로 설정할 수 있다.
추가적으로, 제1 폴리곤(300a)과 제2 폴리곤(300b)의 교점을 결합 노드(321a, 321b)로 설정하고, 결합 노드(321a, 321b)로부터 중심 벡터(410a, 410b)와 평행한 평행선(430a, 430b)을 생성한다. 그리고, 생성된 평행선(430a, 430b)이 제1 폴리곤(300a)과 제2 폴리곤(300b)의 외곽 노드(320)를 통과하는지 여부를 판단하여 결합 노드(321)의 위치를 설정하는 방법이 이용될 수 도 있다.
상술한 방법을 이용하여 도 12(c)와 같이 제1 폴리곤(300a)과 제2 폴리곤(300b)의 결합 노드(321a, 321b)를 설정할 수 있다. 그리고, 공유 노드(311)가 존재하는 경우, 도 11 및 도 12(c)에 도시된 바와 같이 기준 노드(310a), 공유 노드(311), 외곽 노드(320), 결합 노드(321a, 321b)를 이용하여 제1 폴리곤(300a)을 구성하고, 기준 노드(310b), 공유 노드(311), 외곽 노드(320), 결합 노드(321a, 321b)를 이용하여 제2 폴리곤(300b)을 생성한다.
도 11에 도시된 바와 같이, 결합 노드(321)를 이용하여 제1 폴리곤(300a)과 제2 폴리곤(300b)을 생성하는 경우, 두 개의 폴리곤이 연결되는 부분을 자연스러운 이미지로 나타낼 수 있다.
이하, 도 10, 도 13 및 도 14을 참조하여 두 개 이상의 벽이 연결된 경우 실시예에 따른 벽 이미지 생성 방법을 설명한다.
도 13는 벽이 세 개 이상인 경우 실시예에 따른 결합 노드의 예시도이다.
도 14은 벽이 세 개 이상인 경우 실시예에 따라 생성된 벽 이미지의 예시도이다.
도 13 및 도 14을 참조하면, 벽이 세 개 이상인 경우란, 공유 노드(311)를 중심으로 변형 또는 생성되는 폴리곤(300)이 세 개 이상인 경우를 의미한다. 추가적으로, 세 개 이상의 중심 벡터(310)가 교점을 가지는 경우를 의미할 수이다. 또는, 제1 폴리곤과 제2 폴리곤이 교차하는 경우, 제1 중심 벡터의 일부분을 제2 중심 벡터가 관통하는 경우는 기존의 제1 폴리곤과 제2 폴리곤이 교차하는 중점을 기준으로 4개의 폴리곤으로 재구성될 수 있다.
도 13를 참조하면, 세 개 이상의 폴리곤(300a, 300b, 300c, 300d)이 연결된 경우에도 폴리곤의 교점을 이용하여 결합 노드(321)를 생성하는 것은 동일하게 적용된다.
세 개 이상의 폴리곤(300a, 300b, 300c, 300d)이 연결된 경우, 인접한 위치의 두 개의 폴리곤을 반복하여 설정하고 두 개의 폴리곤에 대하여 결합 노드(321)를 생성하는 단계(S260)를 수행할 수 있다.
구체적으로, 도 13의 (a)는 제1 폴리곤(300a)과 제2 폴리곤(300b) 간의 결합 노드(321a) 생성을 도시한다. 도 13의 (b)는 제2 폴리곤(300b)과 제3 폴리곤(300c)의 결합 노드(321b) 생성을 도시한다. 도 13의 (c)는 제3 폴리곤(300c)과 제4 폴리곤(300d)의 결합 노드(321c) 생성을 도시한다. 도 13의 (d)는 제4 폴리곤(300d)과 제1 폴리곤(300a)의 결합 노드(321d) 생성을 도시한다.
즉, 인접한 두 개의 폴리곤에 대하여 상술한 결합 노드(321) 생성 과정을 반복하여 수행함으로써, 세 개 이상의 폴리곤이 연결된 경우에도 결합 노드(321)를 설정하여 연결된 벽의 이미지를 자연스럽게 표현할 수 있다.
더불어, 상술한 도 11 및 도 12과 같이 두 개의 폴리곤(300)이 연결되는 경우에는 내측 결합 노드와 외측 결합 노드를 설정한다. 하지만, 도 13에 도시된 바와 같이, 세 개 이상의 폴리곤이 연결되는 경우에는 도 11의 외측 결합 노드를 설정할 필요 없이 외측 결합 노드(321)만을 설정하여 폴리곤을 생성할 수 있다.
도 14을 참조하면, 제1 폴리곤(300a)은 제1 기준 노드(310a), 공유 노드(311), 외곽 노드(320), 결합 노드(321a, 321d)를 이용하여 생성된다. 제2 폴리곤(300b)은 제2 기준 노드(310b), 공유 노드(311), 외곽 노드(320), 결합 노드(321a, 321b)를 이용하여 생성된다. 제3 폴리곤(300c)은 제3 기준 노드(310c), 공유 노드(311), 외곽 노드(320), 결합 노드(321b, 321c)를 이용하여 생성된다. 제4 폴리곤(300d)은 제4 기준 노드(310d), 공유 노드(311), 외곽 노드(320), 결합 노드(321c, 321d)를 이용하여 생성된다.
따라서, 세 개 이상의 벽이 연결된 경우, 폴리곤(300)은 기준 노드(310), 공유 노드(311), 외곽 노드(320) 및 결합 노드(321)를 이용하여 생성되며, 복수의 폴리곤의 연결 부분이 자연스러운 이미지가 생성될 수 있다.
더불어, 기준 노드(310), 공유 노드(311), 외곽 노드 (320), 결합 노드(321)는 폴리곤을 생성하기 위한 데이터 정보가 포함된 것을 의미할 수 있다.
구체적으로, 기준 노드(310) 및 공유 노드(311)는 아래의 표 2와 같은 데이터를 포함할 수 있다.
종류 | 내용 | 데이터 구조 예시 |
ID | 노드를 구별하기 위한 고유 id | ALSNDKFNRBSIKFLK |
Position | 노드의 위치 좌표 | (20000, 20000) |
wallvectors | 노드와 연결된 외곽 노드(320) 및 결합 노드(321) id | [MFNCKSKENTFLSIDO, MFNCKSKENTFLSIDP, MFNCKSKENTFLSIDR, MFNCKSKENTFLSIDS] |
또한, 외곽 노드(320) 및 결합 노드(321)는 아래의 표 3과 같은 데이터를 포함할 수 있다.
종류 | 내용 | 데이터 구조 예시 |
ID | 노드를 구별하기 위한 고유 id | MFNCKSKENTFLSIDO |
Position | 노드의 위치 좌표 | (20000, 20000) |
Corner id | 외각 노드(320) 및 결합 노드(321)가 연결되는 기준 노드(310) 및 공유 노드(311)의 id | ALSNDKFNRBSIKFLK |
Adjacent wallvectors | 노드가 직접적으로 연결된 외곽 노드(320) 및 결합 노드(321)의 id | [MFNCKSKENTFLSIDP,MFNCKSKENTFLSIDS] |
Wall id array | 노드를 이용하여 생성된 폴리곤의 id | [JNFKDMSLEOIOLDAND] |
폴리곤(300)은 표 4와 같은 데이터를 포함할 수 있다.
종류 | 내용 | 데이터 구조 예시 |
ID | 폴리곤을 구별하기 위한 고유 id | JNFKDMSLEOIOLDAND |
corners | 폴리곤을 구성하는 기준 노드(310) 및 공유 노드(311)의 id | [ALSNDKFNRBSIKFLK, BJFMNEIOSLFNIDHF] |
thickness | 폴리곤(벽)의 두께 정보(unit: mm) | 200(20cm) |
hight | 폴리곤(벽)의 높이 정보(unit: mm) | 2600(2.6m) |
finish | 폴리곤(벽)의 색상, 질감, 벽지 정보 | red, blue, white, ...A회사의 벽지 |
외곽 노드(320) 및 결합 노드(321)는 기준 노드(310) 또는 공유 노드(311)에 연결된 폴리곤(300)들과의 관계에 의해 위치 정보가 정해진다. 따라서, 폴리곤(300)이 외곽 노드(320) 및 결합 노드(321)의 데이터를 가지게 되면 폴리곤(300)을 구성하는 외곽 노드(320) 및 결합 노드(321)의 데이터가 중복된다. 따라서, 외곽 노드(320) 및 결합 노드(321)의 데이터는 기준 노드(310) 및 공유 노드(311)가 포함한다.
또한, 폴리곤(300)은 색상 정보, 질감 정보 및 벽지 정보를 포함할 수 있다. 따라서, 사용자의 설정 또는 미리 설정된 값에 따라 폴리곤(300) 색상을 변경할 수 있으며, 벽지 정보를 입력하면, 데이터 베이스에 저장된 벽지 정보를 이용하여 벽지에 대응하는 질감 또는 색상을 표현할 수 있다.
이하, 도 15 및 도 16을 참조하여 외곽 노드(320) 연결 방법을 설명한다.
도 15은 외곽 노드의 연결 순서에 따른 벽 이미지의 예시도이다.
도 15을 참조하면, 도 15의 (a)는 외곽 노드(320)의 순서를 설정하지 않고 생성한 폴리곤의 예시이다. 도 15의 (a)에 도시된 바와 같이 외곽 노드(320)에 순서를 설정하지 않고 폴리곤(300)을 생성하는 경우 사용자가 원하는 형태의 폴리곤(300)이 생성되지 않을 수 있다.
따라서, 사용자가 원하는 벽 이미지를 도출하기 위해서는 도 15의 (b)와 같이 직사각형 형태의 폴리곤(300)을 생성하여야 한다. 이를 위해서는 폴리곤 생성 단계(S300)에서 외곽 노드(320)의 연결 순서를 설정할 필요가 있다.
도 16는 실시예에 따른 벽 이미지 생성 예시도이다.
도 16를 참조하면, 한 개의 폴리곤(300)이 존재하는 경우, 기준 노드(310a, 310b) 중 어느 하나와 외곽 노드(320) 중 어느 하나를 이용하여 복수의 위치 벡터(500)를 생성한다. 그리고, 위치 벡터(500)의 각도에 따라 위치 벡터를 정렬한다. 정렬된 위치 벡터의 순서에 따라 위치 벡터에 대응하는 외곽 노드의 순서를 설정한다.
구체적으로, 제1 기준 노드(310a)와 제1 외곽 노드(320a)를 이용하여 제1 위치 벡터(500a)를 생성한다. 제1 기준 노드(310a)와 제2 외곽 노드(320b)를 이용하여 제2 위치 벡터(500b)를 생성한다. 제1 기준 노드(310a)와 제3 외곽 노드(320c)를 이용하여 제3 위치 벡터(500c)를 생성한다. 제1 기준 노드(310a)와 제4 외곽 노드(320d)를 이용하여 제4 위치 벡터(500d)를 생성한다.
그리고, 중심 벡터(410)를 기준으로, 중심 벡터(410)와 위치 벡터(500)가 이루는 각도의 크기에 따라 위치 벡터(500)의 순서를 설정한다. 이에 따르면, 제4 위치 벡터(500d), 제1 위치 벡터(500a), 제2 위치 벡터(500b), 제3 위치 벡터(500c)의 순서로 위치 벡터(500)가 정렬된다. 따라서, 위치 벡터(500)의 정렬 순서에 대응하여 제4 외곽 노드(320d), 제1 외곽 노드(320a), 제2 외곽 노드(320b), 제3 외곽 노드(320c)의 순서로 외곽 노드(320)를 연결하여 폴리곤(300)을 생성할 수 있다.
추가적으로, 외곽 노드(320)의 순서에 기준 노드(310)를 추가하여 폴리곤(300)을 생성할 수도 있다. 예를 들어, 중심 벡터(410)의 종료 지점인 제2 기준 노드(310b)를 0도의 각도를 가지는 것으로 설정할 수 있다. 그리고, 중심 벡터(410)를 기준으로 제1 기준 노드(310a)가 180도의 각도를 가지는 것으로 설정하는 경우, 제1 기준 노드(310a)를 제1 외곽 노드(320a) 와 제2 외곽 노드(320b)의 사이에 배치시킬 수 있다.
따라서, 제2 기준 노드(310b), 제4 외곽 노드(320d), 제1 외곽 노드(320a), 제1 기준 노드(310a), 제2 외곽 노드(320b), 제3 외곽 노드(320c)의 순서 기준 노드(310) 및 외곽 노드(320)를 연결하여 폴리곤(300)을 생성할 수 있다.
이하, 도 17을 참조하여, 공유 노드(311) 및 결합 노드(321)가 존재하는 경우 폴리곤(300) 생성 방법을 설명한다.
도 17은 실시예에 따른 벽 이미지 생성 예시도이다.
도 17을 참조하면, 두 개 이상의 폴리곤(300)이 연결된다. 따라서, 상술한 바와 같이 공유 노드(311) 및 결합 노드(321)를 생성하여 폴리곤(300)을 생성한다. 도 16를 참조하여 설명한 바와 같이 공유 노드(311) 및 결합 노드(321)가 존재하는 경우에도 위치 벡터(500)를 생성하고 위치 벡터의 각도에 따라 기준 노드(310), 공유 노드(311), 외곽 노드(320), 결합 노드(321)의 순서를 설정한다.
구체적으로, 공유 노드(311)가 존재하는 경우, 기준 노드(310a)와 공유 노드(311)를 이용하여 중심 벡터(410)를 생성한다. 그리고, 공유 노드(311)가 존재하는 경우, 공유 노드(311)는 외곽 노드(320) 대신 결합 노드(321a, 321b)와 연결되어 폴리곤(300)을 생성한다.
따라서, 공유 노드(311) 또는 기준 노드(310a) 중 어느 하나와 외곽 노드(320) 및 결합 노드(321) 중 어느 하나로 구성된 위치 벡터를 생성하고 위치 벡터의 각도에 따라 공유 노드(311), 기준 노드(310), 외곽 노드(320), 결합 노드(321)의 연결 순서를 설정한다.
두 개 이상의 폴리곤(300)이 연결되는 경우, 기준 노드(310)와 제1 외곽 노드(320a)를 이용하여 제1 위치 벡터(500a)를 생성한다. 기준 노드(310)와 제2 외곽 노드(320b)를 이용하여 제2 위치 벡터(500b)를 생성한다. 기준 노드(310)와 제1 결합 노드(321a)를 이용하여 제3 위치 벡터(500c)를 생성한다. 기준 노드(310)와 제2 결합 노드(321b)를 이용하여 제4 위치 벡터(500d)를 생성한다.
그리고, 중심 벡터(410)의 종료 지점인 공유 노드(311)를 0도의 각도를 가지는 것으로 설정할 수 있다. 중심 벡터(410)를 기준으로 기준 노드(310a)는 180도의 각도를 가지는 것으로 설정할 수 있다.
이러한 경우, 공유 노드(311)를 1순위로 설정하고, 제1 기준 노드(310a)를 제1 외곽 노드(320a) 와 제2 외곽 노드(320b)의 사이에 배치시킬 수 있다. 따라서, 공유 노드(311, 제2 결합 노드 (321b), 제1 외곽 노드(320a), 기준 노드(310), 제2 외곽 노드(320b), 제1 결합 노드(321a)의 순서로 연결되어 폴리곤(300)이 생성될 수 있다.
도 18은 본 발명의 또 다른 실시예에 따른 도면 공간 탐색 인터페이스 제공 방법의 순서를 도시한 흐름도이다.
도 18을 참조하면, 본 발명의 또 다른 실시예에 따른 다음과 같은 도면 공간 탐색 인터페이스 제공 방법이 수행될 수 있다. 본 방법은 서버 및 단말의 통신 연결을 통해 도면 공간 탐색 인터페이스를 제공하는 방법에 있어서, 상기 서버가 상기 단말에게, 벽 이미지가 포함된 이미지 파일 또는 벽 이미지를 생성하여 도면을 작성하는 입력 영역을 포함하는 제1 인터페이스를 제공하는 단계(S410), 상기 서버가 상기 단말로부터 입력된 상기 도면 이미지, 상기 작성된 도면에 포함된 벽 이미지를 식별하고, 상기 벽 이미지를 구성하는 외곽 노드를 도출하며, 상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하고, 상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤을 방에 해당하는 영역으로 설정하는 단계 (S420), 그리고 상기 서버가 상기 단말에게, 상기 방에 해당하는 영역을 토대로 생성한 방 이미지를 포함하는 제2 인터페이스를 제공하는 단계(S430)를 포함한다.
상기 제1 인터페이스를 제공하는 단계(S410)는, 벽의 시작 지점 및 벽의 종료 지점을 설정하는 입력 영역을 포함하는 제3 인터페이스를 제공하는 단계, 상기 서버가 상기 단말로부터, 상기 입력 영역 중 상기 벽의 시작 지점 및 벽의 종료 지점에 대한 설정 입력을 수신하는 단계, 그리고 상기 서버가 상기 단말에게, 상기 설정 입력을 토대로 생성한 벽 이미지를 포함하는 제4 인터페이스를 제공하는 단계를 더 포함할 수 있다.
제1 인터페이스는, 사용자가 건물의 평면도, 구조도 등과 같이 벽 이미지가 포함된 이미지 파일을 입력하거나, 사용자가 직접 벽 이미지를 생성하여 배치할 수 있다.
제2 인터페이스는, 상술한 도면 공간 탐색 방법을 이용하여 사용자가 입력한 도면에서 방에 해당하는 영역을 탐색하여 방 이미지가 표현된 도면을 생성하여 단말의 디스플레이상에 표현한다. 추가적으로, 제2 인터페이스는 방에 해당하는 영역의 방 속성을 설정하기 위한 방 속성 설정 영역, 방에 배치할 수 있는 가구 및 인테리어 소품의 이미지(아이콘)을 선택하여 방에 배치하기 위한 인테리어 설정 영역을 더 포함할 수 있다.
제3인터페이스는 생성된 벽 이미지를 삭제하는 벽 이미지 제거 영역을 포함할 수 있다. 사용자는 단말에서 입력 영역을 선택하는 경우, 벽의 시작 지점 및 종료 시점을 선택할 수 있다. 또한, 사용자가 벽 이미지 제거 영역을 선택하는 경우, 생성된 벽 이미지를 제거할 수 있다. 또한, 사용자는 생성된 벽 이미지를 이동하거나, 생성된 벽 이미지의 시작 지점 및 종료 지점을 변경할 수 있다.
제4 인터페이스는, 상술한 벽 이미지 생성 방법을 이용하여 사용자의 설정 입력에 대응하는 벽 이미지를 생성하여 단말의 디스플레이상에 표현한다. 추가적으로, 제4 인터페이스에도 생성된 벽 이미지를 이동하거나, 생성된 벽 이미지의 시작 지점 및 종료 지점을 변경할 수 있다.
상술한 본 발명의 실시예들에 따른 도면 공간 탐색 방법, 도면 공간 탐색 인터페이스 제공 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1: 도면 공간 탐색 장치 100: 메모리
200: 프로세서 300: 폴리곤
500: 위치 벡터 310: 기준 노드
320: 외곽 노드 410: 중심 벡터
420: 유닛 벡터 430: 평행선
4000: 폴리곤 3100: 외곽 노드
4100: 기준 노드
200: 프로세서 300: 폴리곤
500: 위치 벡터 310: 기준 노드
320: 외곽 노드 410: 중심 벡터
420: 유닛 벡터 430: 평행선
4000: 폴리곤 3100: 외곽 노드
4100: 기준 노드
Claims (13)
- 도면 공간 탐색 장치를 이용하여 도면에서 방에 해당하는 공간을 탐색하는 방법에 관한 것으로서,
도면에서 벽의 이미지를 식별하는 단계,
상기 벽 이미지를 구성하는 외곽 노드를 도출하는 단계,
상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하는 단계, 그리고
상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 방 영역 설정 단계,
를 포함하며,
상기 외곽 노드는 벽의 이미지를 구성하기 위한 꼭지점, 상기 벽 이미지의 교점 및 상기 벽 이미지를 구성하기 위한 기준점 중 어느 하나 이상을 포함하는, 도면 공간 탐색 방법. - 제1항에 있어서,
상기 공간을 구성하는 복수의 폴리곤을 도출하는 단계는,
상기 외곽 노드에 라벨링을 수행하는 단계,
상기 외곽 노드 및 깊이 우선 탐색(DFS: Depth-First Search) 알고리즘을 이용하여 상기 공간을 구성하는 복수의 폴리곤을 도출하는 단계
를 포함하는, 도면 공간 탐색 방법. - 제2항에 있어서,
상기 외곽 노드를 도출하는 단계는,
상기 벽 이미지는 벽의 시작 위치 또는 벽의 종료 지점에 대응하는 복수의 기준 노드를 설정하는 단계,
상기 기준 노드 및 미리 설정된 벽 두께 정보를 이용하여 도출된 복수의 외곽 노드를 설정하는 단계,
를 더 포함하는, 도면 공간 탐색 방법. - 제3항에 있어서,
상기 방 영역 설정 단계는,
상기 복수의 폴리곤 중 같은 기준 노드를 이용하여 생성된 폴리곤을 방 영역 후보 폴리곤 그룹으로 구분하는 단계,
상기 방 영역 후보 폴리곤 그룹 중 폴리곤의 넓이가 최대인 폴리곤을 제외하고, 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 단계
를 포함하는, 도면 공간 탐색 방법. - 제4항에 있어서,
상기 방에 해당하는 영역은,
방의 이름, 방의 종류, 색상 정보, 바닥 정보, 벽지 정보, 높이 정보 중 하나 이상을 포함하는, 도면 공간 탐색 방법. - 도면에서 방에 해당하는 공간을 탐색하는 장치에 관한 것으로서,
도면 저작 프로그램이 저장된 메모리, 그리고
상기 도면 저작 프로그램을 실행하는 프로세서
를 포함하며,
상기 프로세서는 상기 도면 저작 프로그램을 실행하여, 도면에서 벽의 이미지를 식별하고, 벽 이미지를 구성하는 외곽 노드를 도출하며, 상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하고, 상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는 방 영역 설정하며, 상기 외곽 노드는 벽의 이미지를 구성하기 위한 꼭지점, 상기 벽 이미지의 교점 및 상기 벽 이미지를 구성하기 위한 기준점 중 어느 하나 이상을 포함하는, 도면 공간 탐색 장치. - 제6항에 있어서,
상기 프로세서는 상기 도면 저작 프로그램을 실행하여,
상기 외곽 노드에 라벨링을 수행하고, 상기 외곽 노드 및 깊이 우선 탐색(DFS: Depth-First Search) 알고리즘을 이용하여 상기 공간을 구성하는 복수의 폴리곤을 도출하는, 도면 공간 탐색 장치. - 제7항에 있어서,
상기 프로세서는 상기 도면 저작 프로그램을 실행하여,
상기 벽 이미지는 벽의 시작 위치 또는 벽의 종료 지점에 대응하는 복수의 기준 노드를 설정하고, 상기 기준 노드 및 미리 설정된 벽 두께 정보를 이용하여 도출된 복수의 외곽 노드를 설정하는, 도면 공간 탐색 장치. - 제8항에 있어서,
상기 프로세서는 상기 도면 저작 프로그램을 실행하여,
상기 복수의 폴리곤 중 같은 기준 노드를 이용하여 생성된 폴리곤을 방 영역 후보 폴리곤 그룹으로 구분하고, 상기 방 영역 후보 폴리곤 그룹 중 폴리곤의 넓이가 최대인 폴리곤을 제외하고, 나머지 폴리곤에 해당하는 영역을 방에 해당하는 영역으로 설정하는, 도면 공간 탐색 장치. - 제9항에 있어서,
상기 방에 해당하는 영역은,
방의 이름, 방의 종류, 색상 정보, 바닥 정보, 벽지 정보, 높이 정보 중 하나 이상을 포함하는, 도면 공간 탐색 장치. - 제1항 내지 제5항 중 어느 한 항에 따른 도면 공간 탐색 방법에 따라 설정된 방에 해당하는 영역을 기초로 가상 현실 기반 인테리어 서비스를 제공하는 방법.
- 제1항 내지 제 5항 중 어느 한 항에 따른 도면 공간 탐색 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 비일시적 컴퓨터 판독 가능 기록매체.
- 서버 및 단말의 통신 연결을 통해 도면 공간 탐색 인터페이스를 제공하는 방법에 있어서,
상기 서버가 상기 단말에게, 도면 이미지 또는 벽 이미지를 생성하여 도면을 작성하는 입력 영역을 포함하는 제1 인터페이스를 제공하는 단계,
상기 서버가 상기 단말로부터 입력된 상기 도면 이미지, 상기 작성된 도면에 포함된 벽 이미지를 식별하고, 상기 벽 이미지를 구성하는 외곽 노드를 도출하며, 상기 외곽 노드를 이용하여 공간을 구성하는 복수의 폴리곤을 도출하고, 상기 복수의 폴리곤 중 최외각 폴리곤을 제외한 나머지 폴리곤을 방에 해당하는 영역으로 설정하는 단계, 그리고
상기 서버가 상기 단말에게, 상기 방에 해당하는 영역을 토대로 생성한 방 이미지를 포함하는 제2 인터페이스를 제공하는 단계
를 포함하는, 도면 공간 탐색 인터페이스 제공 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210133476A KR102649922B1 (ko) | 2021-10-07 | 2021-10-07 | 도면 공간 탐색 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210133476A KR102649922B1 (ko) | 2021-10-07 | 2021-10-07 | 도면 공간 탐색 방법 및 장치 |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20230050143A true KR20230050143A (ko) | 2023-04-14 |
KR102649922B1 KR102649922B1 (ko) | 2024-03-22 |
KR102649922B9 KR102649922B9 (ko) | 2024-08-30 |
Family
ID=85946506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210133476A KR102649922B1 (ko) | 2021-10-07 | 2021-10-07 | 도면 공간 탐색 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102649922B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003846A (ja) * | 2007-06-25 | 2009-01-08 | System Meisei Kk | 建築図面データ変換プログラム |
KR20160064784A (ko) * | 2014-11-28 | 2016-06-08 | 주식회사 어반베이스 | 2차원 도면에 기반한 3차원 자동 입체모델링 방법 및 프로그램 |
KR20180001259A (ko) * | 2016-06-27 | 2018-01-04 | (주) 아키드로우 | 인테리어 정보 처리 장치 및 방법 |
US20210073433A1 (en) * | 2019-09-06 | 2021-03-11 | BeamUp, Ltd. | Structural design systems and methods for automatic extraction of data from 2d floor plans for retention in building information models |
-
2021
- 2021-10-07 KR KR1020210133476A patent/KR102649922B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009003846A (ja) * | 2007-06-25 | 2009-01-08 | System Meisei Kk | 建築図面データ変換プログラム |
KR20160064784A (ko) * | 2014-11-28 | 2016-06-08 | 주식회사 어반베이스 | 2차원 도면에 기반한 3차원 자동 입체모델링 방법 및 프로그램 |
KR20180001259A (ko) * | 2016-06-27 | 2018-01-04 | (주) 아키드로우 | 인테리어 정보 처리 장치 및 방법 |
US20210073433A1 (en) * | 2019-09-06 | 2021-03-11 | BeamUp, Ltd. | Structural design systems and methods for automatic extraction of data from 2d floor plans for retention in building information models |
Also Published As
Publication number | Publication date |
---|---|
KR102649922B9 (ko) | 2024-08-30 |
KR102649922B1 (ko) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8174541B2 (en) | Dividing three-dimensional space into location based virtual packets | |
Cardinal et al. | Recognition and complexity of point visibility graphs | |
US6510420B1 (en) | Framework for dynamic hierarchical grouping and calculation based on multidimensional member characteristics | |
US11017611B1 (en) | Generation and modification of rooms in virtual reality environments | |
US20200311320A1 (en) | Automatic office space layout | |
US11250178B2 (en) | Dynamic spatial clustering construction and visualization system for office space planning and optimization | |
US20200034503A1 (en) | Space Planning Options Management and Visualization System with Intelligent Dynamic Cascading | |
CN108780494A (zh) | 到多层栅格布局的对象的对准 | |
JP5785864B2 (ja) | 製造ラインシミュレーション装置、データ入力支援装置、およびデータ入力支援方法 | |
US20200342654A1 (en) | Multi-spectral rendering for synthetics | |
JP6395092B2 (ja) | 光環境設計支援装置、光環境設計支援システム、プログラム | |
US11574086B2 (en) | Generating technical drawings from building information models | |
WO2020167562A1 (en) | Generating technical drawings from building information models | |
WO2017061954A1 (en) | Method and system for an online space planning tool | |
CN113971307A (zh) | 一种关联关系生成方法、装置、存储介质及电子设备 | |
KR102649922B1 (ko) | 도면 공간 탐색 방법 및 장치 | |
KR102592547B1 (ko) | 도면 공간 속성 부여 방법 및 장치 | |
CN108427795A (zh) | 一种基于bim的构件图形展示方法及装置 | |
JP7363990B2 (ja) | 照明器具配列設計装置 | |
KR20230050124A (ko) | 도면의 벽 이미지 저작 방법 및 장치 | |
US20210350039A1 (en) | Graphical Representation for Datasets | |
JPH1196400A (ja) | 形状変換方法 | |
JP2020187548A (ja) | 建物空間設計支援装置、建物空間設計支援方法及び建物空間設計支援プログラム | |
Satre et al. | Furniture Organizer Application Using Augmented Reality | |
CN110647574B (zh) | 一种社交网络数据展示方法、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |