KR20100074113A - 보간처리방법, 및 보간처리장치 - Google Patents

보간처리방법, 및 보간처리장치 Download PDF

Info

Publication number
KR20100074113A
KR20100074113A KR1020107004217A KR20107004217A KR20100074113A KR 20100074113 A KR20100074113 A KR 20100074113A KR 1020107004217 A KR1020107004217 A KR 1020107004217A KR 20107004217 A KR20107004217 A KR 20107004217A KR 20100074113 A KR20100074113 A KR 20100074113A
Authority
KR
South Korea
Prior art keywords
point
interpolation
curve
vector
curved surface
Prior art date
Application number
KR1020107004217A
Other languages
English (en)
Other versions
KR101443949B1 (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 KR20100074113A publication Critical patent/KR20100074113A/ko
Application granted granted Critical
Publication of KR101443949B1 publication Critical patent/KR101443949B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Algebra (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Complex Calculations (AREA)

Abstract

보간처리는, B-Spline 곡선·곡면이나 세분할 곡면 등의 제어점으로 표시되는 곡선·곡면을 이용하여 보간점을 보간할 때에, 점군을 구성하는 보간점의 위치 정보와, 각 보간점에 설정된 단위방향 벡터의 벡터 정보를 이용하여, 제어점을 이동시키는 이동 벡터를 산출하고, 이 이동 벡터의 이동방향으로 이동량만큼 제어점을 이동시킨다. 보간점을 보간하는 곡선·곡면의 생성과 제어점의 이동의 공정을 반복하는 것에 의해서, 곡선·곡면을 점군의 위치 및 단위방향 벡터에 대해 피팅시키는 새로운 제어점 위치를 구한다. 점군의 위치 정보와 법선 정보를 이용한 보간처리에 있어서, 제어점의 증가를 억제하여 처리 데이터의 데이터 양을 저감하고, 또한, 접선 벡터의 크기의 지정을 불필요로 한다.

Description

보간처리방법, 및 보간처리장치{INTERPOLATION PROCESSING METHOD AND INTERPOLATION PROCESSOR}
본 발명은, 점군 데이터를 보간·근사하여 곡선 혹은 곡면을 생성하는 피팅처리방법, 피팅처리장치, 및 이 피팅처리를 CPU에 실행시키는 프로그램에 관한 것이다.
자유 곡면은, 배, 자동차, 비행기 등, 여러 가지 공업제품의 몸체에 이용되고 있고, 기능성과 미관의 양쪽 모두를 겸비하는 것이고, 가정용 전기제품이나 많은 소비재의 외관 등 의장적으로 아름다운 형상의 디자인 설계에 이용된다.
최근, 3D 레이저 스캐너에 의해서 고밀도의 점군 데이터를 고속으로 또한 용이하게 수집할 수 있게 되고, 물체 형상을 고정밀도로 측정할 수 있는 것이 가능하게 되어 있다. 예를 들면, 3D 모델링의 분야에 있어서는, 디자이너가 수작업으로 작성한 실물 모형 모델을 3D 레이저 스캐너로 계측하여, 컴퓨터에 넣은 점군 데이터나 폴리곤 데이터를 기초로 제품으로서 생산하기 위해서 필요한 곡면 데이터 등의 CAD 데이터를 작성해 간다고 하는, 소위 형상의 리바이스 엔지니어링 공학의 수법이 행하여지고 있다.
일반적으로, 3D 모델은 폴리곤 모델 또는 NURBS나 B-Spline 등의 곡면 패치에 의해 컴퓨터상으로 표현된다.
CAD/CAM에 있어서 점군의 위치 정보로부터 B-Spline, NURBS, 세분할 등의 곡선·곡면곡을 보간·근사하는 방법이 알려져 있다(비특허문헌 1, 특허문헌 1). 이 보간·근사에 있어서, 각 점의 위치 정보에 더하여 법선 정보를 부가하는 것에 의해서 설계의 자유도를 올리고, 오프셋 곡선·곡면의 근사 정밀도를 향상시키는 것이 가능하다.
특허문헌1:일본공개특허공보2004-192209호
비특허문헌 1 : Les Piegel, Wayne Tiller "The NURBS Book" P373∼P376 Springer-Verlag Berlin Heidenberg 1995 and 1997
법선을 포함한 보간에서는, 제어점의 개수가 점군의 위치만을 보정하는 경우와 비교하여 증가한다. 예를 들면, 제어점의 점수는, 곡선의 경우에는 보간 점수의 약 2배, 곡면의 경우에는 보간 점수의 약 3배가 된다.
또한, 법선을 지정하기 위해서 이용하는 접선 벡터에 있어서, 방향에 관한 정보에 더하여 크기의 정보에 대해서도 각 보간점에서 지정할 필요가 있다. 이 접선 벡터의 크기의 지정은, 각 보간점에서의 접선 벡터의 크기의 지정과, 지정한 크기에 의해서 얻을 수 있는 곡선 혹은 곡면의 보간 결과의 평가를 사람 수에 따라서 반복하는 것에 의해서 행하기 때문에, 보간처리의 많은 시간과 부담을 필요로 한다.
따라서, 점군의 위치 정보에 더하여 법선 정보를 부가하는 것에 의해서 행하는 보간처리에서는, 제어점의 증가나, 접선 벡터에 있어서의 방향과 크기의 지정 등에 의해서, 설정을 필요로 하는 데이터 수가 증가한다고 하는 문제가 있다. 이 데이터 수의 증가는, 연산 처리의 처리시간의 증가를 초래하는 외, 사람이 행하는 처리도 많아진다고 하는 문제가 있다.
또한, 제어점이 증가하면, 곡선에 불필요한 진동이 생기는 경우가 있다.
따라서, 본 발명은 상기한 종래의 문제점을 해결하여, 점군의 위치 정보와 법선 정보를 이용한 보간처리에 있어서, 처리 데이터의 데이터 양을 저감하는 것을 목적으로 한다.
더 상세하게는, 점군의 위치 정보와 법선 정보를 이용한 보간처리에 있어서, 제어점의 증가를 억제하는 것을 목적으로 하고, 또한, 접선 벡터의 크기의 지정을 불필요로 하는 것을 목적으로 한다.
본 발명은, 피팅 대상이 되는 점군이 부여된 상태로부터, 이 점군을 보간하는 곡선 혹은 곡면을 구하는 것이다. 처음에, 피팅 대상이 되는 점군을 초기 제어점군으로 하고, 이 제어점군의 제어점을 이용하여 곡선, 혹은 곡면을 생성한다. 이 제어점으로 표시되는 곡선은, B-Spline 곡선을 적용할 수 있고, 또한, 제어점으로 표시되는 곡면은, B-Spline 곡면이나 세분할 곡면을 적용할 수 있다.
다음에, 같은 점군을 보간점으로서, 곡선, 혹은 곡면의 생성시에 얻어진 제어점을 이동시키는 것에 의해서, 생성한 곡선 또는 곡면을 이용하여 보간점을 보간하는 것이다. 이하, 곡선 혹은 곡면을 곡선·곡면으로 표기하여 설명한다.
본 발명에 의한 보간처리에서는, 생성한 곡선·곡면을 이용하여 보간점을 보간할 때에, 점군을 구성하는 보간점의 위치 정보와, 각 보간점에 설정된 단위방향 벡터의 벡터 정보를 이용하여, 제어점을 이동시키는 이동 벡터를 산출하고, 이 이동 벡터의 이동방향으로 이동량만큼 제어점을 이동시킨다.
상기한, 보간점을 보간하는 곡선·곡면의 생성과 제어점의 이동의 공정을 반복하는 것에 의해서, 곡선·곡면을 점군의 위치 및 단위방향 벡터에 대해 피팅시키는 새로운 제어점 위치를 구한다.
본 발명은, 각 점군으로부터 최단 거리가 되는 곡선·곡면상의 점을 구하는 제 1 공정과, 설정된 단위방향 벡터와 곡선·곡면상의 접선이 수직이 되는 접선을 갖는 점을 구하는 제 2 공정, 제 2 공정에서 구한 점으로부터 각 점군으로 향하는 벡터를 구하여, 이 벡터분만큼 각 제어점을 이동시키는 제 3 공정을, 보간점에 정해진 위치와 방향에 대해 위치 오차와 각도 오차가 소정한 크기보다 작아질 때까지 반복한다.
위치 오차에 대해서는, 점군과 곡선·곡면과의 거리가, 역치를 만족할 때까지, 또한 그것보다 작아질 때까지 반복함으로써 감소시킨다. 또한, 각도 오차에 대해서는, 곡선·곡면상의 점으로서, 점군으로부터 최단 거리가 되는 점에 있어서의 법선 벡터와, 보간점에 설정된 단위방향 벡터와의 각도차가, 역치를 만족할 때까지, 또한 그것보다 작아질 때까지 반복함으로써 감소시킨다. 이것에 의해서, 점군에 피팅하는 곡선·곡면을 생성한다.
본 발명은, 보간처리방법의 형태와 보간처리장치의 형태를 갖는다.
보간처리방법의 형태는, 제어점으로 정의되는 곡선 또는 곡면에 의해서 점군을 보간하는 보간처리방법으로서, 점군은, 보간점의 위치 정보와, 이 보간점에 있어서의 곡선 또는 곡면의 방향을 정하는 단위방향 벡터의 벡터 정보를 갖는다.
보간처리는, 제어점에 의해 정의되는 곡선·곡면에 있어서, 보간점의 위치 정보에 기초하여, 보간점으로부터 곡선·곡면상에 내린 수선(垂線)의 발을 제 1 점으로 하여 구하는 기하 알고리즘의 연산을 행하는 제 1 보간 공정과, 벡터 정보에 기초하여, 단위방향 벡터와 수직으로 교차하는 곡선의 접선 또는 곡면의 접평면과의 접점을 제 2 점으로 하여 구하는 기하 알고리즘의 연산을 행하는 제 2 보간 공정과, 제 1 점으로부터 보간점으로 향하는 벡터, 제 2 점으로부터 상기 보간점으로 향하는 벡터, 제 2 점으로부터 제 1 점으로 향하는 벡터를 이동 벡터로서 구하여, 곡선 또는 곡면을 정의하는 제어점의 위치를 상기한 3개의 이동 벡터로부터 선택한 이동 벡터를 이용하여 이동하고, 이동 후의 위치를 새로운 곡선 또는 곡면의 제어점의 위치로 하여 정하는 기하 알고리즘의 연산을 행하는 제 3 보간 공정을 포함하고 있다. 이들 각 보간 공정을 행하는 연산 처리는, 기하 알고리즘을 넣은 연산수단에 의해 행하여진다.
또한, 보간처리장치의 형태에서는, 제어점으로 정의되는 곡선 또는 곡면에 의해서 점군을 보간하는 보간처리장치로서, 점군은, 보간점의 위치 정보와, 이 보간점에 있어서 곡선 또는 곡면의 방향 및, 곡률을 정하는 단위방향 벡터의 벡터 정보를 갖는다.
보간처리장치, 보간처리를 행하는 구성으로서 제 1∼제 3 기하 연산수단을 구비한다.
제 1 기하 연산수단은, 제어점에 의해 정의되는 곡선 혹은 곡면에 있어서, 보간점의 위치 정보에 기초하여, 보간점으로부터 곡선상 또는 곡면상에 내린 수선의 발을 제 1 점으로 하여 구하는 기하 알고리즘에 의해서 제 1 보간 공정을 행한다.
제 2 기하 연산수단은, 벡터 정보에 기초하여, 단위방향 벡터와 수직으로 교차하는 곡선의 접선 또는 곡면의 접평면과의 접점을 제 2 점으로 하여 구하는 기하 알고리즘에 의해서 제 2 보간 공정을 행한다.
제 3 기하 연산수단은, 제 1 점으로부터 보간점으로 향하는 벡터, 제 2 점으로부터 보간점으로 향하는 벡터, 제 2 점으로부터 제 1 점으로 향하는 벡터를 이동 벡터로서 구하여, 곡선 또는 곡면을 정의하는 제어점의 위치를 어느 하나의 이동 벡터를 이용하여 이동하고, 이동 후의 위치를 새로운 곡선 또는 곡면의 제어점의 위치로 하여 정하는 기하 알고리즘에 의해서 제 3 보간 공정을 행한다.
여기서, 제 1 기하 연산수단, 제 2 기하 연산수단 및 제 3 기하 연산수단은, 각 기하 알고리즘을 소프트웨어로 실행하기 위한 CPU 및 기억장치, 또는 각 기하 알고리즘을 하드웨어로 실행하기 위한 회로를 구비하는 구성으로 할 수 있다.
본 발명에 있어서, 곡선·곡면의 방향이나 곡률을 정하는 단위방향 벡터는, 방향만의 정보를 갖고, 크기에 대해서는 정보를 갖지 않는다. 또한, 이 단위방향 벡터는, 보간점을 보간하는 곡선 또는 곡면상에 있어서의 보간점에서의 법선 벡터로 하는 것 외, 법선 벡터로부터 소정의 각도 관계를 가진 방향 벡터로 해도 좋다.
보간처리의 종료는, 곡선·곡면이 보간점을 충분히 보간했다고 판단되는 시점까지 반복한다. 이 반복에 의한 수렴(收斂)은, 거리와 각도차를 지표로서 행할 수 있다.
거리를 지표로서 반복을 행하는 경우에는, 연산 처리에서 얻은 제어점에 기초하여 새로운 곡선·곡면을 구하여, 보간점과 구한 곡선 또는 곡면과의 거리와 역치를 비교하여, 이 거리가 역치를 만족할 때까지, 또는 역치보다 작아질 때까지, 제 1 보간 공정과 제 2 보간 공정과 제 3 보간 공정을 반복한다.
또한, 각도를 지표로서 반복을 행하는 경우에는, 연산 처리에서 얻은 제어점에 기초하여 새로운 곡선·곡면을 구하여, 각 보간점에 설정된 단위방향 벡터와, 제 1 보간 공정에서 구한 수선의 발이 되는 제 1 점에 있어서의 곡선 또는 곡면의 법선 벡터가 형성하는 각도차를 구하여, 이 양 벡터의 각도차와 역치를 비교하여, 각도차가 역치를 만족할 때까지, 또는 역치보다 작아질 때까지, 제 1 보간 공정과 제 2 보간 공정과 제 3 보간 공정을 반복한다.
상기한 거리를 지표로 하는 수렴과, 각도차를 지표로 하는 수렴은, 각각 단독으로 행하는 것 외에, 양쪽 모두를 조합하여 행하여도 좋다.
또한, 본 발명의 보간처리에서는, 처음에 점군이 부여된 상태에서 개시하는 경우에는, 제 1 회째에 행하는 각 보간 공정에서는, 부여된 점군의 보간점을 초기 제어점으로서 곡선·곡면을 생성하고, 각 기하 알고리즘의 연산을 행함으로써 제어점을 생성한다. 다음에, 제 2 회째 이후에 행하는 보간 공정에서는, 보간 공정에서 얻은 제어점의 위치를 새로운 제어점의 위치로서, 각 기하 알고리즘의 연산을 행함으로써 제어점을 수정하여, 이것을 반복한다.
본 발명에 의한 보간처리는, 국소적으로 각 제어점을 취급하게 되기 때문에, 선형 시스템 자체를 필요로 하지 않는 데다가, 기하학적인 프로세스만으로 점군에 피팅하는 곡선·곡면을 생성할 수 있다. 그 때문에, 본 발명의 보간처리에 의하면, 종래의 수법으로 비교 곡선·곡면을 정의하는 제어점의 수를, 곡선에서는 2분의 1, 곡면에서는 3분의 1로 감소시킬 수 있다.
또한, 본 발명에 의한 보간처리에서는, 보간점에 설정하는 단위방향 벡터는 벡터 정보로서 방향만을 포함하고, 크기에 대해서는 불필요하다. 종래의 접선 벡터를 이용한 처리에서는, 곡선 또는 곡면상의 각 점에 있어서 접선 벡터의 크기의 변경을, 곡선 또는 곡면의 형상을 눈으로 관찰하면서 순서대로 행하여 피팅을 행할 필요가 있어, 많은 노력과 시간을 갖고 있었지만, 본 발명에 의하면, 프로세스의 개시부터 종료까지의 사이에 사람의 개입 없이 곡선·곡면의 피팅을 행할 수 있다. 한편, 여기서 피팅은 보간과 근사의 양쪽 모두를 포함하는 것으로 한다.
이상 설명한 바와 같이, 본 발명에 의하면, 점군의 위치 정보와 법선 정보를 이용한 보간처리에 있어서, 제어점의 증가를 억제하여, 처리 데이터의 데이터 양을 저감할 수 있다.
또한, 점군의 위치 정보와 법선 정보를 이용한 보간처리에 있어서, 접선 벡터의 크기의 지정을 불필요로 하고, 자동적인 보간을 용이하게 할 수 있다.
또한, 제어점의 증가에 수반하여 생기고 있던, 보간시의 불필요한 진동을 억제할 수 있다.
도 1은 본 발명의 보간처리의 개략을 설명하기 위한 개략도이다.
도 2는 본 발명의 보간처리의 개략을 설명하기 위한 플로우차트이다.
도 3은 본 발명의 보간처리의 제 1, 제 2 보간 공정을 설명하기 위한 도면이다.
도 4는 본 발명의 보간처리의 제 3 보간 공정을 설명하기 위한 도면이다.
도 5는 본 발명의 보간처리장치의 개략 구성도이다.
도 6은 본 발명의 2차원의 점군으로부터 곡선을 생성하는 경우를 설명하기 위한 플로우 차트이다.
도 7은 본 발명의 2차원의 점군으로부터 곡선을 생성하는 경우를 설명하기 위한 제어점과 곡선과의 개략도이다.
도 8은 본 발명의 2차원의 점군으로부터 곡선을 생성하는 경우를 설명하기 위한 제어점과 곡선과의 개략도이다.
도 9는 본 발명의 2차원의 점군으로부터 곡선을 생성하는 경우를 설명하기 위한 제어점과 곡선과의 개략도이다.
도 10은 본 발명의 2차원의 점군을 보간하는 곡선예를 도시하는 도면이다.
도 11은 본 발명에 의한 보간 결과와 종래법에 의한 보간 결과를 비교하는 도면이다.
도 12는 본 발명에 의한 보간 결과와 종래법에 의한 보간 결과를 비교하는 도면이다.
도 13은 3차원의 점군으로부터 곡면을 생성하는 경우를 설명하기 위한 플로우 차트이다.
이하, 본 발명의 실시형태에 대해서, 도면을 참조하면서 상세하게 설명한다. 한편, 이하에서는, 제어점에 의해서 정의되는 곡선·곡면으로서, 주로 B-Spline 곡선·곡면에 대해 설명하지만, 본 발명은, B-Spline 곡선·곡면에 한정되는 것이 아니라, 제어점을 이용하여 표현되는 세분할 곡면 등의 곡선·곡면에 대해서도 마찬가지로 적용할 수 있다.
도 1은 본 발명의 보간처리를 설명하기 위한 개략도이고, 도 2는 본 발명의 보간처리를 설명하기 위한 플로우차트이고, 도 3, 도 4는, 본 발명의 보간처리를 설명하기 위한 도면이다. 또한, 도 5는 본 발명의 보간처리장치의 개략 구성도이다.
도 1, 도 2, 도 3, 도 4는, 위치 정보 및 단위방향 벡터의 벡터 정보를 포함한 점군 Q가 부여되고, 이 점군 Q로부터 B-Spline 곡선을 구하는 순서를 개략적으로 도시하고 있다. 한편, 이하에서는, 단위방향 벡터로서 법선 벡터의 예에 대해 설명한다. 단위방향 벡터가 법선 벡터 이외의 벡터인 경우에는, 법선 벡터에 대해서 소정에 각도 관계를 설정함으로써, 그 방향을 정할 수 있다.
또한, 여기에서는, 보간 대상이 되는 점군을 단순히 점군이라고 부르고, 입력으로 각 점군에 부여되는 법선 벡터를 단순히 법선 벡터라고 부른다.
한편, 여기서는 주로 곡선에 대해 설명하지만, 곡면에 있어서도 마찬가지로 취급할 수 있다.
이하, 도 1의 개략도와 도 2의 플로우차트를 이용하여, 부여된 점군 Q로부터 B-Spline 곡선·곡면을 생성하는 순서를 설명한다.
처음에, 부여된 점군 Q를 초기 제어점 Po로 한다. 점군 Q는, 각 점의 위치 정보와, 각 점에 설정된 방향 정보를 포함하고 있다. 방향 정보는, 점군을 보간하는 곡선 또는 곡면의 방향이나 곡률을 정하는 것이고, 단위방향 벡터로 표시할 수 있다. 단위방향 벡터는, 방향만의 정보를 갖고, 크기의 정보는 갖지 않는다. 단위방향 벡터는, 예를 들면, 그 점에 있어서의 법선 벡터로 하는 것 외에, 이 법선 벡터에 대해서 소정의 각도 관계를 가진 벡터로 해도 좋다. 이하에서는, 단위방향 벡터로서 법선 벡터의 예에 대해 설명한다. 도 1중에서 (S1)로 도시하는 개소의 좌측은, 점군 Q와 그 점에 있어서의 법선 벡터 N*(도면 중 N의 위에 화살표로서 표기)을 도시하고, 우측은, 이 점군 Q를 초기 제어점으로 하여, 이들 초기 제어점을 직선으로 연결했을 때의 형상을 도시하고 있다(S1).
제 1 회째의 B-Spline 곡선·곡면의 생성에서는, 제어점이 설정되어 있지 않기 때문에, 부여된 점군을 초기 제어점으로 하여, 이 초기 제어점을 기초로 B-Spline 곡선 C0를 생성한다. 도 1중에 있어서, (S2)를 부착한 화살표는, 초기 제어점을 연결하여 형성된 형상으로부터 B-Spline 곡선·곡면을 생성하는 상태를 도시하고 있다(S2).
다음에, 보간처리에 의해서 제어점을 이동하여, 보간점을 보다 충실히 보간하는 B-Spline 곡선·곡면을 형성한다.
이 보간처리에서는, B-Spline 곡선·곡면상의 점과 보간점과의 관계로부터 이동 벡터를 구하여, 구한 이동 벡터를 이용하여 제어점의 위치를 이동함으로써 행한다. 보다 상세하게는, 후술하는 바와 같이 3개의 보간 공정(S3a)∼(S3c)에 의해서 행한다. 도 1중에 있어서, (S3)를 부착한 화살표는, 보간 공정에 의해서 새로운 제어점을 구한 상태를 도시하고 있다(S3).
S3의 보간처리에 의해서 제어점의 위치를 이동한 후, 이동한 제어점에 기초하여 B-Spline 곡선 C0을 생성한다. 도 1중에 있어서, (S4)를 부착한 화살표는, 이동 후의 제어점을 이용하여 B-Spline 곡선·곡면을 생성하는 상태를 도시하고 있다.(S4).
생성한 B-Spline 곡선·곡면과 점군 Q를 비교하여, B-Spline 곡선·곡면이 점군 Q를 양호하게 보간할 때까지 S3의 보간처리를 반복한다. 이 S3의 보간처리의 반복은, 점군 Q의 각 점과, B-Spline 곡선·곡면상에서 상기 점군 Q와 대응하는 점과의 사이의 거리 오차나, 점군 Q의 각 점에 부여된 법선 벡터와, B-Spline 곡선·곡면상에서 상기 점군 Q의 대응하는 점에서의 법선의 각도차가 수속(收束)할 때까지 행한다. 이 수속은 거리 오차, 법선의 각도차가 역치를 만족할 때까지 S3의 공정을 반복함으로써 행한다.
상기한 B-Spline 곡선·곡면의 수속은, 점간의 거리 오차를 수속 조건과 법선간의 각도차를 수속 조건의 양 수속 조건을 이용하여 행하는 것 외에, 어느 한쪽의 수속 조건을 이용하여 행하여도 좋다(S5).
이하, 상기한 S3의 보간처리에 대해 설명한다. S3의 보간처리는 세 개의 보간 공정 S3a와 S3b와 S3c를 구비한다.
제 1 보간 공정 S3a에서는, 보간점으로부터 B-Spline 곡선·곡면상에 수선을 내렸을 때의 수선의 발을 구한다. 이 수선의 발은, B-Spline 곡선·곡면상에 있어서 보간점으로부터의 거리가 최단이 되는 최단 거리점으로서 정할 수 있다.
제 2 보간 공정 S3b에서는, 각 보간점에 부여된 법선 벡터와 B-Spline 곡선·곡면상의 접선 혹은 접평면이 수직으로 교차할 때, 그러한 접선 혹은 접평면을 갖는 곡선·곡면상의 접점을 구한다.
제 3 보간 공정 S3c에서는, 제 1 보간 공정 및 제 2 보간 공정에서 구한 B-Spline 곡선·곡면상의 점과 보간점과의 사이에 형성되는 벡터를 구하여, 구한 벡터를 이동 벡터로서 제어점의 위치를 이동시켜 새로운 제어점을 설정한다.
이하, S3의 보간처리에 대해서, 도 3, 4를 이용하여 설명한다.
도 3(a)은 제 1 보간 공정 S3a의 공정을 설명하기 위한 도면이고, 도 3(b)은 제 2 보간 공정 S3b의 공정을 설명하기 위한 도면이고, 도 4는 제 3 보간 공정 S3c의 공정을 설명하기 위한 도면이다.
또한, 도 3, 4에서는, 시프트전의 제어점을 Pa, 시프트 후의 제어점을 Pb로 도시하고, 곡선 Cn상에서 구한 근방점을 Fn으로 도시하고 있다. 또한, 법선 벡터를 N*(도면 중 N의 위에 화살표로 표기)으로 도시하고, 법선 벡터 N*와 수직으로 교차하는 접선을 갖는 곡선 Cn상의 점을 Gn으로 도시한다. 또한, 이하에서는, B-Spline 곡선을 이용하여 설명한다.
도 3(a)에 도시하는 제 1 보간 공정 S3a에 있어서, 제 1 회째의 보간 공정에서는, 제어점 Pa는 부여된 점군의 보간점 Q와 같은 위치의 점이며, 제 2 번째 이후의 보간 공정에서는, 전회의 보간 공정에 의해서 위치가 시프트된 제어점이다.
제 1 보간 공정 S3a에서는, 제어점에 의해 정의되는 B-Spline 곡선 Cn에 있어서, 보간점 Q의 위치 정보에 기초하여, 보간점 Q로부터 B-Spline 곡선 Cn 위에 내린 수선의 발을 제 1 점 Fn을 기하 알고리즘의 연산 처리에 의해서 구한다.
다음에, 도 3(b)에 도시하는 제 2 보간 공정 S3b에 있어서, 법선 벡터 N*은 각 점군 Q에 부여되어 있다.
제 2 보간 공정 S3b에서는, 법선 벡터 N*와 수직으로 교차하는 접선을 갖는 곡선상의 접점을 Fn의 근방에서 구하여, 제 2 점 Gn으로 한다. 곡면의 경우에는, 법선 벡터와 수직으로 교차하는 곡면의 접평면과의 접점을 제 2 점 Gn으로 하고, 기하 알고리즘의 연산에 의해서 구한다.
도 4는 제 3 보간 공정 S3c에서 행하는 제어점의 이동 형태의 3예를 도시하고 있다.
제 3 보간 공정 S3c에서는, 제 1 보간 공정에서 구한 제 1 Fnn과, 제 2 보간 공정에서 구한 제 2 점 Gn과, 보간점 Q와의 사이에 형성되는 벡터를 구하여, 구한 벡터를 이동 벡터로서 제어점의 위치를 이동시켜 새로운 제어점을 설정한다.
도 4(a)는, 제 2 점 Gn으로부터 보간점 Q를 향하는 벡터를 이동 벡터로서 제어점 P를 이동시키는 이동 형태를 도시하고, 도 4(b)는, 제 2 점 Gn으로부터 제 1 점 Fn을 향하는 벡터를 이동 벡터로서 제어점 P를 이동시키는 이동 형태를 도시하고, 도 4(c)는, 제 1 점 Fn으로부터 보간점 Q를 향하는 벡터를 이동 벡터로서 제어점 P를 이동시키는 이동 형태를 도시하고 있다.
제 3 보간 공정 S3c에서는, 이들 각 이동 형태의 이동 벡터중 어느 하나를 이용하여 제어점을 이동시킴으로써 새로운 제어점을 구한다. 이 제 3 보간 공정은 기하 알고리즘의 연산에 의해서 실행할 수 있고, 이 연산 처리는 기하 알고리즘을 넣은 연산수단에 의해 행할 수 있다.
다음에, 제어점 Pa의 위치를 시프트하여 새로운 위치에 제어점 Pb를 구하는 제 3 보간 공정에 있어서, 도 4(a)에 도시하는 이동 형태에서는, 제 2 보간 공정 S3b의 공정에서 구한 제 2 점 Gn으로부터 대응하는 보간점 Q로 향하는 벡터 A(도면 중의 파선으로 도시한다)를 구하여, 이 벡터 A를 이동 벡터로서 제어점 Pa를 이동하여, 새로운 제어점 Pb를 구한다.
도 4(b)에 도시하는 이동 형태에서는, 제 2 보간 공정 S3b의 공정에서 구한 제 2 점 Gn으로부터 제 1 보간처리 S3a의 공정에서 구한 제 1 점 Fn으로 향하는 벡터 B(도면 중의 파선으로 도시한다)를 구하여, 이 벡터 B를 이동 벡터로서 제어점 Pa를 이동하여, 새로운 제어점 Pb를 구한다.
도 4(c)에 도시하는 이동 형태에서는, 제 1 보간 공정 S3a의 공정에서 구한 제 1 점 Fn으로부터 대응하는 보간점 Q로 향하는 벡터 C(도면 중의 파선으로 도시한다)를 구하여, 이 벡터 C를 이동 벡터로서 제어점 Pa를 이동하여, 새로운 제어점 Pb를 구한다.
이들 3개의 이동 형태로부터 하나를 선택하여 제어점을 이동하여, 새로운 제어점의 위치를 정한다. 이 제어점 이동 위치의 선택은, 이하와 같이 하여 행할 수 있다.
도 4(a)에서 도시하는 바와 같이, 제 2 점 Gn으로부터 대응하는 보간점 Q로 향하는 벡터분만큼 이동시킨 위치에 시프트하는 보간처리를 반복했을 때에, 보간점 Q와의 곡선 Cn과의 거리 오차가 작아지면, 법선 벡터의 각도차가 제어점 Pa를 이동해도 작아지지 않는 경우가 있다.
이러한 상태가 된 경우에, 도 4(b)에서 도시하는 바와 같이, 제 2 점 Gn으로부터 제 1 점 Fn으로 향하는 벡터분만큼 제어점 Pa를 이동시킨 위치에 시프트함으로써, 각도차를 작게 할 수 있다.
또한, 반대로, 각도차가 충분히 작아져, 거리 오차가 제어점 P를 시프트시켜도 작아지지 않는 경우에는, 제어점 P를 제 1 점 Fn으로부터 보간점 Q로 향하는 벡터분만큼 이동시킨 위치에 시프트함으로써, 거리 오차를 작게 한다. 이들 각 이동 형태는, 상황에 맞추어 선택할 수 있다.
보간처리 S3은 이 제 1 보간 공정 S3a와 제 2 보간 공정 S3b와 제 3 보간 공정 S3c를 반복하여 행하여진다. 이 제 3 공정에서 얻어진 제어점 Pb를 이용함으로써 상기한 S4의 공정에 의해 B-Spline 곡선·곡면이 생성된다.
S5의 공정에서는, 생성한 B-Spline 곡선·곡면과 점군의 거리 및 법선 벡터를 비교하여, 대응하는 점간의 거리 오차, 대응하는 법선 벡터의 각도차가 수속할 때까지 S3의 보간 공정을 반복한다. 이 수속은, 거리 오차와 법선 벡터의 각도차가 각각 미리 설정해 둔 역치를 만족할 때까지, 또는 역치보다 작아질 때까지 반복한다.
보간처리에 의해서 거리 오차 및 법선 벡터의 각도차가 수속했을 때에 얻을 수 있는 B-Spline 곡선·곡면은, 보간점의 위치를 보간하는 동시에, 보간점에서의 법선 벡터가, 설정된 법선 벡터와 같아지는 곡선·곡면이 된다.
도 5는, 본 발명의 보간처리의 소프트웨어를 기억한 프로그램을 컴퓨터로 실행시키는 경우의 일구성예를 도시하고 있다.
입력수단(1)은, 점군 Q, 법선 벡터 N*의 데이터를 입력하여, 기억수단(2)중의 데이터 기억부(2a)에 기억한다. 기억수단(2)은, 데이터 기억부(2a) 외에, 미분 기하학 연산을 행하는 연산 툴의 프로그램을 기억하는 연산 툴 프로그램 기억부(2a), 보간처리의 미분 기하학 연산 외, B-spline 곡선·곡면 생성처리 등의 연산처리의 프로그램을 기억하는 연산처리 프로그램 기억부(2c), 도중 연산결과 등을 일시적으로 기억하는 1차 기억부(2d), 보간처리 등에 의해서 얻어진 곡면의 연산결과를 기억하는 연산결과 기억부(2e) 등을 구비한다.
연산수단(3)은, 데이터 기억부(2a)에 기억된 점군 Q의 데이터를 이용하여, 연산처리 프로그램 기억부(2c)에 기억되는 프로그램에 의한 연산 순서에 따르는 동시에, 이 프로그램으로 지정되는 연산 툴의 프로그램을 연산 툴 프로그램 기억부(2b)로부터 순서대로 읽어내어 연산 처리를 행한다.
연산결과 기억부(2e)에 기억된 연산결과는, 읽어내어 표시수단(4)에 표시하거나, 출력수단(5)에 출력할 수 있다. 출력수단(5)은, 연산결과를 기록매체에 기록하는 기록장치, 예를 들면 가공장치 등의, 연산결과를 이용하여 소정 동작을 실행하는 외부장치로 할 수 있다.
한편, 상기, 소프트웨어 처리를 행하는 구성은, 전용의 소프트웨어 처리 장치나, 통상의 퍼스널컴퓨터에 적용할 수 있다.
또한, 상기 구성에 있어서, 기억수단을 포함한 연산수단으로 실시되는 기능을 회로로 구성함으로써 하드웨어에 의해 실시할 수도 있다.
다음에, 본 발명의 보간처리의 상세함에 대하여, 2차원의 점군(위치, 법선 정보를 포함한다)으로부터 B-Spline 곡선을 생성하는 경우와, 3차원의 점군(위치, 법선 정보를 포함한다)으로부터 B-Spline 곡면을 생성하는 경우에 대해 설명한다.
이하, 처음에, 2차원의 점군(위치, 법선 정보를 포함한다)으로부터 B-Spline 곡선을 생성하는 경우를, 도 6의 플로우차트, 도 7 내지 9의 제어점과 곡선의 관계를 설명하는 개략도, 도 10 내지 12의 곡선 보간의 예의 도면을 이용하여 설명하고, 다음에, 3차원의 점군(위치, 법선 정보를 포함한다)으로부터 B-Spline 곡면을 생성하는 경우를, 도 13의 플로우 차트를 이용하여 설명한다.
처음에, 2차원의 점군(위치, 법선 정보를 포함한다)으로부터 B-Spline 곡선을 생성하는 경우에 대해 설명한다. 한편, 이하의 플로우 차트는 일례이며, 본 발명의 제 1 보간 공정 및 제 2 보간 공정 및 제 3 보간 공정을 행하는 공정 및 순서이면 다른 플로우로 구성해도 좋다.
2차원의 점군 데이터(위치, 법선 벡터)를 취득하여(S11), 점군의 위치를 Qi로서 기억하고, 법선 벡터를 N*로서 기억한다(S12). 도 7(a)은 S12의 상태를 도시하고 있다. 얻어진 보간점 Qi를 초기 제어점 Poi로서 기억한다(S13).
제어점 Pk-1i로부터 B-Spline 곡선 Ck-1을 생성한다. 여기서, 위 첨자 문자 K는 보간처리의 회수를 도시한다. 제 1 회째에서는, 제어점 P가 설정되어 있지 않기 때문에, 부여된 보간점 Qi를 초기 제어점 Poi로 하고, 이 초기 제어점 Poi를 이용하여 B-Spline 곡선·곡면을 생성한다. 도 7(b)은 초기 제어점 Poi를 이용하여 B-Spline 곡선·곡면을 생성한 상태를 도시하고 있다(S14).
이하, S15, S16에 도시하는 제 1 보간 공정과 S17, S18에 도시하는 제 2 보간 공정과 S21∼S23에 도시하는 제 3 보간 공정중에서 어느 하나의 공정을 반복함으로써 점군을 위치 및 법선 벡터에 대해서 보간하는 B-Spline 곡선 C를 생성한다.
제 1 보간 공정에 있어서, 보간점 Q로부터 곡선 C상에 수선을 내리고, 이 수선의 발을 구하여, 구한 제 1 점 Fki로 한다. 여기서, 수선을 내리는 곡선 C는, 첫회에서는 S13의 공정에서 얻은 제어점 Po로부터 생성되는 곡선 Co이고, 2회째 이후는 S21∼S23중의 어느 하나의 공정으로 시프트된 제어점 Pki에 의해서 생성되는 곡선 CK이다(S15).
보간점 Qi와 S14에서 구한 수선의 발인 제 1 점 Fki와의 거리//Qi-Fki//(=Δd)를 구한다. 수선 및 거리를 구하는 연산은, 미분 기하학 연산에 의해 구할 수 있다. 도 7(c)은, 첫회의 제 1 보간 공정의 S15, S16의 상태를 도시하고 있다(S16).
다음에, 제 2 보간 공정에 있어서, 각 보간점 Q에 부여된 법선 벡터 Ni*와 수선의 발인 제 1 점 Fki에 있어서의 곡선 C의 법선 벡터의 각도차 Δθ를 구하고(S17), 법선 벡터 Ni*와 수직으로 교차하는 접선과 접하는 곡선상의 접점을 제 2 Gki로서 구한다. 각도차 및 법선 벡터와 수직으로 교차하는 접선과 접하는 곡선상의 점은, 미분 기하학 연산에 의해 구할 수 있다. 도 7의 (d)는 첫회의 보간 공정의 S18의 상태를 도시하고 있다(S18).
다음에, 제 3 보간 공정에 있어서, S16에서 구한 거리 Δd와 S18에서 구한 각도차 Δθ로부터 S22∼S24의 세 개의 보정 공정중에서 하나를 선택하여 실행한다.
보간점과 곡선의 거리 오차 Δd, 및 법선 벡터의 각도차 Δθ는 모두 역치를 만족하지 않는 경우에는(S19, S21), S18에서 구한 곡선상의 제 2 점 Gki로부터 보간점 Qi로 향하는 벡터 A의 방향 및 크기의 분만큼, 현재의 곡선을 정의하고 있는 제어점 Pk-1i의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다. 도 8(a)은 이 보정 공정에 의한 이동 상태를 도시하고 있다(S22).
보간점과 곡선의 거리 오차 Δd는 역치를 만족하지만(S19), 법선 벡터의 각도차 Δθ가 역치를 만족하지 않는 경우에는(S20), S18에서 구한 곡선상의 제 2 점 Gki로부터 S15에서 구한 수선의 발인 제 1 점 Fki로 향하는 벡터 B의 방향 및 크기의 분만큼, 현재의 곡선을 정의하고 있는 제어점 Pk-1의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다. 도 8(b)은 이 보정 공정에 의한 이동 상태를 도시하고 있다(S24).
보간점과 곡선의 거리 오차 Δd는 역치를 만족하지 않지만(S19), 법선 벡터의 각도차 Δθ는 역치를 만족하는 경우에는(S21), S15에서 구한 수선의 발인 제 1 점 Fki로부터 보간점 Qi로 향하는 벡터 C의 방향 및 크기의 분만큼, 현재의 곡선을 정의하고 있는 제어점 Pk-1i의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다. 도 8(c)은 이 보정 공정에 의한 이동 상태를 도시하고 있다 (S23).
제어점을 시프트 하는 연산은, 기하학적 연산에 의해서 구할 수 있다. 도 8(a)은 첫회의 보간처리에 있어서의 S21의 상태를 도시하고 있다. 도 8(b)은 첫회의 보간처리에 있어서의 S22의 상태를 도시하고, 도 8(c)은 첫회의 보간처리에 있어서의 S23의 상태를 도시하고 있다.
또한, 도 9(a), (c)는 2회째 이후의 보간처리의 S14에 의해서 B-Spline 곡선 C(1), C(2)를 생성한 상태를 도시하고 있다. 또한, 도 9(b)는 2회째 이후의 보간처리의 S21에 의해서 제어점 P(1)을 제어점 P(2)로 이동시킨 상태를 도시하고 있다.
S14에서 구한 곡선 C가 보간점 Qi와의 거리 오차 Δd, 법선 벡터 Ni*와 수선의 발인 제 1 점 Fki에 있어서의 곡선 C의 법선 벡터의 각도차 Δθ가 각각의 역치를 만족할 때까지 S14∼S23까지의 공정을 반복한다. 거리 오차 Δd, 각도차 Δθ의 역치는, 각각 점군을 보간하는 곡선에 대해서 허용할 수 있는 허용 거리 오차, 및 법선의 각도차에 대해서 허용할 수 있는 허용 법선 벡터 각도차에 상당한다.
따라서, S19, S20, S21의 비교 공정에 있어서 거리, 법선 벡터의 각도차가 역치를 만족하는 것을 확인함으로써, 곡선 C는 점군을 부여한 위치 및 법선 벡터에 대해 허용 오차 범위내에서 보간하는 것으로 한다.
도 10은, 2차원(평면)의 곡선 보간의 일례이며, Bowditch 곡선과 Trochoid 곡선으로부터 점군과 그 점에 있어서의 법선 벡터를 추출하여, 점군의 위치 및 법선 벡터에 대해 보간한 것이다. 도 10(a), (c)에는, 보간 대상이 되는 점군의 각 점과 선분으로 나타낸 법선 벡터를 도시하고 있다. 도 10(b)(d)에는, 본 발명에 의해 각각 점군을 위치 및 법선 벡터에 대해서 3차의 B-Spline 곡선으로 보간한 결과를 도시하고 있다.
본 발명의 수법에 있어서의 계산 결과를 표 1에, 점의 위치에만 대해서 종래의 수법(비특허문헌 1)으로 보간한 결과를 표 2에 도시한다. 여기서, 거리 오차에 대해서는 각 모델에 있어서의 bounding box의 대각선을 기준으로 하여 %로 도시한다. 거리 오차에 대해서 결과를 보면 거의 제로가 되어 있는 것을 알 수 있다. 각도차에 대해서 보면 본 발명의 수법을 이용한 경우에서는, 최대 각도차가 Bowditch 곡선으로, 0.024° 정도, Trochoid 곡선은 0.005° 정도가 되어 있던 것에 비해, 종래법의 경우, Bowditch 곡선에서는 2.0° 정도, Trochoid 곡선에서는 0.14° 정도였다. 본 발명에 의한 것이 최대 각도차를 작게 억제하고 있는 것을 알 수 있다. 한편, 표 2에 있어서 *표는 계산 시간이 0.01초 미만인 것을 나타내고 있다.
Model Max
Error
(%)
Ave
Error
(%)
Max
Angle
(°)
Ave
Angle
(°)
Time
(sec)
Bowditch 8.6E-12 1.2E-13 2.4E-02 2.3E-3 1.72
Trochoid 4.8E-14 3.5E-15 5.0E-03 5.0E-04 1.78
Model Max
Error
(%)
Ave
Error
(%)
Max
Angle
(°)
Ave
Angle
(°)
Time
(sec)
Bowditch 5.4E-12 2.5E-14 2.05 2.8E-2 *
Trochoid 1.1E-14 2.4E-15 0.14 1.9E-2 *
다음에, Trochoid 곡선에 대해서, 도 11(a)에 본 발명에 의한 보간을 행한 곡선의 곡률 선도를, 도 11(b)에 종래의 수법(비특허문헌 1)으로 보간을 행한 것을, 도 11(c)에 종래의 수법(엘 미트 보간)으로 보간을 행한 것을 도시하고 있다.
종래의 수법(비특허문헌 1)은 보간점에 대해 제어점을 곡선에서 약 2배, 곡면에서 약 3배로 할 필요가 있고, 제어점이 많아지기 때문에 곡선이 불필요한 진동을 일으키고 있다{도 11(b)}. 그 점, 본 발명에 의한 보간에서는, 제어점은 보간점과 거의 동수이기 때문에 그러한 불필요한 진동을 억제할 수 있다{도 11 (a)}.
또한, 종래법에서는, 각 점에서의 접선 벡터의 크기를 입력할 필요가 있었지만, 본 발명에서는 그러한 필요는 없고, 사람의 개입 없이 보간처리의 모두를 행할 수 있고, 처리의 자동화를 할 수 있다.
도 12(a)에, 도 11(a)에 도시한 본 발명에 의한 보간을 행한 곡선의 곡률 선도의 일부를 확대한 것을 도시하고, 도 12(b)에, 도 11(c)에서 도시한 종래의 수법(엘 미트 보간)으로 보간을 행한 곡선의 곡률 선도의 일부를 확대한 것을 도시한다.
본 발명에 의한 보간은 3차의 B-Spline 곡선을 이용하고 있고, 3차의 B-Spline 곡선은 C2연속까지 보장되기 때문에 곡률이 연속으로 되어 있다{도 12(a)}(여기서, C2는 곡률 연속성을 도시하고, 상기 곡선을 도시하는 C와 구별한다). 종래의 수법(엘 미트 보간)은 곡률의 연속을 보증하고 있지 않기 때문에, 도면 중의 동그라미로 둘러싼 개소에서 도시하는 바와 같이, 곡선의 곳곳에서 곡률이 불연속이 되어 있다{도 12(b)}.
상기한 바와 같이 본 발명에 의한 보간은 종래 방법에 비해 곡률이 연속으로 매끄러운 곡선을 생성할 수 있다.
다음에, 3차원의 점군(위치, 법선 정보를 포함한다)보다 B-Spline 곡면을 생성하는 경우에 대해서, 도 13의 플로우차트를 이용하여 설명한다. 한편, 이하의 도 13에 도시하는 플로우차트는 일례이며, 본 발명의 제 1 보간처리 및 제 2 보간처리 및 제 3 보간처리를 행하는 공정 및 순서이면 다른 플로우로 구성해도 좋다.
점군으로부터 위치를 Q, 법선 벡터를 N*로서 기억한다(S31, S32). 얻어진 보간점 Qi를 초기 제어점 Poi로서 기억한다(S33). 제어점 Pk-1i로부터 B-Spline 곡면 Sk-1을 생성한다. 여기서, 위 첨자 문자 K는 보간처리의 회수를 나타내고 있다.
이하, S35, S36에 나타내는 제 1 보간처리와 S37, S38에 나타내는 제 2 보간처리와 S42∼S44에 나타내는 제 3 보간처리중에서 어느 하나의 공정을 반복함으로써 점군을 위치 및 법선 벡터에 대해 보간하는 B-Spline 곡면 S를 생성한다.
제 1 보간처리에 있어서, 보간점으로부터 곡면 S상에 수선을 내려 수선의 발이 되는 제 1 점 Fki를 구한다. 한편, 곡면 S는, 첫회의 보간처리에서는 S33의 공정에서 얻은 제어점 Po로부터 생성되는 곡면 So이고, 2회째 이후의 보간처리에서는 S41∼S43중 어느 하나의 공정으로 시프트된 제어점 Pki로부터 생성되는 곡면 Sk이다 (S35). 보간점 Qi와 수선의 발인 제 1 점 Fki와의 거리//Qi-Fki//(=Δd)를 구한다 (S36). 수선 및 거리를 구하는 연산은, 미분 기하학 연산에 의해 구할 수 있다.
다음에, 제 2 보간처리에 있어서, 각 보간점에 부여된 법선 벡터 Ni*와 수선의 발인 제 1 점 Fki에 있어서의 곡면 S의 법선 벡터의 각도차 Δθ를 구한다(S37). 법선 벡터 Ni*와 수직으로 교차하는 접평면과 접하는 곡면상의 접점 Gki를 제 2 점으로서 구한다(S38). 각도차 Δθ, 및 법선 벡터와 수직으로 교차하는 접평면과 접하는 곡면상의 점은, 미분 기하학 연산에 의해 구할 수 있다.
다음에, 제 3 보간처리에 있어서, S36에서 구한 거리 오차 Δd와 S38에서 구한 각도차 Δθ로부터 S41∼S43의 세 개의 공정중에서 하나를 선택하여 실행한다. 보간점 Q와 곡선과의 거리 오차 Δd, 법선 벡터 각도차 Δθ가 모두 역치를 만족하지 않는 경우에는(S39, S41), S18에서 구한 곡면상의 점 Gki로부터 보간점 Qi로 향하는 벡터분만큼 현재의 곡면을 정의하고 있는 제어점 Pk-1i의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다(S42).
보간점 Q와 곡면의 거리 오차 Δd는 역치를 만족하지만(S39), 법선 벡터의 각도차 Δθ는 역치를 만족하지 않는 경우에는(S40), S38에서 구한 곡면상의 점 Gki로부터 S35에서 구한 수선의 발인 제 1 점 Fki로 향하는 벡터분만큼, 현재의 곡면을 정의하고 있는 제어점 Pk-1i의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다(S44).
보간점 Q와 곡면의 거리 오차 Δd는 역치를 만족하지 않지만(S39), 법선 벡터의 각도차는 역치를 만족하는 경우(S41), S35에서 구한 수선의 발인 점 Fki로부터 보간점 Qi로 향하는 벡터분만큼, 현재의 곡면을 정의하고 있는 제어점 Pk-1i의 위치를 시프트하고, 시프트한 위치를 새로운 제어점 Pki의 위치로 한다(S43). 제어점을 시프트하는 연산은, 기하학적 연산에 의해서 구할 수 있다.
S34에서 구한 곡면 S가 보간점 Qi와의 거리 오차 Δd, 법선 벡터 Ni*와 수선의 발인 제 1 점 Fki에 있어서의 곡면 S의 법선 벡터의 각도차 Δθ가 각각의 역치를 만족할 때까지 S34∼S44까지의 공정을 반복한다. 거리 오차, 각도차의 역치는, 각각 점군을 보간하는 곡면에 대한 거리 오차에 대해서 허용할 수 있는 허용 거리 오차, 법선의 각도차에 대해서 허용할 수 있는 허용 법선 벡터 각도차에 상당한다.
따라서, S39, S40, S41의 비교 공정에 있어서 거리 오차, 법선 벡터의 각도차가 역치를 만족하는 것을 확인함으로써, 곡면 S는 점군을 부여한 위치 및 법선 벡터에 대해 허용 오차 범위내에서 보간하는 것으로 한다.
본 발명의 한 적용예로서 오프셋 곡선·곡면에의 적용이 있다. 본 발명을 이용하는 것에 의해, 오프셋 곡선·곡면을 B-Spline 곡선·곡면에서 표현하는 경우의 정밀도 향상을 도모할 수 있다.
오프셋 곡선·곡면이란, 어느 곡선·곡면을 법선 방향에 일정한 거리 시프트한 곡선·곡면이다. 일반적으로 시판되고 있는 CAD/CAM 소프트웨어에는 반드시 풀다운 메뉴로서 오프셋 기능이 장비되어 있고, 현실에 NC 절삭가공 등에서 입력한 CAD/CAM 데이터로부터 공구 반지름을 고려한 공구 중심의 궤적 즉 툴 패스를 구할 때, CAD/CAM 데이터상의 곡선·곡면의 오프셋 곡선·곡면이 이용된다. 여기서, 일반적으로 오프셋 곡선·곡면은 다항식에서 표현할 수 없기 때문에, 구분 다항식에서 표현되는 B-Spline 곡선·곡면에서는 직접 표현할 수 없다. 이 경우, 오프셋 곡선·곡면을 일정한 점군으로서 샘플링을 행하여, 얻어진 점군을 B-Spline 곡선·곡면에서 보간한다고 하는 작업이 필요하다. 이 때, 오프셋 곡선·곡면은 그 성질상 용이하게 샘플링한 점에서의 법선을 꺼낼 수 있으므로, 위치뿐만이 아니라 법선 벡터에 대해서도 B-Spline 곡선·곡면에서 보간함으로써, 보다 오프셋 곡선·곡면에 가까운 B-Spline 곡선·곡면을 얻는 것이나, 필요한 샘플링점을 감소시킬 수 있다. 이 법선을 포함한 B-Spline 곡선·곡면의 보간을 행할 때, 본 발명을 이용함으로써 불필요한 진동이 적은 고품질의 곡선을 얻을 수 있어, CAD/CAM 소프트상의 오프셋 기능의 정밀도의 향상이 도모된다. 또한, 접선 벡터의 크기를 필요로 하지 않기 때문에, 사람의 개입 없이 자동으로 보간처리를 행할 수 있다.
별도의 적용예로서 CAD/CAM상에서 모델링을 행할 때, 위치외 그 위치에 있어서의 법선을 지정하는 기능의 탑재에 도입하는 것을 들 수 있다. 현재 CAD/CAM 모델을 작성하는 프로세스로에서는, 위치 지정만을 행하는 것이 일반적이다. 따라서, 위치 정보만을 조작하여 디자인이나 사양의 변경을 행할 필요가 있다. 여기서, 위치뿐만 아니라 법선에 대해서 곡선·곡면을 보간할 수 있으면, 법선 정보를 지정하는 기능을 부가할 수 있고, 조작 가능한 파라미터를 증가시킬 수 있기 때문에, 설계의 자유도를 높일 수 있다.
본 발명을 이용함으로써, 사람의 개입 없이 자동으로 보간처리를 행할 수 있고, 또한, 곡선·곡면을 곡률 연속으로 불필요한 진동이 적은 고품질인 것으로 할 수 있다.
[산업상이용의가능성]
본 발명은, CAD·CAM 모델링의 분야, NC가공 등에 적용할 수 있다.
1 : 입력수단
2 : 기억수단
2a : 데이터 기억부
2b : 연산 툴 프로그램 기억부
2c : 연산 처리 프로그램 기억부
2d : 1차 기억부
2e : 연산결과 기억부
3 : 연산수단
4 : 표시수단
5 : 출력수단

Claims (12)

  1. 제어점을 이용하여 표시되는 곡선 또는 곡면에 의해서 점군을 보간하는 보간처리방법에 있어서,
    상기 점군은, 보간점의 위치 정보와, 상기 보간점에 있어서의 곡선 또는 곡면의 방향 및 곡률을 정하는 단위방향 벡터의 벡터 정보를 갖고,
    상기 보간처리는, 제어점에 의해 정의되는 상기 곡선 혹은 상기 곡면에서,
    상기 보간점의 위치 정보에 기초하여, 보간점으로부터 상기 곡선상 또는 상기 곡면상에 내린 수선의 발을 제 1 점으로 하여 구하는 기하 알고리즘의 연산을 행하는 제 1 보간 공정과,
    상기 벡터 정보에 기초하여, 단위방향 벡터와 수직으로 교차하는 상기 곡선의 접선 또는 상기 곡면의 접평면과의 접점을 제 2 점으로 하여 구하는 기하 알고리즘의 연산을 행하는 제 2 보간 공정과,
    상기 제 1 점으로부터 상기 보간점을 향하는 벡터, 상기 제 2 점으로부터 상기 보간점을 향하는 벡터, 상기 제 2 점으로부터 상기 제 1 점으로 향하는 벡터를 이동 벡터로서 구하여, 상기 곡선 또는 상기 곡면을 정의하는 제어점의 위치를 상기 이동 벡터로부터 선택한 어느 하나의 이동 벡터를 이용하여 이동하고, 이동 후의 위치를 새로운 곡선 또는 곡면의 제어점의 위치로 하여 정하는 기하 알고리즘의 연산을 행하는 제 3 보간 공정을 포함하고,
    상기 각 보간 공정을 행하는 연산 처리를, 상기 기하 알고리즘을 넣은 연산수단에 의해 행하는 것을 특징으로 하는, 보간처리방법.
  2. 제 1 항에 있어서, 상기 단위방향 벡터는, 상기 보간점을 보간하는 곡선 또는 곡면상에 있어서 상기 보간점에서의 법선 벡터인 것을 특징으로 하는, 보간처리방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 연산 처리에서 얻은 제어점에 기초하여 새로운 곡선 또는 곡면을 구하여, 보간점과 구한 곡선 또는 곡면과의 거리와 역치를 비교하여, 상기 거리가 역치를 만족하거나, 또는 역치보다 작아질 때까지, 상기 제 1 보간 공정과 제 2 보간 공정과 제 3 보간 공정을 반복하는 것을 특징으로 하는, 보간처리방법.
  4. 제 1 항 또는 제 2 항에 있어서, 상기 연산 처리에서 얻은 제어점에 기초하여 새로운 곡선 또는 곡면을 구하여, 각 보간점에 설정된 단위방향 벡터와, 상기 제 1 보간 공정에서 구한 수선의 발이 되는 제 1 점에 있어서의 곡선 또는 곡면의 법선 벡터와의 각도차와 역치를 비교하여, 상기 각도차가 역치를 만족하거나, 또는 역치보다 작아질 때까지, 상기 제 1 보간 공정과 제 2 보간 공정과 제 3 보간 공정을 반복하는 것을 특징으로 하는, 보간처리방법.
  5. 제 1 항 내지 제 4 항 중의 어느 한 항에 있어서, 제 1 회째에 행하는 제 1 보간 공정, 제 2 보간 공정 및 제 3 보간 공정에서,
    상기 점군의 보간점을 초기 제어점으로 하여, 상기 각 기하 알고리즘의 연산을 행하고,
    제 2 회째 이후에 행하는 제 1 보간 공정, 제 2 보간 공정 및 제 3 보간 공정에서,
    보간 공정에서 얻은 제어점의 위치를 새로운 제어점의 위치로 하여, 상기 기하 알고리즘의 연산을 행하는 것을 특징으로 하는, 보간처리방법.
  6. 제 1 항 내지 제 5 항 중의 어느 한 항에 있어서, 상기 곡선은 B-Spline 곡선이며, 상기 곡면은 B-Spline 곡면 혹은 세분할 곡면인 것을 특징으로 하는, 보간처리방법.
  7. 제어점을 이용하여 표시되는 곡선 또는 곡면에 의해서 점군을 보간하는 보간처리장치에 있어서,
    상기 점군은, 보간점의 위치 정보와, 상기 보간점에 있어서 곡선 또는 곡면의 방향 및 곡률을 정하는 단위방향 벡터의 벡터 정보를 갖고,
    제어점에 의해 정의되는 상기 곡선 혹은 상기 곡면에서,
    상기 보간점의 위치 정보에 기초하여, 보간점으로부터 곡선상 또는 곡면상에 내린 수선의 발을 제 1 점으로 하여 구하는 기하 알고리즘에 의해서 제 1 보간 공정을 행하는 제 1 기하 연산수단과,
    상기 벡터 정보에 기초하여, 단위방향 벡터와 수직으로 교차하는 상기 곡선의 접선 또는 상기 곡면의 접평면과의 접점을 제 2 점으로 하여 구하는 기하 알고리즘에 의해서 제 2 보간 공정을 행하는 제 2 기하 연산수단과,
    상기 제 1 점으로부터 상기 보간점을 향하는 벡터, 상기 제 2 점으로부터 상기 보간점을 향하는 벡터, 상기 제 2 점으로부터 상기 제 1 점으로 향하는 벡터를 이동 벡터로서 구하여, 곡선 또는 곡면을 정의하는 제어점의 위치를 상기 어느 하나의 이동 벡터를 이용하여 이동하고, 이동 후의 위치를 새로운 곡선 또는 곡면의 제어점의 위치로 하여 정하는 기하 알고리즘에 의해서 제 3 보간 공정을 행하는 제 3 기하 연산수단을 구비하고,
    상기 제 1 기하 연산수단, 제 2 기하 연산수단 및 제 3 기하 연산수단은, 각 기하 알고리즘을 소프트웨어로 실행하기 위한 CPU 및 기억장치, 또는 각 기하 알고리즘을 하드웨어로 실행하기 위한 회로를 구비하는 것을 특징으로 하는, 보간처리장치.
  8. 제 7 항에 있어서, 상기 단위방향 벡터는, 상기 보간점을 보간하는 곡선 또는 곡면상에 있어서 상기 보간점에서의 법선 벡터인 것을 특징으로 하는, 보간처리장치.
  9. 제 7 항 또는 제 8 항에 있어서, 상기 연산 처리에서 얻은 제어점에 기초하여 곡선 또는 곡면을 구하여, 보간점과 상기 구한 곡선 또는 곡면과의 거리와 역치를 비교하는 비교수단과,
    상기 비교 결과에 기초하여, 상기 거리가 역치를 만족하거나, 또는 역치보다 작아질 때까지, 상기 제 1 기하 연산수단과 제 2 기하 연산수단과 제 3 기하 연산수단을 반복하여 행하게 하는 프로그램 또는 회로 구성을 가진 제어수단을 구비하는 것을 특징으로 하는, 보간처리장치.
  10. 제 7 항 또는 제 8 항에 있어서, 상기 연산 처리에서 얻은 제어점에 기초하여 곡선 또는 곡면을 구하여, 각 보간점에게 부여한 법선 벡터와, 상기 구한 수선의 발이 되는 점에 있어서의 곡선 또는 곡면의 법선 벡터와의 각도차와 역치를 비교하는 비교수단과,
    상기 각도차가 역치를 만족하거나, 또는 역치보다 작아질 때까지, 상기 제 1 기하 연산수단과 제 2 기하 연산수단과 제 3 기하 연산수단을 반복하여 행하게 하는 프로그램 또는 회로 구성을 가진 제어수단을 구비하는 것을 특징으로 하는, 보간처리장치.
  11. 제 7 항 내지 제 10 항 중의 어느 한 항에 있어서, 상기 제 1 기하 연산수단, 제 2 기하 연산수단 및 제 3 기하 연산수단은,
    제 1 회째에 행하는 연산에서, 상기 점군을 초기 제어점으로 하여, 상기 기하 알고리즘의 연산을 행하고,
    제 2 회째 이후에 행하는 연산에서, 상기 제 1 회째의 연산에서 얻은 제어점 위치를 새로운 제어점 위치로 하고, 상기 기하 알고리즘의 연산을 행하는 것을 특징으로 하는, 보간처리장치.
  12. 제 7 항 내지 제 11 항 중의 어느 한 항에 있어서, 상기 곡선은 B-Spline 곡선이고, 상기 곡면은 B-Spline 곡면 혹은 세분할 곡면인 것을 특징으로 하는, 보간처리장치.
KR1020107004217A 2007-10-30 2008-10-24 보간처리방법, 및 보간처리장치 KR101443949B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2007-282122 2007-10-30
JP2007282122 2007-10-30
PCT/JP2008/069306 WO2009057517A1 (ja) 2007-10-30 2008-10-24 補間処理方法、および補間処理装置

Publications (2)

Publication Number Publication Date
KR20100074113A true KR20100074113A (ko) 2010-07-01
KR101443949B1 KR101443949B1 (ko) 2014-09-23

Family

ID=40590908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107004217A KR101443949B1 (ko) 2007-10-30 2008-10-24 보간처리방법, 및 보간처리장치

Country Status (6)

Country Link
US (1) US8350853B2 (ko)
EP (1) EP2216753A4 (ko)
JP (1) JP5218993B2 (ko)
KR (1) KR101443949B1 (ko)
CN (1) CN101796546B (ko)
WO (1) WO2009057517A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292941B2 (en) * 2009-09-04 2016-03-22 Adobe Systems Incorporated Methods and apparatus for specifying and interpolating hierarchical procedural models
CN103176428B (zh) * 2013-04-16 2015-01-21 易兴 基于球坐标的cnc系统插补算法及实现该算法的装置
US9405994B2 (en) 2013-05-08 2016-08-02 The University Of British Columbia Methods and systems for characterizing concept drawings and estimating three-dimensional information therefrom
US9965893B2 (en) * 2013-06-25 2018-05-08 Google Llc. Curvature-driven normal interpolation for shading applications
CN103605854B (zh) * 2013-11-26 2016-12-07 上海宏盾防伪材料有限公司 一种有关激光刻蚀的矢量全息几何曲线的制作方法
CN103646422B (zh) * 2013-12-19 2016-03-09 哈尔滨工程大学 基于遗传多层b样条插值算法的三维显示方法
US10282858B2 (en) 2014-04-18 2019-05-07 The University Of British Columbia Methods and systems for estimating three-dimensional information from two-dimensional concept drawings
CN106530838B (zh) * 2016-10-25 2019-04-09 飞友科技有限公司 一种航空器飞行轨迹跳变去除的方法
US10460482B2 (en) * 2017-07-26 2019-10-29 Robert Bosch Gmbh Method and system for automated generation of constrained curves in computer graphics
CN107272758B (zh) * 2017-08-01 2020-08-07 深圳市雷赛控制技术有限公司 绕线设备效率及平稳性的提升方法及装置
JP7113654B2 (ja) * 2018-04-20 2022-08-05 Biprogy株式会社 曲面生成装置および曲面生成用プログラム
JP7446579B2 (ja) * 2019-09-02 2024-03-11 マツダ株式会社 曲面のフィッティング処理方法、フィッティング処理装置およびフィッティング処理プログラム、並びに、該フィッティング処理プログラムを記憶したコンピュータ読取可能な記憶媒体
CN110908337B (zh) * 2019-12-18 2021-04-13 湘潭大学 一种对nurbs反求控制点预估方法
CN111161409B (zh) * 2019-12-27 2023-10-13 中国航空工业集团公司沈阳飞机设计研究所 一种飞机保障设备验证系统
CN112330770B (zh) * 2020-10-21 2023-06-02 同济大学 一种工程曲线群自动生成系统
CN117351109B (zh) * 2023-09-05 2024-06-07 中交第二公路勘察设计研究院有限公司 一种盾构隧道的截面曲线重构方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3246617B2 (ja) * 1992-09-30 2002-01-15 ソニー株式会社 自由曲面加工データ作成方法
JP3054108B2 (ja) * 1997-08-15 2000-06-19 理化学研究所 自由曲面の測定データ合成方法
JPH11345344A (ja) * 1998-06-01 1999-12-14 Matsushita Electric Ind Co Ltd 3次曲線を与える方法及び装置
JP2004192209A (ja) 2002-12-10 2004-07-08 Kinichi Inagaki 物理プロセスをコンピュータにより制御して面加工用ncデータ作成方法
WO2007083602A1 (ja) * 2006-01-23 2007-07-26 National University Corporation Yokohama National University 補間処理方法、補間処理装置、形状評価方法、および形状評価装置

Also Published As

Publication number Publication date
WO2009057517A1 (ja) 2009-05-07
US8350853B2 (en) 2013-01-08
JP5218993B2 (ja) 2013-06-26
EP2216753A1 (en) 2010-08-11
CN101796546B (zh) 2012-12-12
JPWO2009057517A1 (ja) 2011-03-10
US20100220099A1 (en) 2010-09-02
EP2216753A4 (en) 2015-06-03
CN101796546A (zh) 2010-08-04
KR101443949B1 (ko) 2014-09-23

Similar Documents

Publication Publication Date Title
KR20100074113A (ko) 보간처리방법, 및 보간처리장치
JP4934789B2 (ja) 補間処理方法および補間処理装置
JP6257796B2 (ja) 工具経路の生成方法および工作機械
CN113228115A (zh) 网格几何体到水密边界表示的转换
CN105844711B (zh) 在细分曲面上雕刻2d图像
US20070229544A1 (en) Nurbs surface deformation apparatus and the method using 3d target curve
Bahr et al. A real-time scheme of cubic parametric curve interpolations for CNC systems
JP6242539B1 (ja) 数値制御装置
CN114341942A (zh) 曲面的拟合处理方法、拟合处理装置和拟合处理程序以及存储有该拟合处理程序的计算机可读存储介质
JP6495728B2 (ja) 形状変形装置および形状変形用プログラム
Kudabalage et al. Postprocessor for five-axis machining of STL surfaces based on Nagata interpolation and optimization of rotation angles
Kim et al. A symbolic approach to freeform parametric surface blends
JP2007156604A (ja) 曲面作成方法及び曲面作成プログラム並びに3次元形状処理装置
JP6896144B2 (ja) 工具経路生成方法
JP2737127B2 (ja) 物体の表面形状データ作成方法
Chuang et al. A novel approach for computing C 2-continuous offset of NURBS curves
Kaewsaiha et al. A combined linear and circular-arc approximation of curves for feedrate smoothing of CNC machining
JP2002366208A (ja) 工作機械の自由曲線補間方法及び数値制御装置
JP2001067391A (ja) 3次元形状処理方法およびこの方法を実施するためのプログラムを記録した記録媒体
Yang et al. A new high precision fitting approach for NURBS tool paths generation
Taosheng et al. A composite B-spline method for cutter path generation on free-form surfaces
JP3017322B2 (ja) 自由曲面の形状制御方式
Hamdan et al. Sculptured Surface Design and Implementation by Lofting Design Method Using Cross-sectional B-Spline Curves
Hwang et al. Modeling of a Functional Surface using a Modified B-spline
JP3148792B2 (ja) 自由曲面生成方法及びその装置

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
LAPS Lapse due to unpaid annual fee