다음을 통해 공유


glMap1d 함수

glMap1dglMap1f 함수는 1차원 계산기를 정의합니다.

구문

void WINAPI glMap1d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    stride,
         GLint    order,
   const GLdouble *points
);

매개 변수

대상

계산기에서 생성되는 값의 종류입니다. 기호 상수입니다. 대상 매개 변수는 포인트에 제공되는 제어점의 종류와 맵이 평가될 때 생성되는 출력을 나타내는 기호 상수입니다. 미리 정의된 9개 값 중 하나를 가정할 수 있습니다.

의미
GL_MAP1_VERTEX_3
각 제어점은 x, yz를 나타내는 세 개의 부동 소수점 값입니다. 내부 glVertex3 명령은 맵이 평가될 때 생성됩니다.
GL_MAP1_VERTEX_4
각 제어점은 x, y, zw를 나타내는 4개의 부동 소수점 값입니다. 내부 glVertex4 명령은 맵이 평가될 때 생성됩니다.
GL_MAP1_INDEX
각 제어점은 색 인덱스 를 나타내는 단일 부동 소수점 값입니다. 내부 glIndex 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 인덱스는 이러한 glIndex 명령의 값으로 업데이트되지 않습니다.
GL_MAP1_COLOR_4
각 제어점은 빨강, 녹색, 파랑 및 알파를 나타내는 4개의 부동 소수점 값입니다. 내부 glColor4 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 색은 이러한 glColor4 명령 값으로 업데이트되지 않습니다.
GL_MAP1_NORMAL
각 제어점은 일반 벡터의 x, yz 구성 요소를 나타내는 세 개의 부동 소수점 값입니다. 내부 glNormal 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 표준은 이러한 glNormal 명령의 값으로 업데이트되지 않습니다.
GL_MAP1_TEXTURE_COORD_1
각 제어점은 텍스처 좌표를 나타내는 단일 부동 소수점 값 입니다 . 내부 glTexCoord1 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령 값으로 업데이트되지 않습니다.
GL_MAP1_TEXTURE_COORD_2
각 제어점은 st 텍스처 좌표를 나타내는 두 개의 부동 소수점 값입니다. 내부 glTexCoord2 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령 값으로 업데이트되지 않습니다.
GL_MAP1_TEXTURE_COORD_3
각 제어점은 s, tr 텍스처 좌표를 나타내는 3개의 부동 소수점 값입니다. 내부 glTexCoord3 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령 값으로 업데이트되지 않습니다.
GL_MAP1_TEXTURE_COORD_4
각 제어점은 s, t, rq 텍스처 좌표를 나타내는 4개의 부동 소수점 값입니다. 내부 glTexCoord4 명령은 맵이 평가될 때 생성됩니다. 그러나 현재 텍스처 좌표는 이러한 glTexCoord 명령 값으로 업데이트되지 않습니다.

u1

glEvalCoord1에 표시되는 u의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 변수인 u^입니다.

u2

glEvalCoord1에 표시되는 u의 선형 매핑으로, 이 명령에서 지정한 수식으로 계산되는 변수인 u^입니다.

Stride

한 제어점의 시작 부분과 포인트에서 참조되는 데이터 구조의 다음 제어점 시작 부분 사이의 부동 소수점 또는 두 배 수입니다. 이렇게 하면 제어점을 임의 데이터 구조에 포함할 수 있습니다. 유일한 제약 조건은 특정 제어점의 값이 연속 메모리 위치를 차지해야 한다는 것입니다.

order

제어점의 수입니다. 양수여야 합니다.

포인트

제어점 배열에 대한 포인터입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

오류 코드

glGetError 함수에서 다음 오류 코드를 검색할 수 있습니다.

Name 의미
GL_INVALID_ENUM
target 이 허용되는 값이 아닙니다.
GL_INVALID_VALUE
u1u2와 같았습니다.
GL_INVALID_VALUE
stride 가 제어점의 값 수보다 작습니다.
GL_INVALID_VALUE
순서 가 1보다 작거나 GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
함수는 glBegin 호출과 glEnd에 대한 해당 호출 간에 호출되었습니다.

설명

평가기는 다항식 또는 합리적인 다항식 매핑을 사용하여 꼭짓점, 노멀, 텍스처 좌표 및 색을 생성하는 방법을 제공합니다. 계산기에서 생성한 값은 생성된 값이 현재 법선, 텍스처 좌표 또는 색을 업데이트하지 않는다는 점을 제외하고 glVertex, glNormal, glTexCoordglColor 명령을 사용하여 제공된 것처럼 OpenGL 처리의 추가 단계로 전송됩니다.

모든 수준의 모든 다항식 또는 합리적인 다항식 스플라인(OpenGL 구현에서 지원하는 최대 수준까지)은 계산기를 사용하여 설명할 수 있습니다. 여기에는 B 스플라인, 베지어 곡선, Hermite 스플라인 등을 포함하여 컴퓨터 그래픽에 사용되는 거의 모든 스플라인이 포함됩니다.

평가기는 번스타인 다항식에 따라 곡선을 정의합니다. p()를 로 정의합니다.

p()의 정의를 보여 주는 수식입니다.

여기서 Ri 는 제어점이고 ()는 in 의 번스타인 다항식(order =n + 1)입니다.

도 n의 번스타인 다항식을 보여 주는 수식입니다.

다음을 기억합니다.

1과 동등성을 보여 주는 수식입니다.

glMap1 함수는 기초를 정의하고 생성되는 값 종류를 지정하는 데 사용됩니다. 정의되면 위에서 설명한 대상에 대해 미리 정의된 9가지 값 중 하나인 glEnableglDisable을 맵 이름으로 호출하여 맵을 사용하도록 설정하고 사용하지 않도록 설정할 수 있습니다. glEvalCoord1 함수는 사용하도록 설정된 1차원 맵을 평가합니다. glEvalCoord1값 u를 표시하면 번스타인 함수는 u^를 사용하여 평가됩니다. 여기서

^의 정의를 보여 주는 수식입니다.

stride, orderpoints 매개 변수는 제어점에 액세스하기 위한 배열 주소 지정을 정의합니다. points 매개 변수는 정의되는 맵에 따라 1, 2, 3 또는 4개의 연속 메모리 위치를 차지하는 첫 번째 제어점의 위치입니다. order 매개 변수는 배열의 제어점 수입니다. stride 매개 변수는 내부 메모리 포인터를 앞으로 이동하여 다음 제어점에 도달할 수 있는 float 또는 double 위치 수를 알려줍니다.

데이터에 대한 포인터를 허용하는 모든 OpenGL 명령의 경우와 마찬가지로 반환되기 전에 의 내용이 glMap1 에 의해 복사된 것처럼 표시됩니다. glMap1이 호출된 후에는 점 내용에 대한 변경 내용이 적용되지 않습니다.

다음 함수는 glMap1과 관련된 정보를 검색합니다.

인수가 GL_MAX_EVAL_ORDER glGet

glGetMap

인수 GL_MAP1_VERTEX_3 glIsEnabled

인수 GL_MAP1_VERTEX_4 glIsEnabled

인수 GL_MAP1_INDEX glIsEnabled

인수 GL_MAP1_COLOR_4 glIsEnabled

인수 GL_MAP1_NORMAL glIsEnabled

인수 GL_MAP1_TEXTURE_COORD_1 glIsEnabled

인수 GL_MAP1_TEXTURE_COORD_2 glIsEnabled

인수 GL_MAP1_TEXTURE_COORD_3 glIsEnabled

인수 GL_MAP1_TEXTURE_COORD_4 glIsEnabled

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Gl.h
라이브러리
Opengl32.lib
DLL
Opengl32.dll

추가 정보

glBegin

glColor

glEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex