BASIC

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Kitty Hello

Pages: 1 ... 35 36 [37]
541
Code Snippets / Factal Trees
« on: 2004-Mar-29 »
Well, how about drawing some nice 3D Trees with leaves and so on? Here's the basic framework needed:

Code: GLBasic [Select]
// --------------------------------- //
// Project:
// Start: Monday, March 29, 2004
// IDE Version: 1.40327


// rule = “l [ + l ] l [ - l] l” [Jürgens Hartmut, Peitgen Heinz-Otto, Saupe Dietmar:
//                                Fraktale - eine neue Sprache für komplexe Strukturen,
//                                Spektrum der Wissenschaft (9/1989), p.62.] with
// l = line
// + = +28.58 degrees
// - = -28.58 degrees
// [ = start of a branch
// ] = end of a branch


    NewBranch(200,200,0, 0, -90, 0, 10)
        SHOWSCREEN
        MOUSEWAIT

// ------------------------------------------------------------- //
// -=#  NEWBRANCH  #=-
// ------------------------------------------------------------- //
FUNCTION NewBranch: x, y, z, phi, psi, depth, maxdepth

LOCAL ex, ey, ez, px, py, pz, lngth, ln_bottom, dphi, dpsi
LOCAL n, nbranches, col
        lngth = 100/(1+depth)
        ln_bottom = lngth*COS(psi)
        nbranches = 2

        ex = x + COS(phi)*ln_bottom
        ey = y + SIN(psi)*lngth
        ez = z + SIN(phi)*ln_bottom

        IF (depth<maxdepth)
                FOR n=1 TO nbranches
                        pos = n/(nbranches+1)
                        px = x+(ex-x)*pos
                        py = y+(ey-y)*pos
                        pz = z+(ez-z)*pos

                        dphi = phi + (RND(2)-1)*28.58
                        dpsi = psi + (RND(2)-1)*28.58
                        NewBranch(px, py, pz, dphi, dpsi, depth+1, maxdepth)
                NEXT
        ENDIF

        col = RGB(200 - 200*(depth/maxdepth), 64+128*(depth/maxdepth), 0)
        // Front
        DRAWLINE x, y, ex, ey, col
        // Left
        DRAWLINE z+120, y, ez+120, ey, col
        // Top
        DRAWLINE x, z+320, ex, ez+320, col
ENDFUNCTION
 


And an image:

542
Ein, wie ich finde, sehr interessanter Wettbewerb, bei dem man auch mit der kostenlosen Demo-Version von GLBasic  zu den Gewinnern gehören kann.

Hier geht's zu den Details

Viel Erfolg

543
GLBasic - de / MipMapping
« on: 2004-Mar-23 »
Holt euch die Internet-Updates regelmäßig. Diesmal (V1.40323) gibt's MipMapping:
Code: GLBasic [Select]
X_MIPMAPPING 1 // an
X_DRAWOBJ 1,0
 

Viel Spaß,
Gernot

544
Announcements / MipMapping
« on: 2004-Mar-23 »
Get the internet updates frequently. Featuring mipmapping this time (V1.40323)
Code: GLBasic [Select]
X_MIPMAPPING 1 // on
X_DRAWOBJ 1,0
 
Have fun,
Gernot

545
GLBasic - de / Einfache 3D Objekte
« on: 2004-Mar-05 »
Hier ist der Quellcode für einfache 3D Objekte:

Eine Kugel
Code: GLBasic [Select]
// ------------------------------------------------------------- //
// -=#  SPHERE  #=-
// ------------------------------------------------------------- //
FUNCTION CreateSphere: num, r, n, col
LOCAL i,j, theta1, theta2, theta3, pi
        pi = ACOS(0)*2
        IF r < 0 THEN r = -r
        IF n < 3 THEN n = 3

        X_OBJSTART num
        FOR j=0 TO n/2-1

                theta1 = j * 2*pi / n - pi/2;
                theta2 = (j + 1) * 2*pi / n - pi/2;
                FOR i=0 TO n
                        theta3 = i * 2*pi / n;
                        X_OBJADDVERTEX r*COS(theta2) * COS(theta3), r*SIN(theta2), r*COS(theta2) * SIN(theta3), i/n, 2*(j+1)/n, col
                        X_OBJADDVERTEX r*COS(theta1) * COS(theta3), r*SIN(theta1), r*COS(theta1) * SIN(theta3), i/n, 2*j/n, col
                NEXT
                X_OBJNEWGROUP
        NEXT
        X_OBJEND
ENDFUNCTION // n
 


EinWürfel - jede Seite hat die gleiche Textur
Code: GLBasic [Select]
// ------------------------------------------------------------- //
// -=#  CREATECUBE  #=-
// ------------------------------------------------------------- //
FUNCTION CreateCube: num, sz, col
        // Diese Variablen sind als LOCAL definiert:
        // num, sz,
        sz=sz/2
        X_OBJSTART num
                // Front Face
                X_OBJADDVERTEX  sz, -sz,  sz, 1, 0, col
                X_OBJADDVERTEX -sz, -sz,  sz, 0, 0, col
                X_OBJADDVERTEX  sz,  sz,  sz, 1, 1, col
                X_OBJADDVERTEX -sz,  sz,  sz, 0, 1, col
                X_OBJNEWGROUP
                // Back Face
                X_OBJADDVERTEX -sz,  sz, -sz, 1, 1, col
                X_OBJADDVERTEX -sz, -sz, -sz, 1, 0, col
                X_OBJADDVERTEX  sz,  sz, -sz, 0, 1, col
                X_OBJADDVERTEX  sz, -sz, -sz, 0, 0, col
                X_OBJNEWGROUP
                // Top Face
                X_OBJADDVERTEX -sz,  sz,  sz, 0, 0, col
                X_OBJADDVERTEX -sz,  sz, -sz, 0, 1, col
                X_OBJADDVERTEX  sz,  sz,  sz, 1, 0, col
                X_OBJADDVERTEX  sz,  sz, -sz, 1, 1, col
                X_OBJNEWGROUP
                // Bottom Face
                X_OBJADDVERTEX  sz, -sz, -sz, 0, 1, col
                X_OBJADDVERTEX -sz, -sz, -sz, 1, 1, col
                X_OBJADDVERTEX  sz, -sz,  sz, 0, 0, col
                X_OBJADDVERTEX -sz, -sz,  sz, 1, 0, col
                X_OBJNEWGROUP
                // Right face
                X_OBJADDVERTEX  sz,  sz, -sz, 1, 1, col
                X_OBJADDVERTEX  sz, -sz, -sz, 1, 0, col
                X_OBJADDVERTEX  sz,  sz,  sz, 0, 1, col
                X_OBJADDVERTEX  sz, -sz,  sz, 0, 0, col
                X_OBJNEWGROUP
                // Left Face
                X_OBJADDVERTEX -sz, -sz,  sz, 1, 0, col
                X_OBJADDVERTEX -sz, -sz, -sz, 0, 0, col
                X_OBJADDVERTEX -sz,  sz,  sz, 1, 1, col
                X_OBJADDVERTEX -sz,  sz, -sz, 0, 1, col
                X_OBJNEWGROUP
        X_OBJEND

ENDFUNCTION // sz
 

A Zylinder oder Kegel(stumpf)
Code: GLBasic [Select]
// ------------------------------------------------------------- //
// -=#  CREATECYLINDER - also creates a cone if any radius = 0  #=-
// ------------------------------------------------------------- //
FUNCTION CreateCylinder: num, baseRadius, topRadius, height, slices, stacks, col
LOCAL da, r, dr, dz, x, y, z, i, j
LOCAL x1, y1, x2, y2
        da = 360 / slices
        dr = (topRadius-baseRadius) / stacks
        dz = height / stacks
        X_OBJSTART num
        FOR i=0 TO slices-1
                x1 = COS(i*da)
                y1 = SIN(i*da)
                x2 = COS((i+1)*da)
                y2 = SIN((i+1)*da)
                z = 0
                r = baseRadius

                // Bottom lid
                IF baseRadius>0
                        X_OBJADDVERTEX 0, 0, 0,  .5, .5, col
                        X_OBJADDVERTEX x1*r, y1*r, 0, x1/2+.5, y1/2+.5, col
                        X_OBJADDVERTEX x2*r, y2*r, 0, x2/2+.5, y2/2+.5, col
                        X_OBJNEWGROUP
                ENDIF
                // side
                FOR j=0 TO stacks
                        X_OBJADDVERTEX x2*r, y2*r, z, (i+1)/slices,  j/stacks, col
                        X_OBJADDVERTEX x1*r, y1*r, z,  i   /slices,  j/stacks, col
                        z = z+dz
                        r = r+dr
                NEXT
                // Top lid
                IF topRadius>0
                        X_OBJNEWGROUP
                        X_OBJADDVERTEX x2*r, y2*r, height, x2/2+.5, y2/2+.5, col
                        X_OBJADDVERTEX x1*r, y1*r, height, x1/2+.5, y1/2+.5, col
                        X_OBJADDVERTEX 0, 0, height,  .5, .5, col
                ENDIF
                X_OBJNEWGROUP
        NEXT
        X_OBJEND
ENDFUNCTION
 

Ein Torus (Donut)
Code: GLBasic [Select]
// ------------------------------------------------------------- //
// -=#  CREATETORUS  #=-
//
// By Samuel R. Buss
// http://math.ucsd.edu/~sbuss/MathCG
// ------------------------------------------------------------- //
FUNCTION CreateTorus: num, MinorRadius, MajorRadius, NumWraps, NumPerWrap, TextureWrapVert, TextureWrapHoriz
        // Diese Variablen sind als LOCAL definiert:
        // x, y,
        // Draw the torus
LOCAL i, di, j, wrapFrac, wrapFracTex, phi, thetaFrac, thetaFracTex, theta
LOCAL x, y, z, r
        X_OBJSTART num
        FOR di=0 TO NumWraps-1
                FOR j=0 TO NumPerWrap
                        FOR i=di+1 TO di STEP -1
                                wrapFrac = MOD(j, NumPerWrap)/NumPerWrap
                                wrapFracTex = j/NumPerWrap
                                phi = 360*wrapFrac
                                thetaFrac = (MOD(i, NumWraps)+wrapFracTex)/NumWraps
                                thetaFracTex = (i+wrapFracTex)/NumWraps
                                theta = 360*thetaFrac
                                r = MajorRadius + MinorRadius*COS(phi)
                                x = SIN(theta)*r
                                z = COS(theta)*r
                                y = MinorRadius*SIN(phi)
                                X_OBJADDVERTEX x,y,z,  thetaFracTex*TextureWrapVert, wrapFracTex*TextureWrapHoriz, RGB(255, 255, 255)
                        NEXT
                NEXT
                X_OBJNEWGROUP
        NEXT
        X_OBJEND
ENDFUNCTION
 

546
Ja. Ich habe ein kleines Beispiel erstellt, dass das verdeutlicht:
Schuschachtel-Alleinstehend
Die Schuhschachtel-Dateien (.sbx) werden rückwärts gelesen und die .exe Dateien liest das Betriebssystem von vorne. Daher kann man an die .exe eine .sbx anhängen und aus der .exe die Resourcen laden.

547
Yes. I've made a little sample program that is located here:
ShoeBox-Standalone
The shoebox .sbx files get read backwards and the .exe files get read forwards by the operating system. Thus, you can concatenate both and load the resources from the attached shoebox in the .exe file.

548
FAQ / Warum ist alles so langsam?
« on: 2004-Feb-25 »
...wiel der neueste Grafikartentreiber nicht installiert wurde. Microsoft liefert  seit WindowsXP keine OpenGL fähigen Treiber mehr mit dem Berteibssystem aus. Daher bitte (auch für die Kunden) immer den neusten Treiber installieren.

549
FAQ / Why is everything so slow
« on: 2004-Feb-25 »
...because you did not install a proper graphics card driver that supports OpenGL by hardware. Microsoft will not ship these drivers anymore since WindowsXP. Make sure you, and your custkmners, have installed the latest drivers.

Pages: 1 ... 35 36 [37]