Schaut euch mal die "Spirale" an ^^

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

LukasBanana

Betreff: Schaut euch mal die "Spirale" an ^^

BeitragMi, Sep 10, 2008 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich dachte ihr könntet vielleicht was mit diesem Model anfangen.
Eine Spirale die man über 6 Parameter variieren kann Mr. Green

Code: [AUSKLAPPEN]
;
; ========== ModelCreatorTest1 - (8.9.2008) ===========
;


; //////////////////////////////////////////////
; // SOFTPIXEL ENGINE - MODELCREATOR - SPIRAL //
; //////////////////////////////////////////////
;
; Copyright (c) 2008 Lukas Hermanns
;
; "zlib/libpng" License
;


Function spCreateSpiral%(Detail, Radius1#, Radius2#, DegreeLength#, Size#, isCap)
   
   mesh = CreateMesh()
   surf = CreateSurface(mesh)
   
   i% = 0
   j% = 0
   If Detail > 180
      Detail = 180
   ElseIf Detail < 2
      Detail = 2
   EndIf
   Detail = Detail * 2;
   LengthDetail = Detail * DegreeLength / 360 + 1;
   x# = 0.0
   y# = 0.0
   z# = 0.0
   tDeg# = 360.0 / Detail;
   Height# = DegreeLength * Size / 360 / 2;
   v0 = 0
   v1 = 0
   v2 = 0
   v3 = 0
   
   ; Vertices
   
   ; Body
   For i = 0 To LengthDetail - 1
      For j = 0 To Detail
         x = Sin(i*tDeg) * (Radius1 + Cos(j*tDeg)*Radius2);
         y = (i*tDeg*Size) / 360 + Sin(j*tDeg)*Radius2 - Height;
         z = Cos(i*tDeg) * (Radius1 + Cos(j*tDeg)*Radius2);
         AddVertex(surf, x, y, z, i*tDeg*3/360, 0.5+Sin(j*tDeg)*0.5);
      Next
   Next
   
   If (isCap)
      ; Bottom
      For j = 0 To Detail
         y = Sin(j*tDeg)*Radius2 - Height;
         z = (Radius1 + Cos(j*tDeg)*Radius2);
         AddVertex(surf, 0.0, y, z, 0.5+Sin(j*tDeg-90)*0.5, 0.5-Cos(j*tDeg-90)*0.5);
      Next
      ; Top
      i = LengthDetail-1
      For j = 0 To Detail
         x = Sin(i*tDeg) * (Radius1 + Cos(j*tDeg)*Radius2);
         y = (i*tDeg*Size) / 360 + Sin(j*tDeg)*Radius2 - Height;
         z = Cos(i*tDeg) * (Radius1 + Cos(j*tDeg)*Radius2);
         AddVertex(surf, x, y, z, 0.5+Sin(j*tDeg+90)*0.5, 0.5+Cos(j*tDeg+90)*0.5);
      Next
   EndIf
   
   ; Triangles
   
   ; Body
   For i = 0 To LengthDetail-2
      For j = 0 To Detail-1
         v0 = i*(Detail+1)+j;
         v1 = (i+1)*(Detail+1)+j;
         v2 = (i+1)*(Detail+1)+j+1;
         v3 = i*(Detail+1)+j+1;
         AddTriangle(surf, v0, v1, v2);
         AddTriangle(surf, v0, v2, v3);
      Next
   Next
   
   If (isCap)
      ; Bottom
      v0 = LengthDetail*(Detail+1);
      For j = 0 To Detail-1
         v1 = LengthDetail*(Detail+1)+j;
         v2 = LengthDetail*(Detail+1)+j+1;
         AddTriangle(surf, v0, v1, v2);
      Next
      ; Top
      v0 = (LengthDetail+1)*(Detail+1);
      For j = 0 To Detail-1
         v1 = (LengthDetail+1)*(Detail+1)+j;
         v2 = (LengthDetail+1)*(Detail+1)+j+1;
         AddTriangle(surf, v2, v1, v0);
      Next
   EndIf
   
   UpdateNormals mesh
   
   Return mesh
   
End Function


; //////////////////////////////////////////////
; //////////////////////////////////////////////
; //////////////////////////////////////////////


Graphics3D 640, 480, 32, 2

cam = CreateCamera()
light = CreateLight()
TurnEntity light, 70, 45, 0

spiral = spCreateSpiral(9, 0.5, 0.125, 360, 1.0, True)

TranslateEntity spiral, 0, 0, 2

Repeat
   
   RenderWorld
   
   TurnEntity spiral, 0, 1, 0
   
   Flip
   
Until KeyHit(1)

Viel Spaß damit ^^
Gruß Lukas
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

BadDeath

BeitragMi, Sep 10, 2008 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
*Spaß hab*

Sieht ganz auch schick aus:

Code: [AUSKLAPPEN]
Graphics3D 640, 480, 32, 2
Timer = CreateTimer(60)
cam = CreateCamera()
light = CreateLight()
   TurnEntity light, 70, 45, 0

spiral = spCreateSpiral(15, 0.5, 0.125, 360*5.5, 1, True)
   TranslateEntity spiral, 0, 0, 2
   RotateEntity spiral, 0,0,90
   EntityColor spiral, 255,50,200

Repeat
   RenderWorld
   TurnEntity spiral, 0, 3, 0
   Flip 0
   WaitTimer Timer
Until KeyHit(1)
End


Nur gehört so etwas nicht ins Codearchiv?
-~= real coders just code in binary =~-

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Sep 10, 2008 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gehört nicht ins Codearchiv, da LukasBanana auf sein Code ein Copyright (c) 2008 Lukas Hermanns gesetzt hat...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

das wurgel

BeitragMi, Sep 10, 2008 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
komliment, man muss es schon ziemlich drauf ham um so hinzukriegen Very Happy

ich habs gestestet und ich hab mar mit den werten ein bisschen rumgespielt
lustig sieht mit diesen werten aus:
Code: [AUSKLAPPEN]
40, 0.2, 0.5, 720, 1.0, True
1 ist ungefähr 3

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group