rubysketch 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog.md +8 -0
- data/VERSION +1 -1
- data/lib/rubysketch/processing.rb +112 -27
- data/test/processing/test_utility.rb +29 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0df24de4fc3eabd1c7880d51ff34ef8389b44bef43a8159c75e9e6c651953c0d
|
4
|
+
data.tar.gz: cf03a57e9ecbf8a63f0b089c4588c0cd041ef93e2b92c69a580b8aa1f013659e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 953e09a5b8da7f8798186e3f0a4e4b9ca636a5c7a34cdd1eca26da30f09221ac31fe3c5ed9ebc8e498060f84b88de4bb14738ef8054e30544c38ca664522f050
|
7
|
+
data.tar.gz: 4c4ae42689cfda821c84617c2925fc48b6af3ad3672d8dd1c603b999427762b5439cbf7c879a06fdf8830f83632d5e01bd9197d1cf528f6ae948a38728063a2a
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# RubySketch ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [0.3.5] - 2020-08-02
|
5
|
+
|
6
|
+
- add random()
|
7
|
+
- add sin(), cos(), tan(), asin(), acos(), atan() and atan2()
|
8
|
+
- make Vector class accessible from user script context
|
9
|
+
- fix error on calling rotate()
|
10
|
+
|
11
|
+
|
4
12
|
## [0.3.4] - 2020-08-02
|
5
13
|
|
6
14
|
- delete Utility module
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.5
|
@@ -141,9 +141,9 @@ module RubySketch
|
|
141
141
|
#
|
142
142
|
def lerp (*args, amount)
|
143
143
|
v = toVector__ *args
|
144
|
-
self.x = x
|
145
|
-
self.y = y
|
146
|
-
self.z = z
|
144
|
+
self.x = Context.lerp x, v.x, amount
|
145
|
+
self.y = Context.lerp y, v.y, amount
|
146
|
+
self.z = Context.lerp z, v.z, amount
|
147
147
|
self
|
148
148
|
end
|
149
149
|
|
@@ -732,6 +732,8 @@ module RubySketch
|
|
732
732
|
#
|
733
733
|
module GraphicsContext
|
734
734
|
|
735
|
+
Vector = Processing::Vector
|
736
|
+
|
735
737
|
# PI / 2
|
736
738
|
#
|
737
739
|
HALF_PI = Math::PI / 2
|
@@ -930,7 +932,7 @@ module RubySketch
|
|
930
932
|
end
|
931
933
|
|
932
934
|
# @private
|
933
|
-
|
935
|
+
def toAngle__ (angle)
|
934
936
|
angle * @angleScale__
|
935
937
|
end
|
936
938
|
|
@@ -1863,29 +1865,7 @@ module RubySketch
|
|
1863
1865
|
@redraw__ = true
|
1864
1866
|
end
|
1865
1867
|
|
1866
|
-
|
1867
|
-
# Utility functions
|
1868
|
-
#
|
1869
|
-
|
1870
|
-
# Converts degree to radian.
|
1871
|
-
#
|
1872
|
-
# @param degree [Numeric] degree to convert
|
1873
|
-
#
|
1874
|
-
# @return [Numeric] radian
|
1875
|
-
#
|
1876
|
-
def radians (degree)
|
1877
|
-
degree * DEG2RAD__
|
1878
|
-
end
|
1879
|
-
|
1880
|
-
# Converts radian to degree.
|
1881
|
-
#
|
1882
|
-
# @param radian [Numeric] radian to convert
|
1883
|
-
#
|
1884
|
-
# @return [Numeric] degree
|
1885
|
-
#
|
1886
|
-
def degrees (radian)
|
1887
|
-
radian * RAD2DEG__
|
1888
|
-
end
|
1868
|
+
module_function
|
1889
1869
|
|
1890
1870
|
# Returns the absolute number of the value.
|
1891
1871
|
#
|
@@ -2080,6 +2060,97 @@ module RubySketch
|
|
2080
2060
|
value < min ? min : (value > max ? max : value)
|
2081
2061
|
end
|
2082
2062
|
|
2063
|
+
# Converts degree to radian.
|
2064
|
+
#
|
2065
|
+
# @param degree [Numeric] degree to convert
|
2066
|
+
#
|
2067
|
+
# @return [Numeric] radian
|
2068
|
+
#
|
2069
|
+
def radians (degree)
|
2070
|
+
degree * DEG2RAD__
|
2071
|
+
end
|
2072
|
+
|
2073
|
+
# Converts radian to degree.
|
2074
|
+
#
|
2075
|
+
# @param radian [Numeric] radian to convert
|
2076
|
+
#
|
2077
|
+
# @return [Numeric] degree
|
2078
|
+
#
|
2079
|
+
def degrees (radian)
|
2080
|
+
radian * RAD2DEG__
|
2081
|
+
end
|
2082
|
+
|
2083
|
+
# Returns the sine of an angle.
|
2084
|
+
#
|
2085
|
+
# @param angle [Numeric] angle in radians
|
2086
|
+
#
|
2087
|
+
# @return [Numeric] the sine
|
2088
|
+
#
|
2089
|
+
def sin (angle)
|
2090
|
+
Math.sin angle
|
2091
|
+
end
|
2092
|
+
|
2093
|
+
# Returns the cosine of an angle.
|
2094
|
+
#
|
2095
|
+
# @param angle [Numeric] angle in radians
|
2096
|
+
#
|
2097
|
+
# @return [Numeric] the cosine
|
2098
|
+
#
|
2099
|
+
def cos (angle)
|
2100
|
+
Math.cos angle
|
2101
|
+
end
|
2102
|
+
|
2103
|
+
# Returns the ratio of the sine and cosine of an angle.
|
2104
|
+
#
|
2105
|
+
# @param angle [Numeric] angle in radians
|
2106
|
+
#
|
2107
|
+
# @return [Numeric] the tangent
|
2108
|
+
#
|
2109
|
+
def tan (angle)
|
2110
|
+
Math.tan angle
|
2111
|
+
end
|
2112
|
+
|
2113
|
+
# Returns the inverse of sin().
|
2114
|
+
#
|
2115
|
+
# @param value [Numeric] value for calculation
|
2116
|
+
#
|
2117
|
+
# @return [Numeric] the arc sine
|
2118
|
+
#
|
2119
|
+
def asin (value)
|
2120
|
+
Math.asin value
|
2121
|
+
end
|
2122
|
+
|
2123
|
+
# Returns the inverse of cos().
|
2124
|
+
#
|
2125
|
+
# @param value [Numeric] value for calculation
|
2126
|
+
#
|
2127
|
+
# @return [Numeric] the arc cosine
|
2128
|
+
#
|
2129
|
+
def acos (value)
|
2130
|
+
Math.acos value
|
2131
|
+
end
|
2132
|
+
|
2133
|
+
# Returns the inverse of tan().
|
2134
|
+
#
|
2135
|
+
# @param value [Numeric] value for valculation
|
2136
|
+
#
|
2137
|
+
# @return [Numeric] the arc tangent
|
2138
|
+
#
|
2139
|
+
def atan (value)
|
2140
|
+
Math.atan value
|
2141
|
+
end
|
2142
|
+
|
2143
|
+
# Returns the angle from a specified point.
|
2144
|
+
#
|
2145
|
+
# @param y [Numeric] y of the point
|
2146
|
+
# @param x [Numeric] x of the point
|
2147
|
+
#
|
2148
|
+
# @return [Numeric] the angle in radians
|
2149
|
+
#
|
2150
|
+
def atan2 (y, x)
|
2151
|
+
Math.atan2 y, x
|
2152
|
+
end
|
2153
|
+
|
2083
2154
|
# Returns the perlin noise value.
|
2084
2155
|
#
|
2085
2156
|
# @overload noise(x)
|
@@ -2096,6 +2167,20 @@ module RubySketch
|
|
2096
2167
|
Rays.perlin(x, y, z) / 2.0 + 0.5
|
2097
2168
|
end
|
2098
2169
|
|
2170
|
+
# Returns a random number in range low...high
|
2171
|
+
#
|
2172
|
+
# @overload random(high)
|
2173
|
+
# @overload random(low, high)
|
2174
|
+
#
|
2175
|
+
# @param low [Numeric] lower limit
|
2176
|
+
# @param high [Numeric] upper limit
|
2177
|
+
#
|
2178
|
+
# @return [Float] random number
|
2179
|
+
#
|
2180
|
+
def random (low = nil, high)
|
2181
|
+
rand (low || 0).to_f...high.to_f
|
2182
|
+
end
|
2183
|
+
|
2099
2184
|
# Creates a new vector.
|
2100
2185
|
#
|
2101
2186
|
# @overload createVector()
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require_relative '../helper'
|
5
|
+
|
6
|
+
|
7
|
+
class TestProcessingUtility < Test::Unit::TestCase
|
8
|
+
|
9
|
+
C = RubySketch::Processing::Context
|
10
|
+
|
11
|
+
def setup ()
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_random ()
|
16
|
+
assert_equal Float, C.random(1).class
|
17
|
+
assert_equal Float, C.random(1.0).class
|
18
|
+
assert_not_equal C.random(1), C.random(1)
|
19
|
+
|
20
|
+
10000.times do
|
21
|
+
n = C.random 1
|
22
|
+
assert 0 <= n && n < 1
|
23
|
+
|
24
|
+
n = C.random 1, 2
|
25
|
+
assert 1.0 <= n && n < 2.0
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end# TestProcessingUtility
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysketch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
@@ -121,6 +121,7 @@ files:
|
|
121
121
|
- lib/rubysketch/window.rb
|
122
122
|
- rubysketch.gemspec
|
123
123
|
- test/helper.rb
|
124
|
+
- test/processing/test_utility.rb
|
124
125
|
- test/processing/test_vector.rb
|
125
126
|
homepage: https://github.com/xord/rubysketch
|
126
127
|
licenses: []
|
@@ -146,4 +147,5 @@ specification_version: 4
|
|
146
147
|
summary: Processing like Creative Coding Framework.
|
147
148
|
test_files:
|
148
149
|
- test/helper.rb
|
150
|
+
- test/processing/test_utility.rb
|
149
151
|
- test/processing/test_vector.rb
|