gluEndTrim 函式
gluBeginTrim和gluEndTrim函式會分隔非統一的合理 B-Spline (NURBS) 修剪迴圈定義。
語法
void WINAPI gluEndTrim(
GLUnurbs *nobj
);
參數
-
nobj
-
使用 gluNewNurbsRenderer) 建立的 NURBS 物件 (。
傳回值
此函式不會傳回值。
備註
使用 gluBeginTrim 標記修剪迴圈的開頭, 而 gluEndTrim 則會標記修剪迴圈的結尾。 修剪迴圈是一組導向曲線區段, (形成封閉曲線) 來定義 NURBS 表面的界限。 您可以在 NURBS 介面的定義中包含這些修剪迴圈,在 對 gluBeginSurface 和 gluEndSurface的呼叫之間。
NURBS 介面的定義可以包含許多修剪迴圈。 例如,如果您撰寫類似矩形的 NURBS 表面定義,而該矩形有孔壓出,則定義會包含兩個修剪迴圈。 一個迴圈會定義矩形的外部邊緣;另一個會定義孔外孔。 每個修剪迴圈的定義都會以gluBeginTrim / gluEndTrim配對括住。
單一封閉修剪迴圈的定義可以由多個曲線區段組成,每個線段都描述為一系列的線條線段, (請參閱 gluPwlCurve) ,作為單一 NURBS 曲線, (查看 gluNurbsCurve) ,或以任意順序兩者的組合。 在 對 gluBeginTrim 和 gluEndTri) m 的呼叫之間,唯一可以出現在修剪迴圈定義中的程式庫呼叫 (為 gluPwlCurve 和 gluNurbsCurve。
NURBS 表面的顯示區域是修剪曲線左邊網域中的區域,因為曲線參數增加。 因此,NURBS 介面的保留區域位於反時針修剪迴圈內,以及順時針修剪迴圈外部。 針對稍早所述的矩形,矩形外部邊緣的修剪迴圈會以逆時針方式執行,而修剪迴圈則以順時針方式執行。
如果您使用多個曲線來定義單一修剪迴圈,曲線線段必須形成封閉迴圈 (也就是每個曲線的端點必須是下一個曲線的起點,而最後曲線的端點必須是第一個曲線的起點) 。 如果曲線的端點已足夠接近,但並非完全一致,則會強制比對。 如果端點不夠接近,則錯誤結果 (請參閱 gluNurbsCallback) 。
如果修剪迴圈定義包含多個曲線,曲線的方向必須一致 (也就是說,內部必須位於所有曲線的左邊) 。 只要曲線方向正確替代,您就可以使用巢狀修剪迴圈。 修剪曲線不能自我交集,也無法彼此交集 (或錯誤結果) 。
如果未為 NURBS 表面提供修剪資訊,則會繪製整個表面。
範例
此程式碼片段會定義修剪迴圈,其中包含一個片段線性曲線和兩個 NURBS 曲線:
gluBeginTrim(nobj);
gluPwlCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_3);
gluEndTrim(nobj);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|