Punch Sphere explication de ce code ??-> Djes
Publié : jeu. 18/juin/2009 9:50
Bon, je suis en train de décortiquer ton code PSphere Djes : pas facile !!!
J'imagines JBernard13 en train d'expliquer leslignes du code
bon je me moque, c'est pas gentil
Si je comprends le principe, tu as une macro "G" , qui crée... une macro "T", d'où le endmacr sans O, et le fameux O après chaque appel de la macro "G".
Mon problème c'est que je suis nul en maths, que je n'ai jamais fait de trigo, aussi je capte pas l'équation pour dessiner le cercle, et que l'explication pour de la sphère du site MathCurve ne me parles PAS DU TOUT !!!
Peux-tu m'expliquer le pourquoi du comment ?
Je me permet de reposter ton code sans Macro pour les "ceuzes" comme moi qui voudraient comprendre
J'imagines JBernard13 en train d'expliquer leslignes du code

bon je me moque, c'est pas gentil

Si je comprends le principe, tu as une macro "G" , qui crée... une macro "T", d'où le endmacr sans O, et le fameux O après chaque appel de la macro "G".
Mon problème c'est que je suis nul en maths, que je n'ai jamais fait de trigo, aussi je capte pas l'équation pour dessiner le cercle, et que l'explication pour de la sphère du site MathCurve ne me parles PAS DU TOUT !!!
Peux-tu m'expliquer le pourquoi du comment ?
Je me permet de reposter ton code sans Macro pour les "ceuzes" comme moi qui voudraient comprendre
Code : Tout sélectionner
;*****************************************************************************
;*
;* Name : PSphere
;* Author : djes
;* Date : 06/17/2009
;* Notes : -
;*
;*****************************************************************************
InitSprite():
Structure v:
x.f:
y.f:
z.f:
c.i:
EndStructure:
w=511:
r=255:
k=127
t$="PUREBASIC"
OpenWindow(0,0,0,w,w,""):
OpenWindowedScreen(WindowID(0),0,0,w,w,0,0,0)
NewList s.v():
LoadFont(1,"Arial",16):
StartDrawing(ScreenOutput()):
DrawingFont(FontID(1))
DrawText(10,0,t$,r,0):
For y=-r To r:
For x=-r To r:
z=Sqr(65025-(x*x)-(y*y))
If z>0:
If Point(x&k,y&63)<>0:
AddElement(s()):
If x&1=0:
z*-1:
EndIf
s()\x=x:
s()\y=y:
s()\z=z
s()\c=-1:
EndIf
EndIf
Next x:
Next y:
StopDrawing():
Repeat:
FlipBuffers():
ClearScreen(0):
StartDrawing(ScreenOutput())
ForEach(s()):
Plot(r+s()\x,r+s()\y,w):
b.f=(Cos(0.03)*s()\x - Sin(0.03)*s()\z):
s()\z=(Cos(0.03)*s()\z + Sin(0.03)*s()\x):
s()\x=b:
b.f=(Cos(0.03)*s()\x - Sin(0.03)*s()\y)
s()\y=(Cos(0.03)*s()\y + Sin(0.03)*s()\x):
s()\x=b:
Plot(r+s()\x,r+s()\y,s()\z):
Next
StopDrawing():
Until WindowEvent()=16