kopia lustrzana https://github.com/sepandhaghighi/samila
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>pull/257/head
rodzic
9682171dad
commit
d1dc52b282
|
@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- 2 new generation modes
|
||||
1. `F1_VS_F1F2`
|
||||
2. `F2_VS_F1F2`
|
||||
## [1.5] - 2025-01-22
|
||||
### Added
|
||||
- 3 new generation modes
|
||||
|
|
|
@ -123,7 +123,7 @@ Samila is a generative art generator written in Python, Samila lets you create i
|
|||
```
|
||||
<img src="https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/10.png">
|
||||
|
||||
ℹ️ 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`
|
||||
ℹ️ 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`
|
||||
|
||||
ℹ️ Default mode is `F1_VS_F2`
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
"source": [
|
||||
"We have the option to select from various generation modes.\n",
|
||||
"\n",
|
||||
"ℹ️ 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`"
|
||||
"ℹ️ 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`"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -151,6 +151,12 @@ class GenerativeImage:
|
|||
elif self.generate_mode == GenerateMode.F1F2_VS_F2.value:
|
||||
data1_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
|
||||
data2_ = self.function2(point[0], point[1]).real
|
||||
elif self.generate_mode == GenerateMode.F1_VS_F1F2.value:
|
||||
data1_ = self.function1(point[0], point[1]).real
|
||||
data2_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
|
||||
elif self.generate_mode == GenerateMode.F2_VS_F1F2.value:
|
||||
data1_ = self.function2(point[0], point[1]).real
|
||||
data2_ = self.function1(point[0], point[1]).real * self.function2(point[0], point[1]).real
|
||||
self.data1.append(data1_)
|
||||
self.data2.append(data2_)
|
||||
except Exception:
|
||||
|
|
|
@ -94,6 +94,8 @@ class GenerateMode(Enum):
|
|||
X2_VS_F2 = "x2_vs_f2"
|
||||
F1F2_VS_F1 = "f1f2_vs_f1"
|
||||
F1F2_VS_F2 = "f1f2_vs_f2"
|
||||
F1_VS_F1F2 = "f1_vs_f1f2"
|
||||
F2_VS_F1F2 = "f2_vs_f1f2"
|
||||
RANDOM = "random"
|
||||
|
||||
|
||||
|
|
|
@ -420,6 +420,12 @@ True
|
|||
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F1F2_VS_F2)
|
||||
>>> g.generate_mode == GenerateMode.F1F2_VS_F2.value
|
||||
True
|
||||
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F1_VS_F1F2)
|
||||
>>> g.generate_mode == GenerateMode.F1_VS_F1F2.value
|
||||
True
|
||||
>>> g.generate(start=-2*math.pi, step=0.1, stop=math.pi/2, mode=GenerateMode.F2_VS_F1F2)
|
||||
>>> g.generate_mode == GenerateMode.F2_VS_F1F2.value
|
||||
True
|
||||
>>> os.remove("test.png")
|
||||
>>> os.remove("test2.png")
|
||||
>>> os.remove("data.json")
|
||||
|
|
Ładowanie…
Reference in New Issue