Laurent
December 16, 2018, 8:48pm
1
Hi everyone,
The below code is not working with Processing.py (instead of the passed arguments the default values for width and height applies, that are 100x100 pixels: same results as size() statement, with no arguments):
square_size = 10
square_x_nb = 50
square_y_nb = 100
size(square_x_nb * square_size, square_y_nb * square_size)
It works fine with absolute values arguments but not with variables arguments, that is:
size(1000, 500)
Any idea?
1 Like
hesron
December 16, 2018, 9:24pm
3
When you need to define the parameters of the size of the display window with a variable, you must use the settings() function and define size() in it.
1 Like
Laurent
December 16, 2018, 9:29pm
4
Thanks GoToLoop and hsron for your quick and clear answer!
For the above code, the solution would be:
square_size = 10
square_x_nb = 50
square_y_nb = 100
def settings():
size(square_x_nb * square_size, square_y_nb * square_size)
Just noting that the Python Mode reference has an entry for setup()
, but no equivalent documentation for settings()
.
https://py.processing.org/reference/setup.html
This might be worth opening as an issue for documentation on the python mode docs site:
1 Like
That settings() issue strikes again:
opened 09:35PM - 28 Dec 18 UTC
I'm new to programing. I wrote a program and I'm getting the error "NameError: g… lobal name 'taman' is not defined" even though I have already defined taman.
Here's the code:
```
def setup():
global taman
global linhas
global colunas
global start
try:
file = open("settings.txt","r")
except FileNotFoundError:
file = open("settings.txt","w")
file.write("Número de colunas:\n3\nNúmero de linhas:\n3\nRaio:\n30\nEspaço (~distância entre as figuras):\n10\nVelocidade (em rad/s):\n0.01\nFase do x (fração do pi):\n0\nFase do y (fração do pi):\n0\nEspessura do traçado:\n3")
file.close()
file = open("settings.txt","r")
taman = file.read().split('\n')
file.close()
file.close()
for x in [1,3,5,7,15]:
taman[x] = int(taman[x])
print(taman[x])
taman[9] = float(taman[9])
for x in [11,13]:
print(taman[x])
taman[x] = PI*float(taman[x])
start = True
size((taman[7]+2*taman[5])*(taman[1]+1),(taman[7]+2*taman[5])*(taman[3]+1))
colunas = [bolinha((x + (1/2))*(taman[7] + 2*taman[5]) + taman[5],taman[5]+(taman[7])/2,x*taman[9],taman[5],taman[11]) for x in range(1,taman[1]+1)]
linhas = [bolinha(taman[5]+(taman[7])/2,taman[5]+(x + (1/2))*(taman[7] + 2*taman[5]),x*taman[9],taman[5],taman[13]) for x in range(1,taman[3]+1)]
background(0)
```
While it does print the elements of taman when I convert the strings to integers or floats, it raises the error in this line:
```
size((taman[7]+2*taman[5])*(taman[1]+1),(taman[7]+2*taman[5])*(taman[3]+1))
```
Did I do something wrong or is this a bug?