|
Post by scalion on Mar 20, 2020 22:47:12 GMT 1
Salut mes amis,
Observer le champs des résultats d'une fonction dans son ensemble c'est la raison qui m'a conduit au départ à créer ce programme, puis ca a très vite dérivé vers un intérêt purement artistique, je vous laisse voir pourquoi. Explorez les 75 fonctions prédéfinies et créez vos propres fonctions en modifiant le programme.
Bonne journée à tous, et bon courage à ceux qui sont confinés chez eux.
|
|
|
Post by scalion on Mar 21, 2020 14:01:39 GMT 1
J'en ai fait une 76ème :
Proc Shape76
Static Double x, y, z, r, g, b, vx, vy, vz, v, h
Do x = 2 * (Rnd - 0.5) y = 2 * (Rnd - 0.5) z = 2 * (Rnd - 0.5) h = (x * x + y * y + z * z ) Loop Until h < 1 x = x - 3 + Rand(4) * 2 y = y - 2 + Rand(3) * 2 vx = x vy = y vz = z v = Matrix(vx, vy, vz) Pivoter 1, 0, vx, vy, 0.25 vx *= 1.1 vy *= 1.1 vz *= 1.1 v = v * Matrix(vx, vy, vz) If v > h Pseudo3D x, y, z + 4 ZAARGBplot x, y, h, v , v - h EndIf
EndProc Function Matrix(x#, y#, z#) As Double
Static Long XX, YY, ZZ, BX, BY, BZ, First = 1, MS = 20, MS1 Static Double bmax = 0, AlphaX, AlphaY, AlphaZ, m1, m2, m3, m4
If First = 1 First = 0 MS1 = Pred(MS) Static Dim m(MS1, MS1, MS1) As Double Static Dim b(MS1, MS1, MS1) As Double For ZZ = 0 To MS1 For YY = 0 To MS1 For XX = 0 To MS1 m(XX, YY, ZZ) = Rnd bmax = Max(bmax, m(XX, YY, ZZ)) Next XX Next YY Next ZZ For ZZ = 0 To MS1 For YY = 0 To MS1 For XX = 0 To MS1 m(XX, YY, ZZ) /= bmax Next XX Next YY Next ZZ
Erase b()
EndIf If x < 0 x = 1 - x If y < 0 y = 1 - y If z < 0 z = 1 - z
x = Abs(x) y = Abs(y) z = Abs(z) XX = Min(MS1, Int(Frac(x) * MS)) YY = Min(MS1, Int(Frac(y) * MS)) ZZ = Min(MS1, Int(Frac(z) * MS)) BX = Mod(XX + 1, MS) BY = Mod(YY + 1, MS) BZ = Mod(ZZ + 1, MS)
AlphaX = Frac(x * MS) AlphaY = Frac(y * MS) AlphaZ = Frac(z * MS)
m1 = m(XX, YY, ZZ) m2 = m(XX, BY, ZZ) m3 = m(XX, YY, BZ) m4 = m(XX, BY, BZ)
m1 += (m(BX, YY, ZZ) - m1) * AlphaX m2 += (m(BX, BY, ZZ) - m2) * AlphaX m3 += (m(BX, YY, BZ) - m3) * AlphaX m4 += (m(BX, BY, BZ) - m4) * AlphaX
m1 += (m2 - m1) * AlphaY m3 += (m4 - m3) * AlphaY
Return m1 + (m3 - m1) * AlphaZ
EndFunc
|
|
|
Post by ventilo25 on Apr 8, 2020 20:24:26 GMT 1
Bonjour Scalion, c'est une expérience esthétique magnifique ! Merci et ça nous change les idées alors que le virus rôde...
|
|
|
Post by scalion on Apr 8, 2020 21:09:24 GMT 1
Vrai Ventilo25, ca va pas le monde en ce moment. En ce moment coté ciel une comète nommée Atlas va pointer le bout de son nez si tu veux penser à des trucs sympa. Et JMM je vais faire une anim c'est une bonne idée. Bon je vais poster un truc dans la rubrique Library.
|
|
|
Post by scalion on Sept 28, 2020 17:44:32 GMT 1
Avec cette nouvelle version vous pouvez directement entrer du code pour produire de nouvelles formes.
Ca peut facilement donner un truc comme ça :
J'ai mis un fichier d'aide pour savoir comment faire (accessible dans le logiciel mais c'est un fichier RTF donc on peut le lire directement).
Allez bonne soirée !
|
|
|
Post by scalion on Sept 29, 2020 13:30:50 GMT 1
J'ai ajouté une des fonctions (SPHERE,POINT) et amélioré le BLUR3D en ajoutant un facteur alpha.
Example avec le listing :
Zoom 0.5 Red 0, 0.5, 3, 1 Green 0.3, 0.5, 3, 1 Blue 0.6, 0.5, 3, 1 area -1,-1,1,1 initialised sphere 0,0,0,1 Turn y,100,10 twirl z,10,10 twirl x,10,10 Color 2,1.5,1 twirl x,-10,-10 twirl z,-10,-10 Turn y,-100,-10 expand 0,1,0,0.1 expand 0,-0.85,0,-0.15 expand 0,-0.5,0,-0.1 turn x,0.4 translate 0,0,5 blur3d 1,0.1 3dview
|
|