KR100913422B1 - 곡선 디자인 시스템 및 방법 - Google Patents

곡선 디자인 시스템 및 방법 Download PDF

Info

Publication number
KR100913422B1
KR100913422B1 KR1020070100392A KR20070100392A KR100913422B1 KR 100913422 B1 KR100913422 B1 KR 100913422B1 KR 1020070100392 A KR1020070100392 A KR 1020070100392A KR 20070100392 A KR20070100392 A KR 20070100392A KR 100913422 B1 KR100913422 B1 KR 100913422B1
Authority
KR
South Korea
Prior art keywords
curve
growth
bezier
curves
calculating
Prior art date
Application number
KR1020070100392A
Other languages
English (en)
Other versions
KR20080051028A (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 한국전자통신연구원
Priority to US11/947,430 priority Critical patent/US8159494B2/en
Publication of KR20080051028A publication Critical patent/KR20080051028A/ko
Application granted granted Critical
Publication of KR100913422B1 publication Critical patent/KR100913422B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/06Curved planar reformation of 3D line structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 곡선 디자인 시스템 및 방법에 관한 것으로서, 주어진 샘플 곡선의 특징을 골고루 혼합한 유사 곡선을 생성하는데 있어서, 곡선의 단계적 성장을 바탕으로 혼합의 정도, 부드러움, 크기 등을 조절할 수 있도록 함으로써, 컴퓨터 그래픽스 및 CAD 분야에서 곡선 설계 및 곡면 설계에 활용할 수 있다.
곡선, 디자인, 유사 곡선

Description

곡선 디자인 시스템 및 방법{SYSTEM AND METHOD FOR DESIGNING CURVES}
본 발명은 곡선(curve)을 디자인하는 기술에 관한 것으로, 더욱 상세하게는 주어진 샘플 곡선으로부터 곡선을 디자인함에 있어 샘플 곡선의 특징을 골고루 혼합하여 유사 곡선을 생성하기 위해 곡선의 단계적 성장을 바탕으로 혼합의 정도, 부드러움, 크기 등을 조절할 수 있는 곡선 디자인 시스템 및 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-045-01, 과제명: 기능 확장형 초고속 랜더러 개발].
컴퓨터 그래픽스와 CAD(Computer-Aided Design)에서 곡선은 물체의 모양 및 움직임, 그 외 시간에 따라 변하는 특성 값을 정의할 수 있는 중요한 기하요소 중 하나이다. 특히, 기하 모델링 분야에서는 곡선을 두 개만 조합해도 곡면(surface)을 얻을 수 있다. 따라서, 곡선 디자인은 물체의 기하학적 설계에 중요한 핵심 요소이다.
컴퓨터에서 곡선을 표현하는 방법에는 크게 두 가지 방법이 있다. 첫 번째는 다선분(polyline) 방법, 두 번째는 인수곡선(parameterized curve) 방법이다.
첫 번째, 다선분 방법은 곡선 위의 주어진 두 점들을 선분(straight line segment)으로 연결하는 방법이다. 단순한 방법이기 때문에 이를 처리하는 소프트웨어 알고리즘도 매우 빠르고, 하드웨어 구현도 무척 용이하다. 또한 아무리 복잡한 곡선도 쉽게 표현할 수 있다. 따라서, 컴퓨터 그래픽스 분야와 게임 등에서 많이 쓰이고 있다. 하지만, 선분의 연결로 표현되는 만큼 곡선이 부드럽지 않다. 예를 들어, 자동차나 항공기의 표면을 설계하기에는 적당하지 않다.
반면에, 인수곡선 방법은 곡선을 다항식(polynomial)으로 곡선을 표현하는 수학적인 방법이다. 다선분 방법에 비해서는 다소 복잡하지만, 부드러운 곡선을 표현하기에 적합하다. 가장 많이 쓰이는 인수곡선 방법은 베지어(Bezier) 곡선이다. 베지어 곡선을 일반화한 비스플라인(B-spline) 곡선은 부드럽게 연결된 여러 조각의 베지어 곡선을 표현할 수 있다. 비스플라인을 유리 다항식으로 확장한 것이 NURBS(Non Uniform Rational B-Spline)이다.
베지어 곡선은 단일 곡선으로 복잡한 곡선을 표현할 수 있다. 단, 복잡한 특징을 표현하기 위해서는 다항식의 차수가 올라가서 다루기 어려울 수 있다. 비스플라인은 낮은 차수의 곡선 조각을 연결하여, 복잡한 특징을 다루기에 용이하다. 하지만, 차수가 낮아서 수학적 연속성에는 한계가 있다. NURBS는 비스플라인의 보다 일반화된 형태로 원이나 타원 같은 이차 곡선을 정확히 표현할 수 있다는 점에서 많이 쓰이고 있으나, 사용이 대단히 어렵다.
베지어 곡선은 1960년대 초 프랑스 엔지니어 피에르 베지어가 르노 자동차에서 자동차 설계에 활용하면서 널리 알려지게 되었다. 그 이후 많은 연구를 통해 베 지어 곡선의 좋은 성질이 알려졌고, 현재에는 컴퓨터 그래픽스 및 CAD 분야에서의 표준적인 곡선 표현 방법으로 자리 잡았다.
베지어 곡선은
Figure 112007071677357-pat00001
개의 제어점이 주어지면 이를 번슈타인 다항식으로 혼합하여 정의된다. 즉
Figure 112007071677357-pat00002
번째 제어점
Figure 112007071677357-pat00003
Figure 112007071677357-pat00004
번째
Figure 112007071677357-pat00005
차 번슈타인 다항식
Figure 112007071677357-pat00006
으로 가중치를 둔다. 따라서, 베지어 곡선
Figure 112007071677357-pat00007
Figure 112007071677357-pat00008
로 정의된다.
다선분 방법으로 표현된 곡선을 인수곡선으로 변화하여 표현하는 것이 가능하다. 이는 수학적인 보간(interpolation) 및 근사(approximation)를 통해 이루어진다.
곡선을 설계하는데 있어서 기존에 설계된 곡선을 이용하여 설계하는 경우가 많다. 몇 가지 예를 들어 볼 수 있다.
첫 번째는 기존에 존재하는 곡선들을 재활용하여 유사하지만 새로운 곡선을 만드는 경우이다.
두 번째는 물체의 형태가 변화하는 애니메이션을 만드는 경우이다. 물체의 형태가 직접적으로 곡선으로 표현되거나, 또는 그 뼈대가 곡선으로 표현되는 경우, 시작 곡선 형태와 변화가 종료된 곡선 형태만 가지고 중간 곡선 형태를 유추해야 한다.
세 번째는 곡선 두 개를 연결하는 곡면을 만드는 경우이다.
곡선의 특징 혼합에 있어서, 주어진 곡선들의 특징이 복잡한 경우 특징들 사이의 대응을 만들어 내는 것이 가장 어려운 문제이다. 이를 위해 패턴 인식, 미분 기하, 계산 기하 등의 이론에 근거한 많은 방법들이 제시되었으며, 궁극적으로 곡선의 성장을 이용하여 대응을 매우 용이하게 할 수 있는 방안이 제시되어야 한다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 주어진 곡선들을 혼합하여 유사한 곡선을 생성함에 있어서, 곡선의 특징 대응이 쉽고, 대응 특징이 부드럽게 혼합될 수 있고, 추가적인 제어 방법을 제공하는 곡선 디자인 시스템 및 방법을 제공하는데 있다.
구체적으로, 본 발명은 아무리 복잡한 곡선이라도 곡선의 성장 관점에서 보면 반드시 매우 단순한 성장 단계를 거치게 되어 있다는 사실을 활용한다. 즉, 복잡한 곡선들의 성장 과정을 역추적하여 단순한 단계로 내리고 이 단계에서 특징 대응을 하게 되는 것이다.
본 발명의 곡선 성장 방법을 따르지 않는 경우, 곡선의 성장 경로를 단순히 주어진 곡선
Figure 112007071677357-pat00009
과 그 곡선의 양끝 점을 연결하는 직선
Figure 112007071677357-pat00010
과의 차이
Figure 112007071677357-pat00011
로 정의하기도 한다. 하지만, 이러한 방법은 곡선의 구조적이고 순차적인 발달 과정을 보일 수 없기 때문에 특징 대응에 도움이 되지 않는다. 위의 성장 경로를 직선 성장 경로라고 하는데, 이는
Figure 112007071677357-pat00012
한 점이 오직 직선을 따라서 성장하기 때문이다.
특징 대응 이후에는 대응된 특징을 혼합하여 주어진 곡선과 유사한 곡선을 만들어 내게 된다. 기본 방법에서는 대게 이 단계에서 선형 보간의 단계를 거치게 되지만, 본 발명에서는 다선형(multi-linear) 또는 비선형 방법을 통해 특징을 보 간하게 된다. 이를 통해 특징 혼합의 제어를 더 유연하게 할 수 있게 된다.
상기와 같은 목적을 달성하기 위한 본 발명의 곡선 디자인 시스템은, 사용자 입력을 지원하는 사용자 입력부; 상기 사용자 입력에 대응한 하위 곡선과 벡터 필드를 계산하는 하위 곡선 계산부; 상기 하위 곡선을 이용하여 성장 곡선을 계산하는 곡선 성장 계산부; 및 상기 사용자 입력부를 통해 입력되는 곡선, 하위 곡선 및 성장 곡선을 혼합하여 새로운 곡선을 디자인하는 곡선 혼합 계산부를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명의 곡선 디자인 방법은, (a) 입력되는 2개의 베지어 곡선, 최저차 하위 곡선의 차수, 곡선 별 성장 방법, 각 성장 방법별 제어 인수, 보외 상수
Figure 112007071677357-pat00013
값, 성장 구간, 성장 간격을 포함한 사용자 입력값에 대응하여 하위 곡선 및 벡터 필드를 계산하는 단계; (b) 상기 하위 곡선을 이용하여 성장 곡선을 계산하는 단계; 및 (c) 상기 사용자 입력값, 하위 곡선 및 성장 곡선을 혼합하여 새로운 곡선을 디자인하는 단계를 포함하여 이루어진 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 의한 곡선 디자인 시스템 및 방법은, 주어진 곡선들을 혼합하여 유사한 곡선을 생성함에 있어서, 곡선의 특징 대응이 쉽고, 대응 특징이 부드럽게 혼합될 수 있고, 크기 제어와 같은 추가적인 제어 방법을 제공하여 곡선 디자인을 할 수 있다. 특히, 발명에서 제시한 방법을 응용 시스템으로 확장하면 컴퓨터 그래픽스의 애니메이션 및 CAD의 곡면 설계에도 활용할 수 있다. 그리고, 기존의 방법에 비해 계산 과정이 매우 빠를 뿐 아니라, 혼합된 곡선이 매우 부드럽다는 특징을 갖고 있다.
이하, 본 발명의 곡선 디자인 시스템 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 따른 곡선 디자인 시스템의 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 곡선 디자인 시스템은 크게, 사용자 입력부(100)와, 하위 곡선 계산부(200)와, 곡선 성장 계산부(300)와, 곡선 혼합 계산부(400)와, 그리고 출력부(500)로 구성되어 있다.
사용자 입력부(100)로 입력되는 내용은 사용자 입력 저장부(101)에 저장된다. 사용자 입력부(100)를 통해 입력되거나 저장되는 내용은 2개의 베지어 곡선을 표현하기 위한 제어점들과 차수, 각 곡선별 성장 방법, 각 성장 방법별 필요 인수, 보외(extrapolation) 상수 계산을 위한
Figure 112007071677357-pat00014
값이 저장된다.
하위 곡선 계산부(200)는 곡선 성장 계산부(300)에서 빈번하게 사용된다. 따라서, 사용자가 입력한 곡선의 하위 곡선들을 미리 계산하여 하위 곡선 저장부(201)에 저장하고 재활용하도록 한다.
곡선 성장 계산부(300)도 계산 결과를 재활용하기 위해 곡선 성장 저장부(301)에 저장한다. 곡선 성장 계산부(300)는 네 개의 하위 모듈, 즉 선형 성장 계산부(302), 계층적 선형 성장 계산부(303), 베지어 성장 계산부(304), 스플라인 성장 계산부(305)를 갖고 있다. 각 모듈은 실제로 곡선 성장을 계산하는 부분으로 구체적인 계산 방법은 아래 설명되어 있다.([수식 4], [수식 6], [수식 7], [수식 9])
곡선 혼합 계산부(400)는 사용자 입력 저장부(101)에 저장된 사용자가 입력한 두 곡선, 하위 곡선 저장부(201)에 저장된 사용자가 입력한 두 곡선의 하위 곡선들, 및 곡선 성장 저장부(301)에 저장된 사용자가 입력한 두 곡선의 하위 곡선들로 계산한 성장 곡선을 이용하여, 일차 보간부(403)에서 명기된 최하위 곡선을 일차 보간하고, 이차 보간부(404)에서 그 결과와 성장 곡선을 다시 이차 보간하고, 그 결과를 사용자가 입력한 보외 상수에 대응하여 보외 상수 계산부(402)에서 일차 보간하여 곡선 혼합을 수행하여, 곡선 혼합 저장부(401)에 기록하고, 최종적으로 출력부(500)에서 이를 사용자에게 출력한다. 베지어 곡선 계산부(405)는 곡선의 차수 변환, 스플라인 제어점 계산, 출력을 위한 계산 등에 활용된다.
상기와 같이 구성된 본 발명의 곡선 디자인 시스템을 이용한 곡선 디자인 방법에 대해 상세히 설명한다.
여기서, 본 발명의 곡선 디자인 방법은 도 12에 잘 도시되어 있으며, 도 12의 동작 흐름도를 바탕으로 각 단계에서의 결과를 도면을 통해 상세히 설명하기로 한다.
도 12는 본 발명에 따른 곡선 디자인 시스템의 동작 흐름도이다.
먼저, 사용자가 2개의 베지어 곡선, 최저차 하위 곡선의 차수, 곡선 별 성장 방법, 각 성장 방법별 제어 인수, 보외 상수
Figure 112007071677357-pat00015
값, 성장 구간, 성장 간격 등을 입력 한다.
여기서, 본 발명에서는 기본적으로 인수곡선 방법으로 표현된 곡선의 디자인 방법을 다룬다. 특히, 단일 베지어 곡선으로 표현된 곡선만을 다루게 된다. 베지어 곡선은
Figure 112007071677357-pat00016
개의 제어점이 주어지면 이를 번슈타인 다항식으로 혼합하여 정의된다. 즉
Figure 112007071677357-pat00017
번째 제어점
Figure 112007071677357-pat00018
Figure 112007071677357-pat00019
번째
Figure 112007071677357-pat00020
차 번슈타인 다항식
Figure 112007071677357-pat00021
으로 가중치를 둔다. 따라서, 인수
Figure 112007071677357-pat00022
로 정의되는 베지어 곡선
Figure 112007071677357-pat00023
Figure 112007071677357-pat00024
로 정의된다.
본 발명에서는 베지어 곡선이 하위 곡선과 벡터 필드로 분해되는 성질을 이용하여 곡선의 성장을 표현한다. 이 분해를 베지어 곡선 분해라고 하자. 이를 좀 더 자세히 설명하면,
Figure 112007071677357-pat00025
차 베지어 곡선
Figure 112007071677357-pat00026
은 곡선 분해에 의해
Figure 112007071677357-pat00027
차 베지어 곡선
Figure 112007071677357-pat00028
Figure 112007071677357-pat00029
차 벡터 필드
Figure 112007071677357-pat00030
로 분해된다.
Figure 112007071677357-pat00031
--- [수식 1]
위 [수식 1]에서 벡터 필드는 인접한 두 베지어 곡선의 차이를 나타낸다. 즉, 아래와 같은 관계가 성립한다.
Figure 112007071677357-pat00032
--- [수식 2]
단, 인접한 두 베지어 곡선의 차이는 벡터 필드에
Figure 112007071677357-pat00033
항이 곱해짐을 유의해야 한다. 이는 양 끝점이 일치하기 위한 제약조건에 해당한다.
[수식 1]을 재귀적으로 적용하면 다음과 같은 식을 얻는다.
Figure 112007071677357-pat00034
--- [수식 3]
위 식에서 주어진 곡선
Figure 112007071677357-pat00035
은 최종적으로 1차 곡선
Figure 112007071677357-pat00036
과 일련의 벡터 필드
Figure 112007071677357-pat00037
로 분해되었다.
도 2는 본 발명에 따른 곡선 분해를 4차 곡선에 적용할 때 한 단계에 대한 예시도이고, 도 3은 본 발명에 따른 곡선 분해를 4차 곡선에 적용할 때 전체 단계에 대한 예시도이다.
도 2는 [수식 1]을 적용하여 4차 베지어 곡선
Figure 112007071677357-pat00038
를 3차 하위 곡선
Figure 112007071677357-pat00039
와 2차 벡터 필드
Figure 112007071677357-pat00040
로 분해한 예를 보여준다. 이 때 벡터 필드
Figure 112007071677357-pat00041
는 하위 곡선
Figure 112007071677357-pat00042
가 주어진 곡선
Figure 112007071677357-pat00043
로 성장하는 경로를 보여준다.
도 3은 [수식 3]을 적용하여 4차 베지어 곡선
Figure 112007071677357-pat00044
를 일련의 하위 곡선과 벡터 필드로 분해한 예를 보여 준다. 즉,
Figure 112007071677357-pat00045
Figure 112007071677357-pat00046
,
Figure 112007071677357-pat00047
,
Figure 112007071677357-pat00048
순서로 분해가 되고, 인접한 두 곡선 사이에는 벡터 필드
Figure 112007071677357-pat00049
,
Figure 112007071677357-pat00050
,
Figure 112007071677357-pat00051
가 순차적으로 정의된다.
도 3은 주어진 곡선이 직선인
Figure 112007071677357-pat00052
에서 순차적으로
Figure 112007071677357-pat00053
,
Figure 112007071677357-pat00054
,
Figure 112007071677357-pat00055
의 단계로 성장한 것을 보여주고 있다. 더불어,
Figure 112007071677357-pat00056
의 한 점이
Figure 112007071677357-pat00057
의 대응점으로 성장하는 경로가 벡터 필드를 따라 정의됨을 보여 주고 있다.
도 4는 본 발명에 따른 곡선 분해를 서로 다른 11차 곡선에 적용할 때 전체 단계에 대한 예시도이다.
도 4에 도시된 바와 같이, 서로 다른 세 개의 11차 곡선의 하위 곡선들을 보 여 주고 있다.
본 발명에 따른 곡선의 성장 경로는 일련의 하위 곡선을 이용하여 계층적으로 정의된다. 즉, 별도의 인수
Figure 112007071677357-pat00058
에 대해서
Figure 112007071677357-pat00059
의 한 점이
Figure 112007071677357-pat00060
의 한 점으로 성장하는 경로
Figure 112007071677357-pat00061
는 다음과 같이 정의된다.
Figure 112007071677357-pat00062
--- [수식 4]
위 식에서
Figure 112007071677357-pat00063
는 벡터 필드
Figure 112007071677357-pat00064
가 성장 경로에 기여하는 가중치이다.
Figure 112007071677357-pat00065
의 정의 방법에 따라 성장 경로는 달라진다. 예를 들어 미리 정의된 구간 {
Figure 112007071677357-pat00066
}에 대해서 다음과 같이 정의할 수 있다.
Figure 112007071677357-pat00067
--- [수식 5]
이 경우 인수 구간
Figure 112007071677357-pat00068
Figure 112007071677357-pat00069
로 정의할 수 있다. 이 경우 각 인접한 하위 곡선간의 성장 속도가 동일하다. 이러한 성장을 계층적 선형 성장이라고 한다.
성장 경로를 곡선으로도 정의할 수 있다. 예를 들어 두 가지 방법이 있을 수 있는데, 계층적 베지어 성장
Figure 112007071677357-pat00070
과 계층적 스플라인 성장
Figure 112007071677357-pat00071
이다.
계층적 베지어 성장은 정해진
Figure 112007071677357-pat00072
에 해당하는 각 하위 곡선의 점
Figure 112007071677357-pat00073
들을 베지어 곡선의 제어점으로 하여, 이로 정의되는 곡선
Figure 112007071677357-pat00074
을 성장 경로로 삼는 것이다. 수식으로는 다음과 같이 정의된다.
Figure 112007071677357-pat00075
--- [수식 6]
계층적 스플라인 성장은 정해진
Figure 112007071677357-pat00076
에 해당하는 각 하위 곡선의 점
Figure 112007071677357-pat00077
를 지나는 3차 스플라인 곡선
Figure 112007071677357-pat00078
을 구해서 이를 성장 경로로 삼는 것이다. 3차 스플라인은 3차 비스플라인 형태로 다음과 같이 정의된다.
Figure 112007071677357-pat00079
--- [수식 7]
위 식에서
Figure 112007071677357-pat00080
는 어떤
Figure 112007071677357-pat00081
에 대해서
Figure 112007071677357-pat00082
--- [수식 8]
의 보간 제약 조건을 만족시키는 3차 스플라인 제어점으로 기존의 방법으로 계산할 수 있다. 또한,
Figure 112007071677357-pat00083
은 비스플라인의 3차 기저(basis) 함수를 의미한다.
계층적 베지어 성장과 스플라인 성장 모두 계층적 선형 성장에 비해 부드러운 성장 곡선을 보인다. 두 곡선 성장의 차이는 [수식 8]의 보간 제약 조건 성립여부이다. 스플라인 성장의 경우 보간 제약 조건을 만족시키기 위해서는 베지어 성장에 비해 별도의 계산 과정이 필요하다.
본 발명의 계층적 성장 경로를 따르지 않는 경우, 곡선의 성장 경로를 단순 히 주어진 곡선
Figure 112007071677357-pat00084
과 그 곡선의 양끝 점을 연결하는 직선
Figure 112007071677357-pat00085
과의 차이
Figure 112007071677357-pat00086
로 정의하기도 한다. 즉, 이 때의 성장 경로는 다음과 같다.
Figure 112007071677357-pat00087
--- [수식 9]
하지만, 이러한 방법은 곡선의 구조적이고 순차적인 발달 과정을 보일 수 없기 때문에 특징 대응에 도움이 되지 않는다. 위의 성장 경로를 직선 성장 경로라고 하는데, 이는
Figure 112007071677357-pat00088
의 한 점이 오직 직선을 따라서 성장하기 때문이다.
도 5는 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 경로를 비교한 예시도이다.
도 5에 도시된 바와 같이, 세 개의 11차 곡선 (a), (b), (c)에 대해서 선형 성장, 계층적 선형 성장, 베지어 성장 경로를 보여 주고 있다. 선형 성장에서는 모든 성장 경로가 직선이다. 계층적 선형 성장에서는 작은 직선 경로들이 연결되어 구조적으로 성장하는 경로를 보여 준다. 베지어 성장 경로는 계층적 선형 성장 경로와 유사하지만 부드러운 성장을 보여준다.
도 6은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계를 비교한 예시도이다.
도 6에 도시된 바와 같이, 성장 경로를 따라 성장하는 곡선을 보여 주고 있다. 도 6에서는 성장 경로의 차이가 거의 비슷하게 보여지나, 이는 도 7을 통해 명확하게 구분됨을 알 수 있다.
도 7은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계의 연속성을 비교한 예시도이다.
도 7에 도시된 바와 같이, 계층적 선형 성장과 베지어 성장의 차이를 더 잘 보여주고 있다. 베지어 성장의 경우는 부드럽게 성장하지만 계층적 선형 성장은 불연속적인 성장을 보인다.
도 8은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계를 순차적으로 비교한 예시도이다.
도 8에 도시된 바와 같이, (a), (d), (g)는 선형 성장을 하는 경우이다. 이 성장의 특징은 곡선의 모든 특징들이 초기부터 발생한다는 것이다. 이는 성장 단계를 활용한 곡선의 특징 대응에 도움이 되지 못한다. 반면에 계층적 선형 성장을 이용한 (b), (e), (h)와 베지어 성장을 이용한 (c), (f), (i)는 성장 초기에는 부드럽고 단순한 특징만을 갖고 있다가 점점 특징이 뚜렷하게 성장하는 양상을 보여준다.
인수
Figure 112007071677357-pat00089
는 곡선의 성장 단계를 표현한다는 점에서 곡선의 나이라고 볼 수 있다. 즉,
Figure 112007071677357-pat00090
가 0일 때 곡선은 가장 어린 직선 단계이고,
Figure 112007071677357-pat00091
가 1일 때 주어진 곡선에 해당하는 현재 성장단계이다. 선형 성장이나 베지어 성장의 경우는
Figure 112007071677357-pat00092
가 0보다 작거나 1보다 큰 경우에도 정의가 가능하다. 일종의 보외(extrapolation)에 해당한다.
도 9는 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 경로의 예시도이다.
도 9는 도 5의 베지어 성장 경로를 [0,1]구간 밖으로 확장한 예를 보여 준다.
도 10은 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 단계의 연속성을 비교한 예시도이다.
도 10은 도 9의 성장 경로를 따라 도 6의 성장 단계를 확장한 것이다. 특히
Figure 112007071677357-pat00093
가 1보다 큰 경우는 곡선이 현재에서 어떻게 더 성장할 지를 알려준다.
한편, 아래에서는 곡선의 성장을 이용하는 곡선 디자인 방법을 설명한다. 특히, 서로 다른 차수의 두 개의 곡선이 주어 졌을 때, 두 곡선의 특징을 혼합한 일련의 곡선들을 생성하는 방법을 설명한다.
주어진 두 개의 곡선을 각각
Figure 112007071677357-pat00094
Figure 112007071677357-pat00095
라고 하고, 그 차수가 각각
Figure 112007071677357-pat00096
Figure 112007071677357-pat00097
이라고 하자. 기존의 선형 혼합 방법에서 중간 곡선
Figure 112007071677357-pat00098
는 다음과 같이 표현된다.
Figure 112007071677357-pat00099
--- [수식 10]
이러한 선형 혼합의 결과는 중간 곡선이 부드럽지 못하고 변화가 단조롭다. 특별한 경우가 아니면 좋은 중간 곡선으로 평가되지 못한다.
도 11은 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 단계의 예시도이다.
도 11에 도시된 바와 같이, 예를 들어 (a)는 주어진 두 곡선을 [수식 10]의 방법으로 혼합하여 얻은 곡선 디자인들이다. 본 발명에서 얻은 (e)의 곡선들에 비해서는 부드럽지 못함을 알 수 있다. 특히, 주어진 곡선에는 존재하지 않는 날카로운 모서리가 등장하는 것은 바람직하지 못한 현상으로 선형 혼합 방법에서는 불가피하다.
본 발명에서는 계층적 성장을 활용하는 비선형적 혼합을 이용하여 중간 곡선을 생성하게 된다. 먼저 주어진 곡선
Figure 112007071677357-pat00100
Figure 112007071677357-pat00101
와 [수식 1]로 정의되는 각 곡선의 성장 단계 상의 최하위 곡선
Figure 112007071677357-pat00102
Figure 112007071677357-pat00103
을 선정한다. 따라서,
Figure 112007071677357-pat00104
Figure 112007071677357-pat00105
는 각 최하위 곡선의 차수이며,
Figure 112007071677357-pat00106
Figure 112007071677357-pat00107
이다.
성장을 이용한 곡선 혼합은 1단계로 다음의 2차 식으로 표현된다.
Figure 112007071677357-pat00108
--- [수식 11]
Figure 112007071677357-pat00109
--- [수식 12]
위 식에서
Figure 112007071677357-pat00110
는 주어진 두 곡선의 최하위 곡선
Figure 112007071677357-pat00111
Figure 112007071677357-pat00112
를 선형 혼합하는 것이다.
Figure 112007071677357-pat00113
는 주어진 곡선
Figure 112007071677357-pat00114
의 성장 단계를 의미하는데, 위에서 설명한 계층적 성장 방법 중 어떤 것을 사용해도 무방하다.(즉, 계층적 선형 성장, 베지어 성장, 스플라인 성장)
Figure 112007071677357-pat00115
Figure 112007071677357-pat00116
Figure 112007071677357-pat00117
Figure 112007071677357-pat00118
를 2차 베지어 곡선 형식으로 혼합한 것이다.
도 11의 (b)는
Figure 112007071677357-pat00119
Figure 112007071677357-pat00120
가 각각 1일 때, 즉 최하위 곡선이 직선일 때의 혼합된 중간 곡선의 디자인 결과를 보여준다. (a)에 비해 곡선이 매우 부드러운 것을 알 수 있다. 하지만, 곡선이 다소 작은 감이 있다. 이것은 [수식 11] 및 [수식 12]에서 충분히 성장하지 않은 중간 곡선들을 혼합했기 때문이다. 이를 위해서 중간 결과의 크기를 조절할 필요가 있다.
본 발명에서는 다음과 같은 크기 조절 방법을 제시한다. 즉,
Figure 112007071677357-pat00121
Figure 112007071677357-pat00122
를 다음과 같이 선형 보외하는 것이다.
Figure 112007071677357-pat00123
--- [수식 13]
이 때 보외 가중치
Figure 112007071677357-pat00124
는 다음과 같이 결정한다.
Figure 112007071677357-pat00125
--- [수식 14]
이는 도 9와 도 10에서 곡선을 [0,1] 구간 밖으로 보외하는 것과 같은 원리이다.
도 11의 (c)는
Figure 112007071677357-pat00126
일 때 (b)의
Figure 112007071677357-pat00127
Figure 112007071677357-pat00128
를 보외한 결과이다. (b)의 결과에 비해 곡선의 크기가 더욱 성장하였고 부드러움도 유지하고 있다. 하지만, 주어진 두 곡선의 특성이 너무 적게 나타나는 경향이 있다. 이는
Figure 112007071677357-pat00129
Figure 112007071677357-pat00130
Figure 112007071677357-pat00131
가 각각 1인 최하위 곡선에 대해서 정의되었기 때문이다.
이 경우 본 발명은
Figure 112007071677357-pat00132
Figure 112007071677357-pat00133
의 값을 조절하여 특성 혼합의 정도를 조절하는 방법을 제시한다.
도 11의 (d)는 [수식 11]을
Figure 112007071677357-pat00134
Figure 112007071677357-pat00135
가 각각 4일 때 적용한 결과이다. 즉, 최하위 곡선의 차수가 4인 경우이다. 이 경우에도 (b)의 경우와 마찬가지로 크기가 다소 작은 감이 있다. 이 때
Figure 112007071677357-pat00136
로 [수식 13]을 적용하면 적당한 크기에 부드럽지만 주어진 두 곡선의 특성을 잘 혼합한 곡선 (e)를 얻을 수 있다.
본 발명의 방법은 주어진 곡선이 반드시 인수 곡선 표현이어야 하는 것은 아니다. 다선분 방법으로 표현된 곡선을 인수곡선으로 변화하여 표현하는 것이 가능하다. 이는 수학적인 보간(interpolation) 및 근사(approximation)를 통해 이루어진다. 따라서, 본 발명에서 다루는 곡선은 직접적으로는 인수곡선 방법이지만, 다선분 방법으로 표현된 곡선에 대해서도 적용이 가능하다.
또한, 비스플라인이나 NURBS로 표현된 곡선에 대해서는 베지어 곡선으로 근사하여 본 발명의 적용이 가능하다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
도 1은 본 발명에 따른 곡선 디자인 시스템의 구성도,
도 2는 본 발명에 따른 곡선 분해를 4차 곡선에 적용할 때 한 단계에 대한 예시도,
도 3은 본 발명에 따른 곡선 분해를 4차 곡선에 적용할 때 전체 단계에 대한 예시도,
도 4는 본 발명에 따른 곡선 분해를 서로 다른 11차 곡선에 적용할 때 전체 단계에 대한 예시도,
도 5는 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 경로를 비교한 예시도,
도 6은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계를 비교한 예시도,
도 7은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계의 연속성을 비교한 예시도,
도 8은 본 발명에 따른 계층적 성장 방법과 선형 성장 방법의 성장 단계를 순차적으로 비교한 예시도,
도 9는 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 경로의 예시도,
도 10은 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 단계의 연속성을 비교한 예시도,
도 11은 본 발명에 따른 베지어 성장을 구간 외로 확장한 경우의 성장 단계의 예시도,
도 12는 본 발명에 따른 곡선 디자인 시스템의 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 사용자 입력부 101 : 사용자 입력 저장부
200 : 하위 곡선 계산부 201 : 하위 곡선 저장부
300 : 곡선 성장 계산부 301 : 곡선 성장 저장부
302 : 선형 성장 계산부 303 : 계층적 선형 성장 계산부
304 : 베지어 성장 계산부 305 : 스플라인 성장 계산부
400 : 곡선 혼합 계산부 401 : 곡선 혼합 저장부
402 : 보외 상수 계산부 403 : 일차 보간부
404 : 이차 보간부 405 : 베지어 곡선 계산부
500 : 출력부

Claims (14)

  1. 사용자 입력을 지원하는 사용자 입력부;
    상기 사용자 입력에 대응하여 n-1차 베지어 곡선인 하위 곡선과 벡터 필드를 계산하는 하위 곡선 계산부;
    상기 하위 곡선을 이용하여 성장 곡선을 계산하는 곡선 성장 계산부; 및
    상기 사용자 입력부를 통해 입력되는 곡선, 하위 곡선 및 성장 곡선을 혼합하여 새로운 곡선을 디자인하는 곡선 혼합 계산부
    를 포함하는 것을 특징으로 하는 곡선 디자인 시스템.
  2. 제1항에 있어서, 상기 시스템은 곡선 혼합 계산부의 출력을 수행하는 출력부를 더 포함하는 것을 특징으로 하는 곡선 디자인 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 사용자 입력부에 입력되는 데이터는 2개의 베지어 곡선, 최저차 하위 곡선의 차수, 곡선 별 성장 방법, 각 성장 방법별 제어 인수, 보외 상수
    Figure 112009023254313-pat00137
    값, 성장 구간, 성장 간격인 것을 특징으로 하는 곡선 디자인 시스템.
  4. 제3항에 있어서, 상기 곡선 성장 계산부는,
    성장 경로가 직선으로 정의되도록 계산하는 선형 성장 계산부;
    각 인접한 하위 곡선간의 성장 속도가 동일하도록 계산하는 계층적 선형 성장 계산부;
    인수
    Figure 112009023254313-pat00138
    로 정의되는 자연수
    Figure 112009023254313-pat00139
    차 베지어 곡선
    Figure 112009023254313-pat00140
    에서 정해진
    Figure 112009023254313-pat00141
    에 해당하는 각 하위 곡선의 점
    Figure 112009023254313-pat00142
    들을 베지어 곡선의 제어점으로 하여 곡선
    Figure 112009023254313-pat00143
    인 성장 경로를 계산하는 베지어 성장 계산부; 및
    정해진
    Figure 112009023254313-pat00198
    에 해당하는 각 하위 곡선의 점
    Figure 112009023254313-pat00145
    를 지나는 3차 스플라인 곡선
    Figure 112009023254313-pat00146
    인 성장 경로를 계산하는 스플라인 성장 계산부
    를 포함하는 것을 특징으로 하는 곡선 디자인 시스템.
  5. 제4항에 있어서, 상기 곡선 혼합 계산부는,
    상기
    Figure 112009023254313-pat00147
    값에 대응하여 보외 상수를 계산하는 보외 상수 계산부;
    상기 보외를 위한 일차 보간 및 최하위 곡선을 일차 보간하는 일차 보간부;
    상기 최하위 곡선의 일차 보간 결과와 성장 곡선을 이차 보간하는 이차 보간부; 및
    곡선의 차수 변환, 스플라인 제어점 계산, 출력을 위한 계산을 수행하는 베지어 곡선 계산부
    를 포함하는 것을 특징으로 하는 곡선 디자인 시스템.
  6. 입력되는 2개의 베지어 곡선, 최저차 하위 곡선의 차수, 곡선 별 성장 방법, 각 성장 방법별 제어 인수, 보외 상수
    Figure 112009023254313-pat00148
    값, 성장 구간, 성장 간격을 포함한 사용자 입력값에 대응하여 하위 곡선 및 벡터 필드를 계산하는 단계;
    상기 하위 곡선을 이용하여 성장 곡선을 계산하는 단계; 및
    상기 사용자 입력값, 하위 곡선 및 성장 곡선을 혼합하여 새로운 곡선을 디자인하는 단계
    를 포함하는 것을 특징으로 하는 곡선 디자인 방법.
  7. 삭제
  8. 제6항에 있어서, 상기 성장 곡선을 계산하는 단계는 상기 하위 곡선과 벡터 필드를 이용하여 계층적 선형 성장, 베지어 성장, 스플라인 성장을 계산하는 것을 특징으로 하는 곡선 디자인 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제6항에 있어서, 상기 새로운 곡선을 디자인하는 단계는,
    상기 2개의 베지어 곡선의 최하위 곡선을 일차 보간하는 단계;
    상기 일차 보간 결과와 계산된 성장 곡선을 이차 보간하는 단계;
    상기 이차 보간 결과에 대해 상기 일차 보간한 결과와 입력된 보외 상수를 이용하여 일차 보간의 크기를 조절하는 단계;
    상기 최저차 하위 곡선의 차수로 곡선의 부드러움을 조절하는 단계
    를 포함하는 것을 특징으로 하는 곡선 디자인 방법.
  13. 삭제
  14. 삭제
KR1020070100392A 2006-12-04 2007-10-05 곡선 디자인 시스템 및 방법 KR100913422B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/947,430 US8159494B2 (en) 2006-12-04 2007-11-29 System and method for designing curves

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060121408 2006-12-04
KR20060121408 2006-12-04

Publications (2)

Publication Number Publication Date
KR20080051028A KR20080051028A (ko) 2008-06-10
KR100913422B1 true KR100913422B1 (ko) 2009-08-21

Family

ID=39806172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100392A KR100913422B1 (ko) 2006-12-04 2007-10-05 곡선 디자인 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100913422B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05114002A (ja) * 1991-10-23 1993-05-07 Mitsubishi Heavy Ind Ltd 自由曲線の設計装置
JPH0836653A (ja) * 1994-07-22 1996-02-06 Ricoh Co Ltd 自由曲面生成方法及びその装置
JP2004295317A (ja) 2003-03-26 2004-10-21 Just Syst Corp 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム
JP2006202066A (ja) 2005-01-21 2006-08-03 Institute Of National Colleges Of Technology Japan 3次元コンピュータ・グラフィックス曲線・曲面モデル生成装置およびそのシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05114002A (ja) * 1991-10-23 1993-05-07 Mitsubishi Heavy Ind Ltd 自由曲線の設計装置
JPH0836653A (ja) * 1994-07-22 1996-02-06 Ricoh Co Ltd 自由曲面生成方法及びその装置
JP2004295317A (ja) 2003-03-26 2004-10-21 Just Syst Corp 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム
JP2006202066A (ja) 2005-01-21 2006-08-03 Institute Of National Colleges Of Technology Japan 3次元コンピュータ・グラフィックス曲線・曲面モデル生成装置およびそのシステム

Also Published As

Publication number Publication date
KR20080051028A (ko) 2008-06-10

Similar Documents

Publication Publication Date Title
US11403434B2 (en) Surface patch techniques for computational geometry
Litke et al. Trimming for subdivision surfaces
Wolberg et al. An energy-minimization framework for monotonic cubic spline interpolation
JP5177771B2 (ja) 美的曲線を生成する図形情報処理装置、図形情報処理方法及び図形情報処理プログラム
US7643026B2 (en) NURBS surface deformation apparatus and the method using 3D target curve
Lavery Univariate cubic Lp splines and shape-preserving, multiscale interpolation by univariate cubic L1 splines
JP2003505800A (ja) 制御幾何(コントロールジェオメトリ)を用いた幾何学的設計およびモデリングシステム
US8159494B2 (en) System and method for designing curves
Renner et al. Exact and approximate computation of B-spline curves on surfaces
Karčiauskas et al. Improved shape for multi-surface blends
US11907617B2 (en) Surface patch techniques for computational geometry
Lin et al. Adaptive patch-based mesh fitting for reverse engineering
Beccari et al. Polynomial-based non-uniform interpolatory subdivision with features control
KR100913422B1 (ko) 곡선 디자인 시스템 및 방법
Li et al. C-shaped G2 Hermite interpolation with circular precision based on cubic PH curve interpolation
Farin Degree reduction fairing of cubic B-spline curves
Kim et al. A symbolic approach to freeform parametric surface blends
CN112949023A (zh) 一种基于弦长二分法的二次Bezier曲线插值方法
Tsuchie et al. α-Curves: Extended log-aesthetic curves with variable shape parameter
Muftejev et al. Multi-criteria assessment of shape quality in cad systems of the future
Abbas et al. Positivity preserving interpolation of positive data by cubic trigonometric spline
Ribó et al. Some algorithms to correct a geometry in order to create a finite element mesh
Karčiauskas et al. Curvature-bounded guided subdivision: biquartics vs bicubics
Lee et al. Interpolation of the irregular curve network of ship hull form using subdivision surfaces
Ugail Method of trimming PDE surfaces

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: 20120730

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee