모양 문법

계산에서 모양 문법은 기하학적 모양을 생성하는 생산 시스템의 특정 클래스입니다. 일반적으로 모양은 2 차원 또는 3 차원이므로 모양 문법은 2 차원 및 3 차원 언어를 연구하는 방법입니다. 형상 문법의 기초는 1971 년 George Stiny와 James Gips가 정한 기사에서 정의되었습니다.

정의
모양 문법은 모양 규칙과 규칙을 선택하고 처리하는 생성 엔진으로 구성됩니다. 모양 규칙은 기존 (a 부분) 모양을 어떻게 변형 할 수 있는지 정의합니다. 모양 규칙은 왼쪽에서 오른쪽을 가리키는 화살표로 구분 된 두 부분으로 구성됩니다. 화살표의 왼쪽 부분은 좌변 (Left-Hand Side, LHS)이라고합니다.모양과 마커의 조건을 묘사합니다. 화살표 오른쪽 부분을 오른손 쪽 (RHS)이라고합니다. LHS 모양이 어떻게 변형되어야하는지, 그리고 마커가 어디에 위치 하는지를 묘사합니다. 마커는 새 모양을 찾고 방향을 지정하는 데 도움이됩니다.

형상 문법은 최소한 시작 규칙, 최소 하나의 변환 규칙 및 종료 규칙의 세 가지 모양 규칙으로 구성됩니다. 시작 규칙은 모양 생성 프로세스를 시작하는 데 필요합니다. 종료 규칙은 모양 생성 프로세스를 중지하기 위해 필요합니다. 프로세스를 중지하는 가장 간단한 방법은 마커를 제거하는 모양 규칙을 사용하는 것입니다. 형태 문법은 Chomsky 문법과 크게 다르다. 생산 규칙은 Chomsky 문법과 같이 직렬로 (Chomsky 문법에서는 허용되지 않음) 적용될 수 있으며, L-Systems에서 “생산”방식과 유사하게 적용될 수있다.

형상 문법 시스템에는 생성 된 형상이 표시되는 작업 영역이 추가로 있습니다. 생성 엔진은 셰이프 규칙의 LHS와 일치하는 조건에 대해 현재 작업 모양 (CWS)이라고도하는 기존 형상을 검사합니다. 일치하는 LHS가있는 모양 규칙은 사용할 수 있습니다. 둘 이상의 규칙이 적용되는 경우 생성 엔진은 적용 할 규칙을 선택해야합니다. 대안의 시나리오에서, 엔진은 먼저 문법 규칙 중 하나를 선택하고 CWS에서이 규칙의 LHS의 모든 일치를 찾으려고합니다. 여러 개의 일치 항목이있는 경우 엔진은 (해당 구성 / 구현에 따라)

모양 문법은 형식적으로 4- 튜플로 정의됩니다.  ,

  •  문자의 유한 집합입니다,
  •  문자의 유한 집합이므로  .
  •  생산 규칙의 유한 집합이다.
  •  의 요소로 구성된 시작 그림 입니다.  과  ,

군중의 성분  임의의 수의 요소를 유한 한 배열로  모든 배율 또는 방향으로.

요소 사용 안함  그게 규칙에  아웃  , 또는  발생을 터미널 수치라고합니다.

요소 사용 안함  소위 비 종식 도형이나 마커라고합니다. 집단  아웃  형상 규칙 또는 생산 규칙이라고하며 형태로되어 있습니다.  적어 두었다.

왼쪽  요소로 구성된 그림이다.  하나의 요소와 결합 된  ,

우편  그림이며 동일한 요소로 구성됩니다.  이  동일한 요소가 발생합니다.  …에서  , 요소와 결합  , 또는 같은 요소  …에서  , 추가 요소  요소와 결합 된  ,

 시작 요소이며, 다음 요소로 구성됩니다.  과  , 일반적으로 적어도 하나의 요소로 구성됩니다.  규칙  …에서  발생합니다.

규칙을 모든 일치 항목에 동시에 적용하고,
규칙을 모든 일치 항목에 순차적으로 적용합니다 (불일치가 발생할 수 있음).
탐지 된 일치 항목 중 하나를 선택하고이 일치 항목에만 규칙을 적용하십시오.
모양 문법은 주택 레이아웃 및 구조 개선과 같이 작고 잘 정의 된 세대 문제에 국한 될 때 가장 유용합니다. 모양 규칙은 일반적으로 작은 모양에 정의되므로 모양 문법에 많은 규칙이 빠르게 포함될 수 있습니다. 예를 들어 윌리엄 미첼 (William Mitchell)이 제시 한 팔라 디안 빌라 (Palladian villas) 형 문법은 여덟 단계에 걸쳐 적용되는 69 개의 ​​규칙을 포함합니다.

파라 메트릭 쉐이프 문법은 쉐이프 문법을 확장 한 것입니다. 모양 규칙의 RHS에있는 새 모양은 이미 존재하는 모양의 컨텍스트를 더 고려할 수 있도록 매개 변수로 정의됩니다. 이것은 일반적으로 새로운 모양의 내부 비율에 영향을 미치기 때문에보다 다양한 양식을 만들 수 있습니다. 이런 식으로, 형상 문법이 구조 조건에 반응하도록 만들려고합니다. 예를 들어 지붕 구조의 보 폭은 스팬에 따라 달라집니다.

학술계에서의 인기와 적용 성에도 불구하고 모양 문법은 일반적인 컴퓨터 지원 디자인 응용 프로그램에서 널리 사용되지 않았습니다.

기술
모양 문법은 규칙과 규칙을 선택하고 처리하거나 계산하는 생성 엔진으로 구성됩니다. 규칙은 기하학적 공간에서 기존 그림 (또는 그 일부)을 어떻게 변형 할 수 있는지 정의합니다. 모양 문법의 정의는 촘스키의 문구 구조 문법의 표준 정의를 따르며 기호 대신 모양을 사용합니다.

형상 문법은 형상 규칙을 재귀 적으로 적용하여 시작 그림으로 시작하여 그림을 생성합니다. 규칙을 기존 그림에 적용한 결과 항상 기존 그림이 새 그림으로 구성되며 새 그림의 규칙 왼쪽이 규칙 오른쪽의 그림으로 바뀝니다.
모양 문법은 최소한 3 개의 제작 규칙 (= 모양 규칙)으로 구성됩니다. 초기 규칙, 하나 이상의 변환 규칙 및 종료 규칙 시작 규칙은 생성 프로세스를 시작하는 데 필요하지만 스케줄링 규칙은 생성을 완료하는 데 필요합니다. 프로세스를 중지하는 가장 쉬운 방법은 마커 (= 비 터미널)를 제거하는 것입니다.Chomsky 문법과는 달리, Shape 문법의 생산 규칙은 L 시스템의 순서와 유사하게 연속적으로뿐만 아니라 병렬 적으로 적용될 수 있습니다.

모양 문법 시스템에는 일반적으로 생성 된 모양이 표시되는 특정 작업 공간이 있습니다. 생성 엔진은 모양 규칙의 왼쪽에있는 조건과 일치하는 기존 그림을 확인합니다. 하나 이상의 적합한 규칙이 발견되면 엔진은 적용 할 규칙을 결정합니다. 다른 방법은 먼저 규칙을 선택한 다음 왼쪽의 모든 일치 항목을 현재 그림으로 검색하는 것입니다. 구현에 따라 여러 개의 일치 항목이 있습니다.

  • 규칙은 모든 일치 항목에 병렬로 적용됩니다.
  • 모든 일치 항목에 순차적으로 적용되는 규칙 (불일치가 발생할 수 있음) 또는
  • 선택한 경기 중 하나와이 지역에만 적용되는 규칙.

파라 메트릭 쉐이프 문법 은 쉐이프 문법 을 확장 한 것입니다. 생산 규칙 대신 모양 규칙 스키마 (  ), 파라 메트릭 수치로 구성됩니다. 변수에 구체적인 값을 삽입하여  과  새로운 도형 규칙이 정의되어 새로운 도형을 만드는 일반적인 방법으로 사용됩니다. 이 일반화를 통해보다 큰 수치의 변형이 생성 될 수 있습니다.

응용 프로그램
모양 문법은 원래 그림과 조각을 위해 제시되었지만, 그 이후 주로 건축 (컴퓨터 지원 건축 디자인)에서의 적용을 발견했습니다. 형상 문법은 특히 내부 또는 건물의 정면의 구조 및 레이아웃과 같이 작고 잘 정의 된 문제에 적합합니다. 모양 문법은 대개 매우 많은 수의 규칙으로 구성됩니다. 예를 들어, 이탈리아 건축가 안드레아 팔라 디오 (Andrea Palladio) 스타일의 별장을 만들기 위해 윌리엄 미첼 (William Mitchell)이 제시 한 모양 문법은 여덟 가지 구현 단계에서 적용되는 69 개의 ​​규칙으로 구성됩니다.

아키텍처와 마찬가지로 최근 몇 십 년 동안 컴퓨터 그래픽에서 모양 문법이 점점 중요 해지고 있습니다. 모양 문법은 주로 건물이나 도시의 절차 모델링 (예 : 영화 또는 비디오 게임)에 사용됩니다. Shape Grammars는 제작 규칙을 사용하여 다양한 3D 모델을 생성하는 수많은 개발 시스템의 기초를 형성합니다. 현실적인 모양의 거리 계획은 물론 건물의 정면이나 내부도 형상 문법을 사용하여 절차 적으로 만들 수 있습니다.

Shape 문법이 적용된 다른 영역에는 산업 디자인 및 엔지니어링이 포함됩니다.

소프트웨어 프로토 타입
다음은 웹에서 사용할 수있는 소프트웨어 프로토 타입 목록입니다 (그 중 일부는 엄밀히 말하면 다소 복잡한 문법 체계입니다).

문법 환경
그레이프
SD2
모양 문법 인터프리터
셰이퍼 2D
스파퍼
SubShapeDetector
청도 건축가