mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 08:47:28 +01:00
68 lines
1.8 KiB
C++
68 lines
1.8 KiB
C++
#include "script_template.h"
|
|
|
|
namespace Code {
|
|
|
|
constexpr ScriptTemplate emptyScriptTemplate(".py", "\x01" R"(from math import *
|
|
)");
|
|
|
|
constexpr ScriptTemplate squaresScriptTemplate("squares.py", "\x01" R"(from math import *
|
|
from turtle import *
|
|
def squares(angle=0.5):
|
|
reset()
|
|
L=330
|
|
speed(10)
|
|
penup()
|
|
goto(-L/2,-L/2)
|
|
pendown()
|
|
for i in range(660):
|
|
forward(L)
|
|
left(90+angle)
|
|
L=L-L*sin(angle*pi/180)
|
|
hideturtle())");
|
|
|
|
constexpr ScriptTemplate mandelbrotScriptTemplate("mandelbrot.py", "\x01" R"(# This script draws a Mandelbrot fractal set
|
|
# N_iteration: degree of precision
|
|
import kandinsky
|
|
def mandelbrot(N_iteration):
|
|
for x in range(320):
|
|
for y in range(222):
|
|
# Compute the mandelbrot sequence for the point c = (c_r, c_i) with start value z = (z_r, z_i)
|
|
z = complex(0,0)
|
|
# Rescale to fit the drawing screen 320x222
|
|
c = complex(3.5*x/319-2.5, -2.5*y/221+1.25)
|
|
i = 0
|
|
while (i < N_iteration) and abs(z) < 2:
|
|
i = i + 1
|
|
z = z*z+c
|
|
# Choose the color of the dot from the Mandelbrot sequence
|
|
rgb = int(255*i/N_iteration)
|
|
col = kandinsky.color(int(rgb),int(rgb*0.75),int(rgb*0.25))
|
|
# Draw a pixel colored in 'col' at position (x,y)
|
|
kandinsky.set_pixel(x,y,col))");
|
|
|
|
constexpr ScriptTemplate polynomialScriptTemplate("polynomial.py", "\x01" R"(from pyplot import *
|
|
x = [1,2,3,4]
|
|
y = [-1,-2,-3,-4]
|
|
scatter(x, y)
|
|
plot(y, x)
|
|
text(-1,-1,"Coucou")
|
|
show())");
|
|
|
|
const ScriptTemplate * ScriptTemplate::Empty() {
|
|
return &emptyScriptTemplate;
|
|
}
|
|
|
|
const ScriptTemplate * ScriptTemplate::Squares() {
|
|
return &squaresScriptTemplate;
|
|
}
|
|
|
|
const ScriptTemplate * ScriptTemplate::Mandelbrot() {
|
|
return &mandelbrotScriptTemplate;
|
|
}
|
|
|
|
const ScriptTemplate * ScriptTemplate::Polynomial() {
|
|
return &polynomialScriptTemplate;
|
|
}
|
|
|
|
}
|