-
Notifications
You must be signed in to change notification settings - Fork 89
From java processing to ruby processing
Here are some the main differences moving from vanilla processing to ruby-processing:-
- You do not declare types in ruby
vec = PVector.new
instead of PVector vec = new PVector()
for example, however you can in this case use Vec2D and Vec3D alternatives to PVector (but with methods that are much more ruby-like).
-
There are no void methods (what's evaluated gets returned without an explicit return)
-
Everything is an object (this includes primitive types float, integer etc)
-
Confusing for beginners and especially pythonistas there is often more than one way to do it
In general you should try and code in regular ruby (in ruby-processing), only using processing shortcuts / methods when you need to (ie when ruby alternatives don't exist, many processing shortcuts just aren't needed in ruby). From 3. above you should prefer:-
-
a**b
topow(a, b)
-
theta.degrees
todegrees(theta)
-
theta.radians
toradians(theta)
-
x.abs
toabs(x)
-
x.ceil
toceil(x)
-
x.round
toround(x)
-
str.strip
totrim(str)
-
str.hex
tohex(str)
-
string.to_i(base=16)
tounhex(str)
Other ruby methods to prefer:-
-
rand(x)
torandom(x)
-
rand(lo .. hi)
torandom(lo, hi)
-
puts val
(or even justp val
) toprintln(val)
Oddities to be aware of
The processing map(val, in_start, in_end, out_start, out_end)
method has been implemented in ruby-processing, this is not to be confused with ruby map
which is much used in ruby to map a function to an array.