Funktions Plotter 3D
Übersicht

![]() |
Markus2Betreff: Funktions Plotter 3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cursor Tasten Oben/Unten für Funk. ändern
Links/Rechts Camera drehen . +- auf Numpad ist Zoom Geht auch mit Texture siehe REM Code: [AUSKLAPPEN] Graphics3D 800,600,16,0 SetBuffer BackBuffer() Global Piv=CreatePivot() Global Cam=CreateCamera(Piv) PositionEntity Cam,0,2,-2 CameraRange Cam,1,30 CameraClsColor Cam,128,128,128 AmbientLight 32,32,32 Global Light=CreateLight(2) PositionEntity Light,0,10,-10 LightRange Light,10 Global Fu,Fo,T,Br,S If Fu Then FreeEntity Fu:Fu=0 Fu=CreateMesh() EntityFX Fu ,2 ;T=LoadTexture("texture128.png",8) Br=CreateBrush(255,255,255) ;BrushTexture Br,T ;ScaleTexture T,1.0/10.0,1.0/10.0 S=CreateSurface(Fu,Br) Global W#,W3# MainLoop() End Function MainLoop() Local Scale#=1.0 Fo=0 While Not KeyHit(1) ;ESC S=GetSurface(Fu,1) ClearSurface S,True,True Local x#,y# Local db db=0 For x=-1.0+0.025 To 1.0-0.025 Step 0.05 ;db=1-db For y=-1.0+0.025 To 1.0-0.025 Step 0.05 db=1-db p1=AddPoint(s,x-0.025,y-0.025,0,0,db) p2=AddPoint(s,x+0.025,y-0.025,1,0,db) p3=AddPoint(s,x+0.025,y+0.025,1,1,db) p4=AddPoint(s,x-0.025,y+0.025,0,1,db) If p1>-1 And p2>-1 And p3>-1 And p4>-1 Then AddTriangle(S,p1,p3,p2) AddTriangle(S,p1,p4,p3) EndIf Next Next PointEntity Cam,Fu,0 If KeyHit(200) Then ;Hoch Scale#=1.0 ScaleEntity Fu,Scale,Scale,Scale If Fo<8 Then Fo=Fo+1 ElseIf KeyHit(208) Then ;Runter Scale#=1.0 ScaleEntity Fu,Scale,Scale,Scale If Fo>0 Then Fo=Fo-1 EndIf If KeyDown(203) Then ;Links TurnEntity Piv,0,-1,0 ElseIf KeyDown(205) Then ;Rechts TurnEntity Piv,0,1,0 EndIf If KeyHit(78) Then ;+ If Scale<10.0 Then Scale=Scale+1.0 ScaleEntity Fu,Scale,Scale,Scale ElseIf KeyHit(74) Then ;- If Scale>0.25 Then Scale=Scale-0.25 ScaleEntity Fu,Scale,Scale,Scale EndIf W=W+1:If W>360 Then W=W-360 W3=W3+0.333333:If W3>360.0 Then W3=W3-360.0 RenderWorld Flip Delay 10 Wend End Function Function AddPoint(Sur,x#,y#,u#,v#,db#) Local f#,xs#,ys# Local vi=0 ;wenn man eine Texture benutzen möchte ;u=(x+1.0)/2.0 ;v=(y+1.0)/2.0 Select Fo ;was man sehen will Case 0 f=Sin(Grad(x*2)+W)*Cos(Grad(y*2)+W) Case 1 f=Sin(Grad(x*y+Rad(w*2.0)))*Cos(Grad(y*x+Rad(w*2.0))) Case 2 f=1.0/(15.0*(x^2.0+y^2.0)) ;Tube Case 3 f=(0.4^2.0-(0.6-(x^2.0+y^2.0)^0.5)^2.0)^0.5 ;Torus If f>1.0 Then f=0.0:vi=-1 If f<-1.0 Then f=0.0:vi=-1 Case 4 f=Sin(w*4.0+Grad(5.0*(x^2.0+y^2.0)))/5.0 ;Ripple geht Case 5 f=Sin(Grad(5.0*x)+w+y)*Cos(Grad(5.0*y)+w+x)/5.0 Case 6 f=(1.0 - x^2 - y^2) ^ 0.5 ;Halb Kugel If f>1.0 Then f=0.0:vi=-1 If f<-1.0 Then f=0.0:vi=-1 Case 7 f=Log(Sqr(x*x+y*y)) ;Loch im Boden Case 8 xs=x*4.0 ys=y*4.0 f=CosR(xs)*CosR(Rad(w))+SinR(Rad(w3)) f=f/2.0 ;If f>1.0 Then f=1.0:vi=-1 ;If f<0.0 Then f=0.0;:vi=-1 End Select If vi=0 Then vi=AddVertex(Sur,x,f,y,u,v) If f<0 Then f=-f f=f*5.0 If f>1.0 Then f=1.0 VertexColor Sur,vi,255.0*db,255.0*db*f,255.0*db*f ;VertexColor Sur,vi,255,255,255 ;<- wenn man eine Texture benutzen möchte VertexNormal Sur,vi,0,1,0 EndIf Return vi End Function Function Grad#(Rad#) Return (180.0/Pi)*Rad End Function Function Rad#(Grad#) Return (Pi/180.0)*Grad End Function Function SinR#(Rad#) Return Sin((180.0/Pi)*Rad) End Function Function CosR#(Rad#) Return Cos((180.0/Pi)*Rad) End Function |
||
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schön gemacht! läuft bei mir recht flüssig. | ||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jup,
hatte bei nem Kollegen ein Opera Widget gesehen und dachte das kann man auch mal schnell in BB machen . Das Delay hast du bestimmt gesehen ![]() Bei manchen Funk. muß man ein Limit für f festlegen. Wenn die Funk. AddPoint -1 zurück gibt wird keine Fläche erstellt . Mit Texture kann das auch Anwendung in Spielen haben ![]() |
||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ...
siet echt gut aus ........ |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, sieht wirklich recht schick aus, allerdings vertehe ich net ganz wofür das genau sein soll; ausser für Wasser usw.
ansonsten: Wirklich schick ^^ |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Joa, sehr schön.
Im Grunde ja so ähnliche wie mein https://www.blitzforum.de/foru...hp?t=17234 Nur wohl flexibler und in wirklichem 3D ![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group