| |
|
|
Sven Bader | Aus una dieser uralten Beispiele de opengl.org Yo algo traducido por lo profano; y ihm zusätzlich todavía Texturkoordinaten verpasst - como gäbe lo en así una komplexen Objeto sicher mehrere Ansätze.
Descargar
Im Gegensatz a internen OpenGL Objekten, debería el Torus en cada Fall vorher me StartList/Endlist gespeichert y DrawList abgerufen voluntad.
Ähnlich como en Kugel (Sphere) dejar el Segmente en zwei Dimensionen wählen, zusätzlich kann el Innen- y Außenradius angegeben voluntad.
Zum mejor Verständnis, una korrekte Textur muss en etwa así aufgebaut ser
Hier sólo el Función incluso:
Proc Torus
Parámetros majorRadius!, minorRadius!, numMajor%, numMinor%
Declarar majorStep!, minorStep!
Declarar a0!,a1!,x0!,y0!,x1!,y1!,b!,c!,r!,z!,bucle2&
majorStep! = 2.0*Pi() / numMajor%
minorStep! = 2.0*Pi() / numMinor%
WhileLoop 0, numMajor% - 1
a0! = &bucle * majorStep!
a1! = a0! + majorStep!
x0! = cos(a0!)
y0! = sin(a0!)
x1! = cos(a1!)
y1! = sin(a1!)
bucle2& = &bucle
oGL("glBegin", ~GL_TRIANGLE_STRIP)
WhileLoop 0, numMinor%
b! = &bucle * minorStep!
c! = cos(b!)
r! = minorRadius! * c! + majorRadius!
z! = minorRadius! * sin(b!)
oGL("glNormal3f", x0!*c!, y0!*c!, z!/minorRadius!)
oGL("glTexCoord2f", bucle2& / numMajor%, &bucle / numMinor%)
oGL("glVertex3f", x0!*r!, y0!*r!, z!)
oGL("glNormal3f", x1!*c!, y1!*c!, z!/minorRadius!)
oGL("glTexCoord2f", (bucle2& + 1) / numMajor%, &bucle / numMinor%)
oGL("glVertex3f", x1!*r!, y1!*r!, z!)
EndWhile
oGL("glEnd")
EndWhile
ENDPROC
|
|
|
| |
|
|