File: demo.py.tns

package info (click to toggle)
giac 1.6.0.41%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 64,540 kB
  • sloc: cpp: 351,842; ansic: 105,138; python: 30,545; javascript: 8,675; yacc: 2,690; lex: 2,449; makefile: 1,243; sh: 579; perl: 314; lisp: 216; asm: 62; java: 41; sed: 16; csh: 7; pascal: 6
file content (73 lines) | stat: -rw-r--r-- 1,815 bytes parent folder | download | duplicates (4)
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
import nsp
from nsp import Texture

@micropython.native
def mandel(x, y, max_iters):
    c = complex(x, y)
    z = 0.0j
    for i in range(max_iters):
        z = z*z + c
        if (z.real*z.real + z.imag*z.imag) >= 4:
            return i
    return max_iters

screen = Texture(320, 240, None)
screen.fill(0x0000)

width = 320
height = 240
iter = 16

min_x = -2.0
max_x = 1.0
min_y = -1.0
max_y = 1.0
pixel_size_x = (max_x - min_x) / width
pixel_size_y = (max_y - min_y) / height

time_start = nsp.readRTC()
    
for x in range(height):
    real = min_x + x * pixel_size_x
    for y in range(width):
        imag = min_y + y * pixel_size_y
        color = mandel(real, imag, iter)
        screen.setPx(y, x, color << 14 | color << 8 | color << 3)

    screen.display()

print("%ux%u (%u iters) in %u seconds" % (width, height, iter, nsp.readRTC() - time_start))
nsp.waitKeypress()

mandel_tex = Texture(320, 240, None)
screen.drawOnto(mandel_tex)

time_start = nsp.readRTC()
for i in range(120 - 16):
    mandel_tex.drawOnto(screen,src_x=i,src_y=i,src_w=320-(2*i),src_h=240-(2*i))
    screen.display()
print("%d FPS" % ((240-32)/(nsp.readRTC() - time_start)))
nsp.waitKeypress()

time_start = nsp.readRTC()
for i in range(240 - 48):
    mandel_tex.drawOnto(screen,dest_x=i,dest_y=i,dest_w=64,dest_h=48)
    screen.display()
print("%d FPS" % ((240-32)/(nsp.readRTC() - time_start)))
nsp.waitKeypress()

time_start = nsp.readRTC()
for i in range(320):
    mandel_tex.drawOnto(screen,dest_x=320-i,dest_w=i)
    screen.display()

print("%d FPS" % ((240-32)/(nsp.readRTC() - time_start)))
nsp.waitKeypress()

time_start = nsp.readRTC()
for i in range(320):
    mandel_tex.drawOnto(screen,dest_x=320-i,dest_w=i,src_w=i)
    screen.display()

print("%d FPS" % ((240-32)/(nsp.readRTC() - time_start)))
nsp.waitKeypress()