diff --git a/CHANGELOG.md b/CHANGELOG.md index bfeaea5..da41c2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index 8c3a852..74be508 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ Samila is a generative art generator written in Python, Samila lets you create i ``` -ℹ️ 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` diff --git a/examples/demo.ipynb b/examples/demo.ipynb index 9f51a3c..e52a109 100644 --- a/examples/demo.ipynb +++ b/examples/demo.ipynb @@ -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`" ] }, { diff --git a/samila/genimage.py b/samila/genimage.py index e83b46f..7edf62c 100644 --- a/samila/genimage.py +++ b/samila/genimage.py @@ -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: diff --git a/samila/params.py b/samila/params.py index 93998ee..4c62122 100644 --- a/samila/params.py +++ b/samila/params.py @@ -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" diff --git a/test/overall_test.py b/test/overall_test.py index fc56a71..fcb6d8a 100644 --- a/test/overall_test.py +++ b/test/overall_test.py @@ -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")