Yeah vince had the QB64 version of that with the star last year at least:
Code: (Select All)
Dim Shared pi, sw, sh, d, z0, p, q
pi = 4 * Atn(1)
d = 700
z0 = 2500
sw = 800
sh = 600
Dim As Double a, b, x, y, z, xx, yy, zz
Screen _NewImage(sw, sh, 32)
Do
b = b + 0.03
Cls
'tree
For a = 0 To 20 * 2 * pi Step 0.1
x = 5 * a * Cos(a)
y = -a * 10
z = 5 * a * Sin(a)
yy = (y + 350) * Cos(b) - z * Sin(b)
zz = (y + 350) * Sin(b) + z * Cos(b)
y = yy - 350
z = zz
xx = x * Cos(b) - z * Sin(b)
zz = x * Sin(b) + z * Cos(b)
x = xx
z = zz
xx = x * Cos(b) - (y + 350) * Sin(b)
yy = x * Sin(b) + (y + 350) * Cos(b)
x = xx
y = yy - 350
proj x, y, z
Circle (p, q), 1, _RGB(0, 155, 0)
Next
'star a pixel at a time
For a = 0 To 6 * pi Step 0.1
rr = 100
r = 60
x = (rr - r) * Cos(a + pi / 4) + 70 * Cos(((rr - r) / r) * a)
y = 50 + (rr - r) * Sin(a + pi / 4) - 70 * Sin(((rr - r) / r) * a)
z = 0
yy = (y + 350) * Cos(b) - z * Sin(b)
zz = (y + 350) * Sin(b) + z * Cos(b)
y = yy - 350
z = zz
xx = x * Cos(b) - z * Sin(b)
zz = x * Sin(b) + z * Cos(b)
x = xx
z = zz
xx = x * Cos(b) - (y + 350) * Sin(b)
yy = x * Sin(b) + (y + 350) * Cos(b)
x = xx
y = yy - 350
proj x, y, z
Circle (p, q), 1, _RGB(255, 255, 0)
Next
_Display
_Limit 50
Loop
Sub proj (x, y, z)
p = sw / 2 + x * d / (z + z0)
q = sh / 2 - (100 + y) * d / (z + z0) - 150
End Sub
724 855 599 923 575 468 400 206 147 564 878 823 652 556 bxor cross forever

