-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3Dspheres.pixi
119 lines (119 loc) · 4.28 KB
/
3Dspheres.pixi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
rand_seed(get_seconds())
rln=50
wrong=new(rln, rln, INT)
rc=new(rln, rln, PIXEL)
rp=new(8, 7, INT16)
r=50
fov=1.5
lov=200
maxt=lov/fov
rt=39
start:
rt=rt+1
i=0
while i<rln+1
{
j=0
while j<rln+1
{
rc[i, j]=#000000
j=j+1
}
i=i+1
}
i=0
while i<8
{
rp[i, 0]=rand()%(rln*3+1)-(rln*1.5)
rp[i, 1]=rand()%(rln*3+1)-(rln*1.5)
rp[i, 2]=rand()%(rln+1)+(rln*2)
rp[i, 3]=rand()%(rln*.3+1)+(rln*.2)
rp[i, 4]=rand()%201-55
rp[i, 5]=rand()%201-55
rp[i, 6]=rand()%201-55
i=i+1
}
clear()
x=-rln/2
while x<rln/2+1
{
y=-rln/2
while y<rln/2+1
{
wrong[y+500, x+500]=0
t=0
while t<maxt
{
if wrong[y+500, x+500]==0
{
if pow(pow(fov*t, 2)+pow(x/15/fov*t, 2), .5)<lov
{
if pow(pow((fov*t)-rp[0, 2], 2)+pow((x/15/fov*t)-rp[0, 0], 2)+pow((y/15/fov*t)-rp[0 ,1], 2), .5)<rp[0, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[0, 4]+(y/15/fov*t)-rp[0 ,1], t-rp[0, 5]+(y/15/fov*t)-rp[0 ,1], rp[0, 6]+(y/15/fov*t)-rp[0 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[0, 4]+(y/15/fov*t)-rp[0 ,1], t-rp[0, 5]+(y/15/fov*t)-rp[0 ,1], rp[0, 6]+(y/15/fov*t)-rp[0 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if abs((fov*t)-rp[1, 2])+abs((x/15/fov*t)-rp[1, 0])+abs((y/15/fov*t)-rp[1, 1], 2)<rp[1, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[1, 4]+(y/15/fov*t)-rp[1 ,1], t-rp[1, 5]+(y/15/fov*t)-rp[1 ,1], rp[1, 6]+(y/15/fov*t)-rp[1 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[1, 4]+(y/15/fov*t)-rp[1 ,1], t-rp[1, 5]+(y/15/fov*t)-rp[1 ,1], rp[1, 6]+(y/15/fov*t)-rp[1 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if pow(pow((fov*t)-rp[2, 2], 2)+pow((x/15/fov*t)-rp[2, 0], 2)+pow((y/15/fov*t)-rp[2, 1], 2), .5)<rp[2, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[2, 4]+(y/15/fov*t)-rp[2 ,1], t-rp[2, 5]+(y/15/fov*t)-rp[2 ,1], rp[2, 6]+(y/15/fov*t)-rp[2 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[2, 4]+(y/15/fov*t)-rp[2 ,1], t-rp[2, 5]+(y/15/fov*t)-rp[2 ,1], rp[2, 6]+(y/15/fov*t)-rp[2 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if abs((fov*t)-rp[3, 2])+abs((x/15/fov*t)-rp[3, 0])+abs(y/15/fov*t-rp[3, 1])<rp[3, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[3, 4]+(y/15/fov*t)-rp[3 ,1], t-rp[3, 5]+(y/15/fov*t)-rp[3 ,1], rp[3, 6]+(y/15/fov*t)-rp[3 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[3, 4]+(y/15/fov*t)-rp[3 ,1], t-rp[3, 5]+(y/15/fov*t)-rp[3 ,1], rp[3, 6]+(y/15/fov*t)-rp[3 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if pow(pow((fov*t)-rp[4, 2], 2)+pow((x/15/fov*t)-rp[4, 0], 2)+pow((y/15/fov*t)-rp[4, 1], 2), .5)<rp[4, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[4, 4]+(y/15/fov*t)-rp[4 ,1], t-rp[4, 5]+(y/15/fov*t)-rp[4 ,1], rp[4, 6]+(y/15/fov*t)-rp[4 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[4, 4]+(y/15/fov*t)-rp[4 ,1], t-rp[4, 5]+(y/15/fov*t)-rp[4 ,1], rp[4, 6]+(y/15/fov*t)-rp[4 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if pow(pow((fov*t)-rp[5, 2], 2)+pow((x/15/fov*t)-rp[5, 0], 2)+pow((y/15/fov*t)-rp[5, 1], 2), .5)<rp[5, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[5, 4]+(y/15/fov*t)-rp[5 ,1], t-rp[5, 5]+(y/15/fov*t)-rp[5 ,1], rp[5, 6]+(y/15/fov*t)-rp[5 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[5, 4]+(y/15/fov*t)-rp[5 ,1], t-rp[5, 5]+(y/15/fov*t)-rp[5 ,1], rp[5, 6]+(y/15/fov*t)-rp[5 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if abs((fov*t)-rp[6, 2])+abs((x/15/fov*t)-rp[6, 0])+abs(y/15/fov*t-rp[6, 1])<rp[6, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[6, 4]+(y/15/fov*t)-rp[6 ,1], t-rp[6, 5]+(y/15/fov*t)-rp[6 ,1], rp[6, 6]+(y/15/fov*t)-rp[6 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[6, 4]+(y/15/fov*t)-rp[6 ,1], t-rp[6, 5]+(y/15/fov*t)-rp[6 ,1], rp[6, 6]+(y/15/fov*t)-rp[6 ,1])
wrong[y+rln/2, x+rln/2]=1
}
if abs((fov*t)-rp[7, 2])+abs((x/15/fov*t)-rp[7, 0])+abs(y/15/fov*t-rp[7, 1])<rp[7, 3]
{
//dot(fov*t, x/15/fov*t, #ff0000)
dot(x, y, get_color(rp[7, 4]+(y/15/fov*t)-rp[7 ,1], t-rp[7, 5]+(y/15/fov*t)-rp[7 ,1], rp[7, 6]+(y/15/fov*t)-rp[7 ,1]))
rc[x+rln/2, y+rln/2]=get_color(rp[7, 4]+(y/15/fov*t)-rp[7 ,1], t-rp[7, 5]+(y/15/fov*t)-rp[7 ,1], rp[7, 6]+(y/15/fov*t)-rp[7 ,1])
wrong[y+rln/2, x+rln/2]=1
}
}
}
t=t+1
}
y=y+1
}
x=x+1
}
frame()
ts=""
sprintf(ts, "3Drenders/3D_%u.png", rt)
save(rc, ts, FORMAT_PNG)
goto start