Samila简介
Samila是一款用Python编写的生成艺术生成器,它允许用户基于数千个点创建独特的图像。每个点的位置都是由带有随机参数的公式计算得出的,这使得每张生成的图像都具有独特性。Samila为艺术创作和可视化提供了一种新颖而富有创意的方式。
安装和基本使用
要开始使用Samila,您可以通过以下方式安装:
pip install samila==1.2
安装完成后,您可以用几行简单的代码生成您的第一幅Samila艺术作品:
import matplotlib.pyplot as plt
from samila import GenerativeImage
g = GenerativeImage()
g.generate()
g.plot()
plt.show()
这段代码会生成一幅随机的黑白图像,类似下面这样:
Samila的核心特性
1. 自定义生成函数
Samila允许用户定义自己的生成函数,这为创作提供了极大的灵活性:
import random
import math
def f1(x, y):
return random.uniform(-1,1) * x**2 - math.sin(y**2) + abs(y-x)
def f2(x, y):
return random.uniform(-1,1) * y**3 - math.cos(x**2) + 2*x
g = GenerativeImage(f1, f2)
g.generate()
g.plot()
plt.show()
2. 多种投影方式
Samila支持多种投影方式,包括直角坐标、极坐标等:
from samila import Projection
g.plot(projection=Projection.POLAR)
3. 丰富的标记选项
您可以选择不同的标记样式来绘制点:
from samila import Marker
g.plot(marker=Marker.CIRCLE, spot_size=10)
4. 颜色定制
Samila提供了多种颜色设置选项:
g.plot(color="yellow", bgcolor="black", projection=Projection.POLAR)
5. NFT存储集成
Samila还支持直接将生成的图像上传到NFT.storage:
g.nft_storage(api_key="YOUR_API_KEY")
Samila的数学原理
Samila的核心原理是将笛卡尔坐标系中的方形空间转换为任意坐标系(如极坐标系)。这种转换通过用户定义的函数实现,例如:
def f1(x, y):
return random.uniform(-1,1) * x**2 - math.sin(y**2) + abs(y-x)
def f2(x, y):
return random.uniform(-1,1) * y**3 - math.cos(x**2) + 2*x
这些函数将原始的(x,y)坐标映射到新的坐标系中,从而创造出各种有趣的图案。
在线尝试Samila
您可以通过Binder或Google Colab在线尝试Samila,无需在本地安装:
社区和支持
Samila拥有活跃的社区支持。如果您遇到问题或有建议,可以:
- 在GitHub上提交issue
- 发送邮件至 info@samila.site
- 加入Discord服务器
此外,Samila在多个社交媒体平台上都有presence:
结语
Samila为艺术家、程序员和数学爱好者提供了一个独特的平台,用于探索生成艺术的无限可能。无论您是想创作独特的视觉作品,还是想深入研究计算机生成艺术的数学原理,Samila都是一个值得尝试的强大工具。
通过不断的实验和创新,您可以使用Samila创造出令人惊叹的艺术作品。我们期待看到更多由Samila生成的令人惊艳的作品,也欢迎您为这个开源项目做出贡献,帮助它变得更好。
如果您喜欢Samila项目,别忘了在GitHub上给它一个星标⭐️。您的支持将激励开发团队继续改进这个工具。让我们一起探索生成艺术的无限可能吧!