Skip to content

Commit d1dc52b

Browse files
New generate modes (#256)
* feat : 2 new generate modes added * fix : overall_test.py updated * doc : document updated * doc : CHANGELOG.md updated * Update examples/demo.ipynb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 9682171 commit d1dc52b

File tree

6 files changed

+20
-2
lines changed

6 files changed

+20
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
### Added
9+
- 2 new generation modes
10+
1. `F1_VS_F1F2`
11+
2. `F2_VS_F1F2`
812
## [1.5] - 2025-01-22
913
### Added
1014
- 3 new generation modes

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Samila is a generative art generator written in Python, Samila lets you create i
123123
```
124124
<img src="https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/10.png">
125125

126-
ℹ️ Supported modes : `F1_VS_F2`, `F2_VS_F1`, `F1_VS_INDEX`, `F2_VS_INDEX`, `INDEX_VS_F1`, `INDEX_VS_F2`, `F1_VS_X1`, `F1_VS_X2`, `F2_VS_X1`, `F2_VS_X2`, `X1_VS_F1`, `X1_VS_F2`, `X2_VS_F1`, `X2_VS_F2`, `F1F2_VS_F1`, `F1F2_VS_F2` and `RANDOM`
126+
ℹ️ Supported modes : `F1_VS_F2`, `F2_VS_F1`, `F1_VS_INDEX`, `F2_VS_INDEX`, `INDEX_VS_F1`, `INDEX_VS_F2`, `F1_VS_X1`, `F1_VS_X2`, `F2_VS_X1`, `F2_VS_X2`, `X1_VS_F1`, `X1_VS_F2`, `X2_VS_F1`, `X2_VS_F2`, `F1F2_VS_F1`, `F1F2_VS_F2`, `F1_VS_F1F2`, `F2_VS_F1F2` and `RANDOM`
127127

128128
ℹ️ Default mode is `F1_VS_F2`
129129

examples/demo.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
"source": [
103103
"We have the option to select from various generation modes.\n",
104104
"\n",
105-
"ℹ️ The avaliable modes are `F1_VS_F2`, `F2_VS_F1`, `F1_VS_INDEX`, `F2_VS_INDEX`, `INDEX_VS_F1`, `INDEX_VS_F2`, `F1_VS_X1`, `F1_VS_X2`, `F2_VS_X1`, `F2_VS_X2`, `X1_VS_F1`, `X1_VS_F2`, `X2_VS_F1`, `X2_VS_F2`, `F1F2_VS_F1`, `F1F2_VS_F2` and `RANDOM`"
105+
"ℹ️ The available modes are `F1_VS_F2`, `F2_VS_F1`, `F1_VS_INDEX`, `F2_VS_INDEX`, `INDEX_VS_F1`, `INDEX_VS_F2`, `F1_VS_X1`, `F1_VS_X2`, `F2_VS_X1`, `F2_VS_X2`, `X1_VS_F1`, `X1_VS_F2`, `X2_VS_F1`, `X2_VS_F2`, `F1F2_VS_F1`, `F1F2_VS_F2`, `F1_VS_F1F2`, `F2_VS_F1F2` and `RANDOM`"
106106
]
107107
},
108108
{

samila/genimage.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,12 @@ def generate(
151151
elif self.generate_mode == GenerateMode.F1F2_VS_F2.value:
152152
data1_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
153153
data2_ = self.function2(point[0], point[1]).real
154+
elif self.generate_mode == GenerateMode.F1_VS_F1F2.value:
155+
data1_ = self.function1(point[0], point[1]).real
156+
data2_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
157+
elif self.generate_mode == GenerateMode.F2_VS_F1F2.value:
158+
data1_ = self.function2(point[0], point[1]).real
159+
data2_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
154160
self.data1.append(data1_)
155161
self.data2.append(data2_)
156162
except Exception:

samila/params.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ class GenerateMode(Enum):
9494
X2_VS_F2 = "x2_vs_f2"
9595
F1F2_VS_F1 = "f1f2_vs_f1"
9696
F1F2_VS_F2 = "f1f2_vs_f2"
97+
F1_VS_F1F2 = "f1_vs_f1f2"
98+
F2_VS_F1F2 = "f2_vs_f1f2"
9799
RANDOM = "random"
98100

99101

test/overall_test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,12 @@
420420
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F1F2_VS_F2)
421421
>>> g.generate_mode == GenerateMode.F1F2_VS_F2.value
422422
True
423+
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F1_VS_F1F2)
424+
>>> g.generate_mode == GenerateMode.F1_VS_F1F2.value
425+
True
426+
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F2_VS_F1F2)
427+
>>> g.generate_mode == GenerateMode.F2_VS_F1F2.value
428+
True
423429
>>> os.remove("test.png")
424430
>>> os.remove("test2.png")
425431
>>> os.remove("data.json")

0 commit comments

Comments
 (0)