• API
• FAQ
• Tools
• Archive
SHARE
TWEET

bilinear thing Sorceress  Jan 12th, 2019 (edited) 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. SCREEN _NEWIMAGE(640, 480, 32)
2. DIM c(32, 24) AS SINGLE
3.
4. FOR x = 0 TO 31
5.   FOR y = 0 TO 23
6.     c(x, y) = RND
7.   NEXT
8. NEXT
9.
10. m = 20: m1 = m - 1
11.
12.
13. 'nearest neighbour
14. FOR x = 0 TO 639: ix = x \ m
15.   FOR y = 0 TO 479: iy = y \ m
16.     i = c(ix, iy) * 255
17.     PSET (x, y), _RGB(i, i, 255 - i)
18.   NEXT
19. NEXT
20. SLEEP
21.
22. 'bilinear
23. FOR x = 0 TO 639: ix = x \ m: rx = x / m - ix: ix1 = (ix + 1) MOD 32: rx1 = 1 - rx
24.   FOR y = 0 TO 479: iy = y \ m: ry = y / m - iy: iy1 = (iy + 1) MOD 24: ry1 = 1 - ry
25.     c00 = c(ix, iy) * 255
26.     c10 = c(ix1, iy) * 255
27.     c01 = c(ix, iy1) * 255
28.     c11 = c(ix1, iy1) * 255
29.     i = (c00 * rx1 + c10 * rx) * ry1 + (c01 * rx1 + c11 * rx) * ry
30.     PSET (x, y), _RGB(i, i, 255 - i)
31.   NEXT
32. NEXT
33. SLEEP
34.
35. 'cosine
36. FOR x = 0 TO 639: ix = x \ m: rx = cs(x / m - ix): ix1 = (ix + 1) MOD 32: rx1 = 1 - rx
37.   FOR y = 0 TO 479: iy = y \ m: ry = cs(y / m - iy): iy1 = (iy + 1) MOD 24: ry1 = 1 - ry
38.     c00 = c(ix, iy) * 255
39.     c10 = c(ix1, iy) * 255
40.     c01 = c(ix, iy1) * 255
41.     c11 = c(ix1, iy1) * 255
42.     i = (c00 * rx1 + c10 * rx) * ry1 + (c01 * rx1 + c11 * rx) * ry
43.     PSET (x, y), _RGB(i, i, 255 - i)
44.   NEXT
45. NEXT
46. SLEEP
47.
48. 'smoothstep
49. FOR x = 0 TO 639: ix = x \ m: rx = sm(x / m - ix): ix1 = (ix + 1) MOD 32: rx1 = 1 - rx
50.   FOR y = 0 TO 479: iy = y \ m: ry = sm(y / m - iy): iy1 = (iy + 1) MOD 24: ry1 = 1 - ry
51.     c00 = c(ix, iy) * 255
52.     c10 = c(ix1, iy) * 255
53.     c01 = c(ix, iy1) * 255
54.     c11 = c(ix1, iy1) * 255
55.     i = (c00 * rx1 + c10 * rx) * ry1 + (c01 * rx1 + c11 * rx) * ry
56.     PSET (x, y), _RGB(i, i, 255 - i)
57.   NEXT
58. NEXT
59. SLEEP
60.
61. 'the smoothstep function
62. FUNCTION sm (t)
63.   sm = t * t * (3 - 2 * t)
64. END FUNCTION
65.
66. ' the "cosine" function
67. FUNCTION cs (t)
68.   cs = SIN(t * 1.5707963): cs = cs * cs
69. END FUNCTION
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top