2013-12-21 67 views
0

我這個小碼正確的錯誤代碼跟蹤球

GLUquadricObj *q = gluNewQuadric() 
.... 
..... 
glTranslatef(s->c.x, s->c.y, s->c.z); 
gluSphere(q, s->r, SPHERE_DIVS, SPHERE_DIVS); 

,我想與我做了一個函數來替換此glusphere。它採用的參數爲3D中心,鐳和它的痕跡球體

int gp21_gluSphere(GLfloat x, GLfloat y, GLfloat z, GLdouble radius); 

但我的問題是,當我與

gp21_gluSphere (q.x, q.y, q.z, s->r); 

更換功能

gluSphere(q, s->r, SPHERE_DIVS, SPHERE_DIVS); 

我得到這些錯誤

error C2228: left of '.x' must have class/struct/union type 
error C2228: left of '.y' must have class/struct/union type 
error C2228: left of '.z' must have class/struct/union type 

我該怎麼辦?

回答

0

您已聲明q作爲指針,然後試圖訪問像它的結構/對象的成員。

嘗試,而不是:

gp21_gluSphere (q->x, q->y, q->z, s->r); 
+0

我想,但我有這些錯誤錯誤C2027:使用未定義的類型 'GLUquadric' 的C:.....:見 'GLUquadric' C聲明:\ ......錯誤C2227:' - > x'左邊必須指向類/結構體/聯合體 錯誤C2027:使用未定義類型'GLUquadric' :請參閱'GLUquadric'聲明 錯誤C2227: - > y'必須指向class/struct/union 錯誤C2027:使用未定義的類型'GLUquadric' C:\ ....:參見'GLUquadric'的聲明 C:..... error C2227:' - > z'的左邊必須指向class/struct/union – user3084606

+0

您是否嘗試過實際查看'q'的定義?爲什麼你沒有在你的問題中發佈完整的確切定義? – abelenky

+0

是的,我試圖找到定義,但我沒有成功找到解決方案。我沒有發佈q的定義,因爲它是一個使用q的預定義函數:void gluSphere(GLUquadric * quad,GLdouble radius,GLint slices,GLint stacks); 指定quadrics對象(使用 gluNewQuadric()創建)。指定球體的半徑。 指定圍繞z軸 (類似於經度線)的細分數。指定沿z軸的 細分的數量(類似於緯度線)。 – user3084606